Changes for version 1.99_04 - 2003-12-27
- 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)
Changes for version 1.99_03 - 2003-12-06
- 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
Changes for version 1.99_02 - 2003-11-18
- 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
Changes for version 1.99_01 - 2003-11-08
- 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
Modules
Perl interface to the Oracle Perl External Procedure Library