Changes for version 0.57 - 2002-02-23
- Overall:
- SPOPS now works with Oracle! All tests pass and all the scripts under eg/ work ok as well, but you might consider this support beta until someone who actually knows Oracle takes a look.
- SPOPS now works with SQLite! SQLite is an embeddable database, and DBD::SQLite comes with the database source ready to compile. You can use it instead of DBD::Sprite or DBD::CSV -- it is much faster and behaves like a real database. Kudos to the indefatigable Matt Sergant!
- Fix tests and (hopefully) Makefile.PL to follow all dependencies properly.
- Individual:
- Makefile.PL:
- Add 'Class::Factory' as a dependency
- eg/fetch_all.pl:
- Display all known objects in eg/ modules
- eg/users_groups_oracle.sql, eg/users_groups_clear_oracle.sql:
- Data create/clear scripts for Oracle
- eg/users_groups_sqlite.pl:
- Data create script for SQLite
- eg/My/(User|Group|Doodad|Security).pm:
- Use named sequences versus relying on default behavior
- SPOPS.pm:
- Modified clone() to respect false-but-defined values passed in for the new object. Thanks to Ray Zimmerman <rz10@cornell.edu> for the patch.
- SPOPS/DBI.pm:
- Add 'sql_case_insensitive' to allow drivers to specify a case-insensitive operator. (Default: 'LIKE', which may or may not work for all databases but at least it will not break anything.)
- Add docs for the pre_fetch_id() and post_fetch_id() callbacks to get/find ID values on an insert.
- The return value from pre_fetch_id() is by default set to no_quote -- the implementer of pre_fetch_id() is responsible for either quoting it or for telling SPOPS::DBI that it is ok to quote it using the normal means.
- SPOPS/DBI/Pg.pm:
- Specify the '~*' case-insensitive operator
- Modify how we fetch/retrieve sequence values.
- SPOPS/DBI/Oracle.pm:
- Hey, we support Oracle now! (See above)
- SPOPS/DBI/SQLite.pm:
- Hey, we support SQLite now! (See above)
- SPOPS/Exception.pm:
- You can now pass as many arguments as you want to throw() -- they will all get concatenated into the exception message unless the last one is a hashref, which will be set to the optional parameter hashref.
- SPOPS/Import.pm, SPOPS/Export.pm:
- Modify to use Class::Factory
- SPOPS/Import/TableTransform/(Oracle|SQLite).pm:
- Add table transforms for Oracle and SQLite
- SPOPS/Key/(Random|UUID).pm:
- Quote the return value from pre_fetch_id()
- SPOPS/Secure.pm:
- Add a 'require SPOPS::Exception::Security' to bring in the module, but add it after all the constants have been defined so we don't get into a deadlock
- t/05_exception.t:
- Modify stringification comparison to work properly all the time
- t/30_dbi.t, t/31_dbi_multifield.t, t/40_ldap.t:
- Only run the END {} if we're running the tests
- t/dbi_config.pl:
- Add Oracle-specific info
- Makefile.PL:
Documentation
User Guide and Reference Manual for SPOPS
How SPOPS builds classes
Description of variables used in the SPOPS configuration process
Recipes for SPOPS usage
SPOPS datasource use and how you can customize
Error handling in SPOPS
Moving data (and more) with SPOPS
Introduction and overview of SPOPS
Shows how you interact with SPOPS objects.
Use rules to give your object custom behavior
SPOPS object relationships
SPOPS security system and how you can customize
How SPOPS serializes objects
Perform tests on a DBD driver to see if it may work with SPOPS
Modules
Simple Perl Object Persistence with Security
Create SPOPS classes from configuration and code
Define additional configuration methods
Default configuration methods called from SPOPS.pm
Create relationships among LDAP objects
DEPRECATED
DEPRECATED
DEPRECATED
Implement SPOPS class, serializing into a DBI database
MySQL-specific code for DBI collections
Oracle-specific routines for the SPOPS::DBI
PostgreSQL-specific routines for the SPOPS::DBI
SQLite-specific code for DBI collections
Sybase-specific routines for the SPOPS::DBI
(DEPRECATED) Centralized error messages from all SPOPS objects.
Base class for exceptions in SPOPS
SPOPS exception with extra DBI parameters
SPOPS exception with extra LDAP parameters
SPOPS exception with extra security parameters
Export SPOPS objects to various formats
Export SPOPS objects as data for importing directly into a DBI table
Dump SPOPS objects to a portable format
Dump SPOPS objects to a pure serialized Perl format
Export SPOPS objects as a series of SQL statements
Export SPOPS objects in XML format
Store SPOPS objects in a GDBM database
Implement as objects files containing perl hashrefs dumped to text
Factory and parent for importing SPOPS objects
Import raw data to a DBI table
Import a DBI table structure
Factory class for database-specific transformations
Import SPOPS objects
Provide methods for initializing groups of SPOPS objects at once
Class to cycle through results and return SPOPS objects
Implementation of SPOPS::Iterator for SPOPS::DBI
Implementation of SPOPS::Iterator for SPOPS::LDAP
SPOPS::Iterator wrapper around object lists
Retrieve an auto-increment value from a DBI statement or database handle
Retrieve IDENTITY values from a supported DBI database
Retrieves ID field information from a pool
Retrieve sequence values from a supported DBI database
Creates a random alphanumeric code for the ID field
Creates a Universally Unique ID (UUID) as a key
Implement object persistence in an LDAP datastore
SPOPS::LDAP functionality but fetching objects from multiple datasources
Simple SPOPS class used for testing rules and other goodies
Generic routines for DBI database interaction
Implement security across one or more classes of SPOPS objects
Define hierarchical security
Simple class implementing tied hash with some goodies
Enable field checking for SPOPS objects
Utility methods for SPOPS objects
Provides
in SPOPS/Import/DBI/TableTransform/MySQL.pm
in SPOPS/Import/DBI/TableTransform/Oracle.pm
in SPOPS/Import/DBI/TableTransform/Pg.pm
in SPOPS/Import/DBI/TableTransform/SQLite.pm
in SPOPS/Import/DBI/TableTransform/Sybase.pm
in SPOPS/HashFile.pm
Examples
- eg/My/Common.pm
- eg/My/Doodad.pm
- eg/My/Group.pm
- eg/My/LDAPConnect.pm
- eg/My/ReadOnly.pm
- eg/README
- eg/datasource_configure.pl
- eg/datasource_configure_ldap.pl
- eg/export_doodads.pl
- eg/fetch_all.pl
- eg/fetch_doodads.pl
- eg/find_defaults_demo.pl
- eg/ldap_multidatasource.pl
- eg/stock_doodads.pl
- eg/stock_user_group.pl
- eg/users_groups_clear.sql
- eg/users_groups_clear_oracle.sql
- eg/users_groups_clear_pgsql.sql
- eg/users_groups_mysql.sql
- eg/users_groups_oracle.sql
- eg/users_groups_pgsql.sql
- eg/users_groups_sqlite.pl
- eg/users_groups_tsql.sql