Saturday, July 5, 2008

tapiGen Update Released

I just released a new version of tapiGen available here:

There were a few important changes along with some few trivial ones. Among the more important are:

  • Added support for function result cache to the RT and RT_FOR_WEB_UPDATE functions. Applications already using these functions in 11g will see a performance benefit although nothing changes for 10g.
  • Global variables added for audit column names. These variables allow TE packages to be created for tables that do not use the default names: CREATED_BY, CREATED_DATE, MODIFIED_BY, MODIFIED_DATE.
  • Requirement for a table to have primary key column named "ID" has been removed. The column will be looked up and the TE package created accordingly.
  • MD5 function created in TE packages now uses DBMS_CRYPTO.HASH over DBMS_OBFUSCATION_TOOLKIT.MD5. This allows for hashes of rows that contain over 32767 bytes of data but requires the execute grant on DBMS_OBFUSCATION. This function now takes all columns into account and can handle both CLOBs and BLOBs.
  • Added DBMS_OUTPUT calls to provide feedback on package creation.

I've already got a few things in mind for version .3:

  • Overloading the INS, UPD, AND DEL functions to accept associate arrays. This alone will be a great time saver as it can be quite tedious in 10g and before the declare the arrays for each column, set their values, and then pass them in. There's also a performance impact. This restriction has been removed in 11g and in the next version of tapiGen conditional compilation will be used to determine the best method of performing these FOR ALLs.
  • Use of the supplied ERR package and the ERRORS table will become optional.

If anyone has any questions please feel free to ask. On another note, I'm beginning another open source project called plPDI. This will be a simple package designed to abstract out the use of the vCalendar/iCalendar and vCard standards. More details on that later!


  1. Dan,

    Nice move on the result caching ;)


  2. Dan,

    I have sent you some ideas for additions on the code, such as journaling and option to choose sequence names. I hope you appreciate it and find some time to look into it.


  3. Bart,

    Although I'm really interested, I didn't receive your suggestions. Please send them to my email address listed in my profile.

    I look forward to getting your input.