$Id: Changes,v 1.22 2004/09/16 20:17:42 jeff Exp $ 2.01 Thu Sep 16 16:16:18 EDT 2004 * New "reparse_subs" option enables reparsing of changed subroutines * Removed distracting debugging output from ora_exception * New upgrade script * The filename argument for import_perl is now optional. It will default to the name of the function with a ".pl" extension. 2.00 Tue Apr 20 13:54:35 EDT 2004 * Added "new" method for creating new OCIDate objects * Added "setdate_sysdate" method for setting OCIDate objects to current system date/time * Added "ddl_format" procedure for overriding default ddl_format * Updated bundled documentation 1.99_09 Thu Apr 15 13:26:05 EDT 2004 * better runtime error reporting * fixed problem importing source code > 4000 bytes * be more forgiving with whitespace in prototypes 1.99_08 Mon Apr 12 11:57:09 EDT 2004 * per-database configuration directives (dbname:config) * increase theoretical max_code_size to 4 GB * increase default max_code_size to 32768 * new option to output DDL in package body format * added ddl_format column in perl_config view * fixed prototype parsing to require FUNCTION/PROCEDURE declaration and to allow an empty argument list * prototypes can now be specified in the perl source * removed obsolete columns from code table * autoload some module subroutines to reduce parsing overhead 1.99_07 Wed Feb 25 18:24:39 EST 2004 * fixed crash in perl_config and perl_status views * implemented preliminary test suite for "make test" * fixed "always NULL" VARCHAR2 return values in directly executed code * fixed missing null indicators for numeric IN OUT & OUT parameters * removed pending support for opcode security * removed DBD-Oracle 1.14 patch from distribution -- 1.15 includes the patched code 1.99_06 Sun Feb 1 16:55:17 EST 2004 * ExtProc module is now built as a shared object * libperxsi.so no longer retains old version of ExtProc when upgrading * can now run 'perl -cw' to check syntax if you preload extproc_perl.so * create trusted code directory during installation if it doesn't exist * rewrote gen_module_libs so it works more reliably * installation will warn you when shared objects are not found * bootstrap failure errors are now more consistent and verbose * is_null and set_null methods manipulate NULL status of oracle datatype objects 1.99_05 Sat Jan 17 16:59:49 EST 2004 * support for DATE types * methods for manipulating DATE values in Perl * existing libperlxsi is no longer overwritten during installation * set NULL indicators for IN OUT & OUT types * fix inc_path_to_mflag crash on solaris 1.99_04 Sat Dec 27 18:48:07 EST 2003 * implement NULL, LENGTH, and MAXLEN indicators for variable length data types like VARCHAR2 * allow user-defined attributes in dbi_connect * move put_line into ExtProc and remove from ExtProc::Util * implement filehandle interface to put_line * make ExtProc object-oriented (needed for put_line filehandles) * correctly pass NULL parameters as undefined scalars for directly executed subroutines * autogenerate external procedure DDL in Perl.create_wrapper * wrote the user's guide (currently only available online) 1.99_03 Sat Dec 6 22:51:11 EST 2003 * disallow eval in taint mode * register .fini function (ELF) to call pl_shutdown at library unload VERY EXPERIMENTAL, but it seems to work well on both linux & solaris * can register user-defined destructors using register_destructor * implement IN OUT and OUT parameters * changed Perl.create_wrapper syntax to better reflect Oracle's syntax * prefix C wrapper function names with EP_ to prevent name clashes * full documentation is now available from the user's guide 1.99_02 Tue Nov 18 11:00:11 EST 2003 * can directly call Perl subroutines, bypassing the generic func & proc wrappers * Perl.create_wrapper creates C wrappers for directly calling subs * beginnings of support for non-VARCHAR2 IN & RETURN values (just integers for now) * perlxsi.mk and other relinking files are now installed in the trusted code directory 1.99_01 Sat Nov 8 12:19:19 EST 2003 * initial alpha release (pre-2.0) CHANGES BELOW ARE RELATIVE TO the 1.03 codebase: * globals incorporated into single global EP_CONTEXT struct to minimize use of globals and lay the groundwork for future threading support * gen_module_libs rewritten in perl for portability & accuracy * all oracle functions/procedures now in "Perl" PL/SQL package * perl function is now Perl.func * perl_p procedure is now Perl.proc * former "special subroutines" are their own PL/SQL procedures in the Perl package * func & proc now take up to 8 arguments by default * debugging and tainting support are always built in * new configuration file with various runtime options * tainting is now a runtime setting * bootstrap file path is a runtime setting * can specify additions to @INC as a runtime setting * can specify debug directory as a runtime setting * simple_query.c and simple_query functions decommissioned * oci.c now contains all significant OCI routines * ExtProc "convenience" routines removed * new fetch_code routine dedicated to fetching code from database * code in database now stored as VARCHAR2 instead of CLOB * support for per-session namespaces (packages) * renamed ExtProc::exception to ExtProc::ora_exception * ExtProc::is_function & ExtProc::is_procedure will tell you the context of the current call * split module shared objects into their own library, libperlxsi, so they can be maintained separately from extproc_perl.so * perlxsi.mk Makefile is installed to facilitate linking new modules * perl_config view contains configuration settings