The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.25 - 2006-09-12

  • cleaned up DSN generation.
  • Allowed arbitrary parameter specification in DSNs
  • Corrected the method name "DSN" to "dsn" throughout.
  • ( If a user tries to load a record by columns that happen ot be foriegn keys, and values that are objects, do the right thing
  • Propery cache DBI::Record entries when aliased.
  • Fewer accessor calls.
  • Only apply filters if we have values fetched.
  • make passing a J:D:Collection as a value DTRT
  • Jifty::DBI::Schema - s/die/croak/ to aid debugging.
  • Refactor Jifty::DBI::Filter::Date to be a subclass of ::Filter::DateTime.
  • New ::Filter::Time filter for time of day. ('time' sql type).
  • Update to Module::Install 0.64 to fix auto_install() when Makefile.PL is run from the command line and CPANPLUS is not installed.
  • The number of fixed tests in t/10schema.t for Jifty::DBI was wrong.
  • documented limit a bit more
  • JDBI::Filter::Date clones dates before setting timezone, so that we don't alter the object we're passed.
  • Spelling fixes.
  • Remove the @ISA-mocking code from Jifty::DBI::Schema, so that
    • use MyApp::Record schema { ...; }
    • can work even if MyApp::Record overrides Jifty::Record's column building methods. We do that by arranging the schema callback to run after the @ISA chain is set up.
  • Jifty::DBI::Schema - defer initialization for columns created via the schema{} wrapper, so that users can continue to define column names that overlaps with the helper functions, such as "label" and "type".
  • attempt to test "label" and "type" column definitions. however, as I don't have Pg, I cannot run this test; help welcome.
  • cleaned up case sensitivity code
  • fixed SQLite docs
  • abstract out checking whether it's possible to make a clause case insensitive so that subclasses of Handle can use those tests
  • doc'd Filter::DateTime special behavior when the column type is 'date'
  • Adding a filter to salt and hash passwords
  • Adding an after_set hook to Jifty::DBI::Record
  • Jifty::DBI::Schema: Lift the restriction to use another ::Schema package on the record model class; you can now directly write:
    • package Wifty::Model::Page; use Jifty::DBI::Schema;
    • schema {
    • ... your columns here ... };
    • because &schema will unregister all symbols exported by Jifty::DBI::Schema after it runs the column initialization code. Backward compatibility is preserved -- as long as you don't name your record model "Schema"...
  • update the testmodels.pl to use new schema decl syntax
  • Lift the call of schema to BEGIN time:
  • fixed handling of case sensitivity and numeric columns so opertions like '>' do numeric instead of lexical comparisons
  • Allow collection SELECTs to have preload_columns defined.
  • Case insensitive searches should be, euh, case insensitive in Pg
  • Mark case-sensitive tests as TODO for MySQL
  • drop ::Cachable::new as it does nothing
  • add cache tests: columns names are case insensetive so we should generate cache key insenstive too ::Cachable::_gen_record_cache_key
    • hash key couldn't be undefined, but '' and 0 are different keys
    • values undef, 0 and '' are different, use '__undef' only when it's really undef
    • apply the same logic when $value is hash reference
    • use lower case for key part
  • ::Cachable::load_from_cache
    • don't generate PK cache key, we do that in subcequent _store call
  • ::Cachable::__set
    • don't create local arguments hash, just pass @_ throught
  • ::Cachable::__delete
    • don't eat arguments, may be somebody wants to subclass and pass arguments to delete.
  • ::Cachable::_fetch
    • fetch again only when we found something in cache with keys' aliases
  • ::Cachable::_primary_record_cache_key
    • avoid check for $self->id definess as if it's undef then record couldn't have pk cache key
    • use $self->primary_keys to get columns of the PK and its values, as result we get support for compound PKs here
    • Mark undef PK loading as TODO
    • Only mark the one failing test under mysql as TODO
    • make Collection smart about guessing table names
    • removed a lie from create() pod
    • Make _open_paren and _close_paren into public methods open_paren and close_paren

Modules

An object-relational persistence framework
Encapsulate SQL queries and rows in simple perl objects
Deal with multiple Jifty::DBI::Collection result sets as one
Ensure uniqueness of records in a collection
DateTime object wrapper around date columns
DateTime object wrapper around date columns
salts and hashes a value before storing it
Encodes arbitrary data using Storable
DateTime object wrapper around date columns
Encodes data as base64
Jifty::DBI UTF-8 data filter
Perl extension which is a generic DBI handle
An Informix specific Handle object
An ODBC specific Handle object
An oracle specific Handle object
A Postgres specific Handle object
A SQLite specific Handle object
a Sybase specific Handle object
A mysql specific Handle object
A mysql specific Handle object
abstract class for objects that has filters
Superclass for records loaded by Jifty::DBI::Collection
records with caching behavior
records with caching behavior
Use a simple syntax to describe a Jifty table.
Generate table schemas from Jifty::DBI records

Provides

in lib/Jifty/DBI/Filter.pm
in lib/Jifty/DBI/Filter/Truncate.pm
in lib/Jifty/DBI/Schema.pm