The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 0.08122 - 2010-05-03

  • New Features
    • Add DBIx::Class::FilterColumn for non-ref filtering
    • ::Storage::DBI now correctly preserves a parent $dbh from terminating children, even during interpreter-global out-of-order destruction
    • dbicadmin supports an -I option with the same semantics as perl itself
    • InflateColumn::DateTime support for MSSQL via DBD::Sybase
    • Millisecond precision support for MSSQL datetimes for InflateColumn::DateTime
    • Oracle-specific hierarchical query syntax support: CONNECT BY (NOCYCLE) / START WITH / ORDER SIBLINGS BY
    • Support connecting using $ENV{DBI_DSN} and $ENV{DBI_DRIVER}
    • current_source_alias method on ResultSet objects to determine the alias to use in programatically assembled search()es (originally added in 0.08100 but unmentioned)
    • Rewrite/unification of all subselecting limit emulations (RNO, Top, RowNum) to be much more robust wrt complex joined resultsets
    • MSSQL limits now don't require nearly as many applications of the unsafe_subselect_ok attribute, due to optimized queries
    • Support for Generic Subquery limit "emulation" - awfully slow and inefficient but works on almost any db, and is preferred to software limit emulation
    • Sybase ASE driver now uses SET ROWCOUNT where possible, and Generic Subquery otherwise for limit support instead of always using software limit emulation
    • create_ddl_dir (and derivatives) now attempt to create the given $ddl_dir if it does not already exist
    • deployment_statements now automatically supplies the current RDBMS version to SQLT producer_args for MySQL, Pg, SQLite and Oracle
  • Fixes
    • Fix nasty potentially data-eating bug when deleting/updating a limited resultset
    • Fix find() to use result_class set on object
    • Fix result_class setter behaviour to not mistakenly stuff attrs.
    • Don't try and ensure_class_loaded an object. This doesn't work.
    • Fix as_subselect_rs to not inject resultset class-wide where conditions outside of the resulting subquery
    • Fix count() failing with {for} resultset attribute (RT#56257)
    • Fixed incorrect detection of Limit dialect on unconnected $schema
    • update() on row not in_storage no longer throws an exception if there are no dirty columns to update (fixes cascaded update annoyances)
    • update()/delete() on prefetching resultsets no longer results in malformed SQL (some $rs attributes were erroneously left in)
    • Fix dbicadmin to allow deploy() on non-versioned schema
    • Fix dbicadmin to respect sql_dir on upgrade() (RT#57732)
    • Update Schema::Versioned to respect hashref style of connection_info
    • Do not recreate the same related object twice during MultiCreate (solves the problem of orphaned IC::FS files)
    • Fully qualify xp_msver selector when using DBD::Sybase with MSSQL (RT#57467)
    • Fix ::DBI::Storage to always be able to present a full set of connect() attributes to e.g. Schema::Versioned
    • Fix Oracle auto-inc trigger detection of "INSERT OR UPDATE"-type triggers
  • Misc
    • Reformatted Changelog \o/
    • DBIC goes git://git.shadowcat.co.uk/dbsrgits/DBIx-Class.git
    • Allow developers to skip optional dependency forcing when working from a checkout
    • Add a warning to load_namespaces if a class in ResultSet/ is not a subclass of DBIx::Class::ResultSet
    • All DBIC exception-handling switched to Try::Tiny
    • All DBIC modules are now free of imports via namespace::clean
    • Depend on optimized SQL::Abstract (faster SQL generation)
    • Depend on new Class::Accessor::Grouped reintroducing optional use of Class::XSAccessor (just install C::XSA and get lightning fast column accessors)

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)
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
composable schemas
DBIx::Class::Schema plugin for Schema upgrades
hooks for Storable freeze/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
Role to add a query counter
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