Changes for version 0.08125 - 2010-12-27

  • New Features / Changes
    • New method ResultSource columns_info method, returning multiple pairs of column name/info at once
    • $rs->search now throws when called in void context, as it makes no sense (and is nearly always a sign of a bug/misdesign)
    • Restore long-lost ability to supply unbalanced select/as pairs e.g. +select => \'DISTINCT(foo, bar)', +as => ['foo', 'bar']
    • +columns now behaves just like columns by not stripping a fully-qualified 'as' spec (i.e. foo.bar results in $obj->foo->bar)
    • Deprecate legacy $rs->search( %condition ) syntax (warn once per callsite)
    • NULL is now supplied unquoted to all debug-objects, in order to differentiate between a real NULL and the string 'NULL'
    • New search() condition operator -value used to pass complex bind values to DBI: search({ array_col => { -value => [1,2,3] }})
    • Add full INSERT...RETURNING support for Oracle
    • Deprecate use of -nest in search conditions (warn once per callsite)
    • Deprecate the completely useless DBIx::Class::Serialize::Storable result component
  • Fixes
    • Fixed read-only attribute set attempt in ::Storage::Replicated (RT#62642)
    • Fix incomplete logic while detecting correct Oracle sequence on insert
    • Fix detection of Oracle sequences for tables without an explicitly specified schema (RT#63493)
    • Major overhaul of Storage::Oracle to handle enabled quoting
    • Fixed incorrect composition of select/as/columns attributes during chaining (RT#61235)
    • Proper serialization of resultsets with open cursors
    • Refactor handling of RDBMS-side values during insert() - fix regression of inserts into a Postgres / ::Replicated combination
    • Missing dependency check in t/60core.t (RT#62635)
    • Fix regressions in IC::DT registration logic
    • Fix regression in select-associated bind value handling (RT#61025)
    • Simplify SQL generated by some LIMITed prefetching queries
    • Throw an exception when a required group_by on a complex prefetch can not be auto-constructed, instead of continuing to eventually produce invalid SQL
    • Fix infinite loops on old perls with a recent Try::Tiny
    • Improve "fork()" on Win32 by reimplementing a more robust DBIC thread support (still problematic, pending a DBI fix)
    • Properly quote table name on INSERT with no values
    • Work around possible Storage destruction warnings
    • Fix count of grouped resultsets using HAVING with aliases
    • Setting belongs_to columns/relationships no longer leaves the FK value and related object out of sync
    • Stop stripping newlines from SQL statements in the limit emulators as it is possible that custom sql with comments was provided
    • Add forgotten attributes to Admin.pm
    • Fix incorrect 'having' attribute documentation (RT#64129)
    • Improve fallback-to-master/return-to-slave reporting in ::Replicated::Balancer
    • Adjust txn_scope_guard code/tests to changes in $@ handling on recent blead (RT#64251)
  • Misc
    • Add extra option groups to DBIC::Optional::Depencencies, to aid users in requesting the prerequisites for a particular RDBMS
    • Switch all serialization to use Storable::nfreeze for portable architecture independent ice
    • Fix the bogus META.yml dependency injection issue for good
    • Refactor DBIx::Class::Storage::Statistics::debugfh() to be lazy

Documentation

Index of the Manual
Developing DBIx::Class Components
Miscellaneous recipes
What documentation do we have?
Simple CD database example
Frequently Asked Questions (in theory)
A boatload of DBIx::Class features with links to respective documentation
Clarification of terms used.
Introduction to DBIx::Class
Manual on joining tables with DBIx::Class
How to read and write DBIx::Class POD.
Got a problem? Shoot it.
utility for administrating DBIx::Class schemata

Modules

Extensible and flexible object <-> relational mapper.
See Class::Accessor::Grouped
Administration object for schemas
Class::DBI Compatibility layer.
Core set of DBIx::Class modules
Abstract object representing a query cursor on a resultset.
(DEPRECATED) classdata schema component
Exception objects for DBIx::Class
Automatically convert column data
Automatically create references from column data
Auto-create DateTime objects from date and datetime columns.
DEPRECATED (superseded by DBIx::Class::InflateColumn::FS)
Optional module dependency specifications (for module authors)
Modify the position of objects in an ordered list.
Primary Key class
Automatic primary key class
Inter-table relationships
Inter-table relationships
Get raw hashrefs from a resultset
Represents a query used for fetching a set of results.
helpful methods for messing with a single column of the resultset
scheduled for deletion in 09000
Result source object
ResultSource object representing a view
Decouple Rows/ResultSets objects from their Source objects
provides a classdata table object and method proxies
Basic row methods
An SQL::Abstract-based SQL maker class
SQL::Abstract::Limit-like functionality for DBIx::Class::SQLMaker
Pre-ANSI Joins-via-Where-Clause Syntax
composable schemas
DBIx::Class::Schema plugin for Schema upgrades
hooks for Storable nfreeze/thaw
Run environment checks on startup
Generic Storage Handler
DBI storage handler
Support for Microsoft SQL Server via DBD::ADO
Storage component for RDBMS requiring explicit placeholder typing
Object representing a query cursor on a resultset.
Automatic primary key class for DB2
Base Storage Class for Informix Support
Driver for the Firebird RDBMS
Base Class for Microsoft SQL Server support in DBIx::Class
Storage component for RDBMS supporting multicolumn in clauses
Sometime DBDs have poor to no support for bind variables
Base class for ODBC drivers
Support specific to MS Access over ODBC
Support specific to DB2/400 over ODBC
Driver for using the Firebird RDBMS through ODBC
Support specific to Microsoft SQL Server over ODBC
Driver for using Sybase SQL Anywhere through ODBC
Base class for Oracle driver
Oracle Support for DBIx::Class
Oracle joins in WHERE syntax support (instead of ANSI).
Automatic primary key class for PostgreSQL
BETA Replicated database support
Manage a pool of replicants
A replicated DBI Storage Role
A DBI Storage Role with DSN information in trace output
Driver for Sybase SQL Anywhere
Automatic primary key class for SQLite
Base class for drivers using DBD::Sybase
Sybase ASE SQL Server support for DBIx::Class
Storage::DBI subclass for Sybase ASE without placeholder support
(DEPRECATED) Legacy storage class for MSSQL via DBD::Sybase
Support for Microsoft SQL Server via DBD::Sybase
Support for Microsoft SQL Server via DBD::Sybase without placeholders
Storage component for RDBMSes supporting the 'uniqueidentifier' type
Storage::DBI class implementing MySQL specifics
Scope-based transaction handling
Force UTF8 (Unicode) flag on columns (DEPRECATED)
Create a SQL::Translator schema from a DBIx::Class::Schema instance