Release v0.08270
[dbsrgits/DBIx-Class.git] / Changes
CommitLineData
3b44ccc6 1Revision history for DBIx::Class
64ea0f49 2
75cbf825 30.08270 2014-01-30 21:54 (PST)
215102b9 4 * Fixes
5 - Fix 0.08260 regression in DBD::SQLite bound int handling. Inserted
6 data was not affected, but any function <=> integer comparison would
7 have failed (originally fixed way back in 0e773352)
e5a62c46 8 - Fix failure to load DateTime formatter when connecting to Firebird
9 over ODBC
215102b9 10
f7370154 11 * Misc
12 - All drivers based on ::Storage::DBI::Firebird::Common now return the
13 same sqlt_type value (affects ::DBI::Interbase, ::DBI::Firebird and
14 ::DBI::ODBC::Firebird)
15
653361f3 160.08260 2014-01-28 18:52 (UTC)
17 * New Features
16e77134 18 - A new zero-to-DBIC style manual: DBIx::Class::Manual::QuickStart
19
653361f3 20 * Notable Changes and Deprecations
21 - Explicitly deprecate combination of distinct and selecting a
22 non-column via $rs->get_column()
23
f9b5239a 24 * Fixes
9e7525a2 25 - More robust handling of circular relationship declarations by loading
26 foreign classes less frequently (should resolve issues like
27 http://lists.scsys.co.uk/pipermail/dbix-class/2013-June/011374.html)
a37e6150 28 Note that none of this is a manifestations of a DBIC bug, but rather
29 unexpected (but correct) behavior of load-order-dependent (hence
30 logically broken) Resultclass hierarchies. In order to deal with this
31 DBIC is scaling back a large number of sanity checks, which are to be
32 reintroduce pending a better framework for source registration
0dadd60d 33 - Fix multiple edge cases of complex prefetch combining incorrectly
34 with correlated subquery selections
b33613cf 35 - Fix multiple edge cases stemming from interaction of a non-selecting
eb58c082 36 order_by specification and distinct and/or complex prefetch
6ae62c5c 37 - Fix unbound growth of a resultset during repeated execute/exhaust
653361f3 38 cycles (GH#29)
841efcb3 39 - Work around (and be very vocal about the fact) when DBIC encounters
40 an exception object with broken string overloading
aca094b4 41 - Clarify ambiguous behavior of distinct when used with ResultSetColumn
42 i.e. $rs->search({}, { distinct => 1 })->get_column (...)
f9b5239a 43 - Setting quote_names propagates to SQL::Translator when producing
44 SQLite DDL (it is one of the few producers *NOT* quoting by default)
04ab4eb1 45 - Fix incorrect binding of large integers on old versions of
46 DBD::SQLite (now DBIC simply always binds SQLite ints as BIGINT)
47 - Silence (harmless) warnings on recent DBD::SQLite versions, when
48 inserting/updating large integers on 32bit ivsize systems (RT#76395)
16e77134 49 - Back out self-cleaning from DBIx::Class::Carp for the time being
50 (as a side effect fixes RT#86267)
a9da9b6a 51 - Fix incorrect internal use of implicit list context in copy()
37b5ab51 52 - Fix 0.08250 regression in driver determination when DBI_DSN is used
444f799b 53 - Tests no longer fail if $ENV{DBI_DSN} is set
3f8affda 54 - Throw clearer exception on ->new_related() with a non-existent
1d1ccc94 55 relationship
56 - Fix incorrect parethesis unroll with multicolumn in, (never noticed
57 before fixing false positive in SQLA::Test 1.77)
617474ab 58 - Fix t/storage/replicated.t class loading problem
d401ab6b 59 - Stop using the deprecated Class::MOP::load_class()
f9139687 60 - Fix warning in t/54taint.t with explicitly unset PERL5LIB (RT#91972)
6fc6d60c 61 - Fix t/54taint.t failing under a local::lib with installed earlier
62 DBIC version (RT#92486)
f9b5239a 63
47d7b769 64 * Misc
7d534e68 65 - Massive incompatible change of ::BlockRunner internals (was never
66 documented as usable externally, this last set of changes settles
67 the design for proper documentation and opening up)
ed5550d3 68 - Adjust exceptions in tests to accommodate changes in the upcoming
69 DBD::SQLite based on libsqlite 3.8.2
0a03f539 70 - More robust lock file naming scheme - allow tests to work on exotic
71 MSWin32 filesystems (habitual offender being http://is.gd/iy5XVP)
fa19e5d6 72 - Better diagnostics when File::Spec->tmpdir gives us crap in testing
47d7b769 73 - Replace $row with $result in all docs to be consistent and to
74 clarify various return values
75
c36f8d8d 760.08250 2013-04-29 22:00 (UTC)
6dd43920 77 * New Features / Changes
f3c8fa02 78 - Rewrite from scratch the result constructor codepath - many bugfixes
79 and performance improvements (the current codebase is now capable of
80 outperforming both DBIx::DataModel and Rose::DB::Object on some
81 workloads). Some notable benefits:
82 - Multiple has_many prefetch
83 - Partial prefetch - you now can select only columns you are
84 interested in, while preserving the collapse functionality
85 (collapse is now exposed as a first-class API attribute)
86 - Prefetch of resultsets with arbitrary order
87 (RT#54949, RT#74024, RT#74584)
88 - Prefetch no longer inserts right-side table order_by clauses
89 (massively helps the deficient MySQL optimizer)
90 - Prefetch with limit on right-side ordered resultsets now works
91 correctly (via aggregated grouping)
92 - No longer order the insides of a complex prefetch subquery,
93 unless required to satisfy a limit
94 - Stop erroneously considering order_by criteria from a join under
95 distinct => 1 (the distinct should apply to the main source only)
96 - Massively optimize codepath around ->cursor(), over 10x speedup
97 on some iterating workloads.
1b5ddf23 98 - Support standalone \[ $sql, $value ] in literal SQL with bind
99 specifications: \[ '? + ?', 42, 69 ] is now equivalent to
100 \[ '? + ?', [ {} => 42 ], [ {} => 69 ] ]
f3c8fa02 101 - Changing the result_class of a ResultSet in progress is now
102 explicitly forbidden. The behavior was undefined before, and
103 would result in wildly differing outcomes depending on $rs
104 attributes.
6dd43920 105 - Deprecate returning of prefetched 'filter' rels as part of
106 get_columns() and get_inflated_columns() data
107 - Invoking get_inflated_columns() no longer fires get_columns() but
108 instead retrieves data from individual non-inflatable columns via
109 get_column()
f3c8fa02 110 - Emit a warning on incorrect use of nullable columns within a
111 primary key
02a73c96 112 - Limited checks are performed on whether columns without declared
113 is_nullable => 1 metadata do in fact sometimes fetch NULLs from
114 the database (the check is currently very limited and is performed
115 only on resultset collapse when the alternative is rather worse)
6dd43920 116
f4fdfd69 117 * Fixes
723f25e0 118 - Fix _dbi_attrs_for_bind() being called befor DBI has been loaded
119 (regression in 0.08210)
f4fdfd69 120 - Fix update/delete operations on resultsets *joining* the updated
121 table failing on MySQL. Resolves oversights in the fixes for
122 RT#81378 and RT#81897
f3c8fa02 123 - Fix open cursors silently resetting when inherited across a fork
124 or a thread
125 - Properly support "MySQL-style" left-side group_by with prefetch
126 - Fix $grouped_rs->get_column($col)->func($func) producing incorrect
127 SQL (RT#81127)
048c2440 128 - Stop Sybase ASE storage from generating invalid SQL in subselects
129 when a limit without offset is encountered
f3c8fa02 130 - Even more robust behavior of GenericSubQuery limit dialect
1759f82f 131 - Make sure deployment_statements() and cursor_class() are called on
132 a resolved storage subclass
f4fdfd69 133
fb88ca2c 134 * Misc
135 - Fix tests failing due to unspecified resultset retrieval order
136 (test suite now will pass with newest SQLite libs)
137
5a1dea85 1380.08210 2013-04-04 15:30 (UTC)
11343b34 139 * New Features / Changes
140 - Officially deprecate the 'cols' and 'include_columns' resultset
141 attributes
9930caaf 142 - Remove ::Storage::DBI::sth() deprecated in 0.08191
11343b34 143
d77ee505 144 * Fixes
75a1d824 145 - Work around a *critical* bug with potential for data loss in
146 DBD::SQLite - RT#79576
d77ee505 147 - Audit and correct potential bugs associated with braindead reuse
148 of $1 on unsuccessful matches
5e0e5426 149 - Fix incorrect warning/exception originator reported by carp*() and
150 throw_exception()
d77ee505 151
4f364257 1520.08209 2013-03-01 12:56 (UTC)
e0de554e 153 * New Features / Changes
154 - Debugging aid - warn on invalid result objects created by what
155 seems like an invalid inheritance hierarchy
156
9ae300a4 157 * Fixes
158 - Fix another embarrassing regression preventing correct refining of
159 the search criteria on a prefetched relation (broken in 0.08205)
569b96bb 160 - Fix incorrect callsite reporting by DBIC::Carp
9ae300a4 161
cc3654a1 1620.08208 2013-02-20 09:56 (UTC)
a07ae2aa 163 * New Features / Changes
164 - A bunch of nonsensically named arguments to the SQL::Translator
165 parser have been marked as deprecated (while still fully
166 supported)
167
913b4bae 168 * Fixes
169 - Fix duplicated selected columns when calling 'count' when a same
170 aggregate function is used more than once in a 'having' clause
171 (RT#83305)
31399b48 172 - Prevent SQL::Translator::Producer::YAML from seeing the $dbh
173 in a potentially connected $schema instance (RT#75394)
913b4bae 174
ad944588 175 * Misc
176 - Fixup our distbuilding process to stop creating world-writable
177 tarball contents (implicitly fixes RT#83084)
4a233f30 178 - Added strict and warnings tests for all lib and test files
ad944588 179
08d7807b 1800.08206 2013-02-08
8c21eef7 181 * Fixes
8f6986ac 182 - Fix dbh_do() failing to properly reconnect (regression in 0.08205)
8c21eef7 183 - Extra sanity check of a fresh DBI handle ($dbh). Fixes
184 connection coderefs returning garbage (seen in the wild)
185
60fd7c30 186 * Misc
187 - Only allow known globals in SQL::Translator leak allowance
a5ef1371 188 - General cleanup of error message texts - quote names/identifiers
189 for easier reading
190 - Stop t/52leaks.t from failing when AUTOMATED_TESTING=1
60fd7c30 191
f4fe67e2 1920.08205 2013-01-22
67341081 193 * New Features / Changes
194 - The emulate_limit() arbitrary limit dialect emulation mechanism is
195 now deprecated, and will be removed when DBIx::Class migrates to
196 Data::Query
97202028 197 - Support for the source_bind_attributes() storage method has been
198 removed after a lengthy deprecation cycle
218b7c12 199 * Fixes
fd8076c8 200 - When performing resultset update/delete only strip condition
201 qualifiers - leave the source name alone (RT#80015, RT#78844)
31073ac7 202 - Fix incorrect behavior on resultset update/delete invoked on
203 composite resultsets (e.g. as_subselect_rs)
45150bc4 204 - Fix update/delete operations referencing the updated table failing
205 on MySQL, due to its refusal to modify a table being directly
206 queried. As a workaround induce in-memory temp-table creation
207 (RT#81378, RT#81897)
218b7c12 208 - More robust behavior under heavily threaded environments - make
209 sure we do not have refaddr reuse in the global storage registry
dfd722ef 210 - Fix failing test on 5.8 under Win32 (RT#81114)
b563960f 211 - Fix hash-randomization test issues (RT#81638)
1fccee7b 212 - Disallow erroneous calling of connect_info on a replicated storage
213 (RT#78436)
44e95db4 214 * Misc
215 - Improve the populate docs in ::Schema and ::ResultSet
97202028 216 - ::Storage::DBI::source_bind_attributes() removed as announced
217 on Jan 2011 in 0e773352a
218b7c12 218
8b4fa23f 2190.08204 2012-11-08
8249c09b 220 * New Features / Changes
221 - SQLMaker now accepts \'literal' with the 'for' rs attribute as an
222 override to the builtin FOR options
897f4ac8 223 * Fixes
375c84bb 224 - Fix unique constraint violations in Ordered.pm blanket movement
225 (RT#79773, rolls back short-sighted 5e6fde33e)
81e4dc3d 226 - Fix API mismatch between new_result() and new_related() (originally
227 broken by fea3d045)
897f4ac8 228 - Fix test failure on perl 5.8
75d3bdb2 229 * Misc
230 - Much more extensive diagnostics when a new RDBMS/DSN combination is
231 encountered (RT#80431)
897f4ac8 232
80e1ff14 2330.08203 2012-10-18
2aeb3c7f 234 * Fixes
235 - Really fix inadequate $dbh->ping SQLite implementation (what shipped
236 in 0.08201 tickled other deficiencies in DBD::SQLite itself)
237
524fc24c 2380.08202 2012-10-06
8d1fb3e2 239 * Fixes
240 - Replace inadequate $dbh->ping SQLite implementation with our own,
241 fixes RT#78420
242
058a18cc 2430.08200 2012-08-24 (UTC)
277b225f 244 * Fixes
245 - Change one of the new tests for the previous release to not require
246 SQL::Translator
247
6adcb211 2480.08199 2012-08-22 (UTC)
5007739d 249 * Fixes
250 - Roll back incomplete (and broken) internal changes - restore prefetch functionality
251
0a7eddc0 2520.08198 2012-07-11 03:43 (UTC)
253 * Fixes
254 - Fix a number of Win32 Test issues
255 - Fix silent Oracle connection failures
256
5e2a9177 2570.08197 2012-07-10 10:32 (UTC)
07d6018a 258 * New Features / Changes
259 - Issue a warning when DateTime objects are passed to ->search
52cef7e3 260 - Fast populate() in void context is now even more efficient by
261 going directly through execute_for_fetch bypassing execute_array
be64931c 262 - Fix update()/delete() on complex resultsets to no longer fall back
263 to silly row-by-row deletion, construct a massive OR statement
264 instead
81bf295c 265 - Allow complex update/delete operations on sources without a
266 primary key, as long as they have at least one non-nullable
267 unique constraint
7b71391b 268 - dbicadmin now better supports catalyst-style config files, by
269 unrolling 'config_info' hashkeys
2edf3352 270 - Multiple Improvements MSSQL over DBD::ADO
271 - Transaction support
272 - Support for VARCHAR(MAX)/VARBINARY(MAX)/NVARCHAR(MAX) datatypes
273 - Nomalization of retrieved GUID values
81bf295c 274
275 * Fixes
27e0370d 276 - Fix complex has_many prefetch with resultsets not selecting identity
277 columns from the root result source
8b31f62e 278 - Fix SkipFirst and FirstSkip limit dialects (Informix and Firebird)
86bb5a27 279 - Fix "Skimming limit" dialects (Top, FetchFirst) to properly check
280 the order_by criteria for stability
281 - Fix "Skimming limit" dialects (Top, FetchFirst) to propagate
282 non-selected order criteria when part of a larger subquery
27a7c422 283 - Fix RowNumberOver and all "skimming limits" to correctly assemble
284 bind values when supplied for both select and order_by
285 - Fix all subquery-based dialects to not lose a subquery fragment
286 when we both select and order by the result of the same subquery
287 - Fix the Sybase hubrid limit dialect (RowCountOrGenericSubQ) losing
288 Group/Having/Order clauses when called without an offset (RT#73244)
038b8126 289 - No longer generate incorrect SQL on ->as_query called on resultsets
290 with software_limit enabled
a9bac98f 291 - A number of corner case fixes of void context populate() with \[]
66441708 292 - Fix corner case of forked children disconnecting the parents DBI
293 handle
fabbd5cc 294 - Improve identity/autoinc retrieval code in MSSQL and Sybase -
295 should reduce weird side-effects especially with populate()
25d3127d 296 - Explicitly disable DBD::ODBC batch operations (as of DBD::ODBC 1.35)
3edfebff 297 for the following drivers too buggy to handle the optimized path:
298 - FreeTDS ODBC driver (when used with MSSQL)
299 - The Firebird ODBC driver
1d8a370f 300 - The MSAccess ODBC driver
25d3127d 301 - Explicitly disable DBD::ODBC dynamic_cursors when using freetds 0.83
0d6c550e 302 or later - they made enough ODBC incompatible changes making it
303 impossible to support sanely
304 - Explicitly disable SCOPE_IDENTITY queries and statement caching for
bfec318f 305 MSSQL on DBD::Sybase compiled against freetds 0.83 or later - way too
306 buggy
307 - Disable statement caching when using Sybase ASE and DBD::Sybase
308 compiled against freetds 0.83 or later
0a03206a 309 - Fix leakage of $schema on in-memory new_related() calls
48775dd1 310 - Fix more cases of $schema leakage in SQLT::Parser::DBIC
a6ae092b 311 - Fix leakage of $storage in ::Storage::DBI::Oracle
cccd1876 312 - Fix pessimization of Oracle RowNum limit dialect query when no
313 offset has been specified
aea59b74 314 - Remove useless vestigial pessimization in Ordered.pm for cases
5e6fde33 315 when the position column is part of a unique constraint
7b71391b 316 - Fix dbicadmin to no longer ignore the documented 'config' option
a4367b26 317 - The schema-resultsource entanglement is now much more robust
318 under threads
aea59b74 319 - Fix ::Schema::ddl_filename() failing miserably on paths containing
320 certain numeric sequences
6fec58ca 321 - t/53lean_startup.t adjusted for new 5.15.x base.pm behavior
8b31f62e 322
8273e845 323 * Misc
65d35121 324 - Centralized leak-checks for all instances of DBICTest::Schema
325 from within any test
7be5717e 326 - Now passes all tests with Test::Builder 1.005
8273e845 327 - Codebase is now trailing-whitespace-free
be64931c 328 - Cleanup of complex resultset update/delete oprations - storage
329 specific code moved back to ResultSet and replaced by checks
330 of storage capabilities
8fda97d5 331 - Fixed carp_once only emitting one single warning per package
332 regardless of warning content
8d6b1478 333 - Test suite now can be safely executed in parallel (prove -jN
334 or HARNESS_OPTIONS=jN)
8273e845 335
30cfb462 3360.08196 2011-11-29 05:35 (UTC)
bc57c92c 337 * Fixes
338 - Fix tests for DBD::SQLite >= 1.34.
6ddb4ac0 339 - Fix test failures with DBICTEST_SQLITE_USE_FILE set
b0408e26 340 - Fix the find() condition heuristics being invoked even when the
341 call defaults to 'primary' (i.e. when invoked with bare values)
ce9f555e 342 - Throw much clearer error on incorrect inflation spec
2324c42c 343 - Fix incorrect storage behavior when first call on a fresh schema
344 is with_deferred_fk_checks
c7bc500e 345 - Fix incorrect dependency on Test::Simple/Builder (RT#72282)
aadfe180 346 - Fix uninitialized warning in ::Storage::Sybase::ASE
8892d8e5 347 - Improve/cache DBD-specific datatype bind checks (also solves a
348 nasty memleak with version.pm on multiple ->VERSION invocations)
386c61f6 349 - The internal carp module now correctly skips CAG frames when
350 reporting a callsite
45638aed 351 - Fix test failures on perl < 5.8.7 and new Package::Stash::XS
f62c5724 352 - Fix TxnScopeGuard not behaving correctly when $@ is set at the
353 time of $guard instantiation
8bc47467 354 - Fix the join/prefetch resolver when dealing with ''/undef/()
355 relation specifications
bc57c92c 356
cd122820 357 * Misc
358 - No longer depend on Variable::Magic now that a pure-perl
359 namespace::clean is available
26022fb5 360 - Drop Oracle's Math::BigInt req down to 1.80 - no fixes concerning
361 us were made since
cd122820 362
58a4b69c 3630.08195 2011-07-27 16:20 (UTC)
e12571af 364 * Fixes
365 - Fix horrible oversight in the Oracle sqlmaker when dealing with
366 queries updating blobs (RT#69829)
367
43d10c98 3680.08194 2011-07-20 16:10 (UTC)
8c49ff1a 369 * Fixes
ce855fff 370 - Fix $rs->populate([]) to be a no-op rather than an exception
17877ef0 371 - Overhaul t/53lean_startup.t to better dodge false positives
372 - Stop Data::Compare from loading random plugins
00819de0 373 - Oracle: Recalculate LOB bind indices for UPDATE with LOBs in WHERE
374 (RT#69548)
8c49ff1a 375
cfd773c2 3760.08193 2011-07-14 17:00 (UTC)
71829446 377 * New Features / Changes
c6b7885f 378 - Allow schema cloning to mutate attributes
3170049a 379 - DBIC now attempts more aggressive de-duplication of where
380 conditions on resultset chaining
5ef76b8b 381 - The Ordered component is now smarter wrt reordering of dirty
382 objects, and does its job with less storage queries
64b3598f 383 - Logging via DBIC_TRACE=1=<filename> no longer overwrites the
384 logfile on every program startup, appending loglines instead
71829446 385
386 * Fixes
f74d22e2 387 - Fix issue where the query was becoming overly mangled when trying
388 to use pagination with a query that has a sub-select in the WHERE
c6b7885f 389 clause
6a6394f1 390 - Fix possible incorrect pagination on Oracle, when a resultset
391 is not ordered by a unique column
7f3fd262 392 - Revert "Fix incorrect signature of the default sqlt_deploy_hook"
393 from 0.08191 - documentation was in fact incorrect, not the code
c6b7885f 394 - Fix Sybase ASE IC::DateTime support (::Storage going out of sync
395 with new default format expected by DateTime::Format::Sybase)
8d2da21a 396 - Fix a bug in update_all() resulting in the first row receiving a
397 different dataset than the subsequent ones
696ba760 398 - Accomodate MSAccess supporting only 'INNER JOIN' (not plain 'JOIN')
24f5cbcb 399 - InflateColumn::DateTime option datetime_undef_if_invalid no longer
400 masks missing dependency exceptions (RT#66823)
701c9693 401 - Fix bug in Schema::Versioned failing to insert a schema version row
402 during upgrades at the turn of the second
67b35a45 403 - Fix incorrect bind of integers >= 2^^32 (bigint columns) to
404 SQL_INTEGER, resulting in silent conversion to '-1'
88b1530a 405 - Fix pre 5.10 failures of t/55namespaces_cleaned.t due to buggy
406 require() (RT#68814)
e6f3272b 407 - Oracle autoinc inserts no longer leave open cursors behind
f74d22e2 408
4cc6b752 4090.08192 2011-05-10 04:20 (UTC)
632d1e0f 410 * Fixes
411 - Fix serious regression on SQLite, corrupting data when an alphanum
412 value does not correspond to a stale numeric datatype in colinfo
867a7241 413
632d1e0f 4140.08191 2011-05-02 00:45 (UTC) (deleted from CPAN)
2b8cc2f2 415 * New Features / Changes
416 - Add quote_names connection option. When set to true automatically
417 sets quote_char and name_sep appropriate for your RDBMS
8b9473f5 418 - Add retrieve_on_insert column info flag, allowing to retrieve any
419 column value instead of just autoinc primary keys
f7f53a89 420 - Bring back strict ordering of selectors in complex search chains
421 (an ill-fated attempt was made in 0.08127 to order intelligently)
fcb7fcbb 422 - All limit dialects (except for the older Top and FetchFirst) are
423 now using bind parameters for the limits/offsets, making DBI's
424 prepare_cached useful across paged resutsets
86a51471 425 - Support for savepoints for SQLite
726c8f65 426 - Support for MS Access databases via DBD::ODBC and DBD::ADO (only
427 Win32 support currently tested)
f7e5fd18 428 - Support for the Firebird RDBMS over the new DBD::Firebird driver
56dca25f 429 - IC::DateTime support for MSSQL over DBD::ADO
ab17c175 430 - Both the ::ODBC and ::ADO dispatchers now warn if a rdbms-specific
431 driver is not found for this connection before falling back to
432 plain ::Storage::DBI
402ac1c9 433 - ::Storage::DBI::sth was mistakenly marked/documented as public,
434 privatize and warn on deprecated use
0e773352 435 - Massive overhaul of bind values/attributes handling - slightly
436 changes the output of as_query (should not cause compat issues)
96eacdb7 437 - Support ancient DB2 versions (5.4 and older), with proper limit
438 dialect
a870aa85 439 - Support sub-second precision for TIMESTAMPs for Firebird over ODBC
00a28188 440 - Support BLOBs and CLOBs in WHERE clauses for Oracle, including LIKE
441 queries for CLOBs.
2b8cc2f2 442
f98120e4 443 * Fixes
87bf71d5 444 - Fix ::Storage::DBI::* MRO problems on 5.8.x perls
f98120e4 445 - Disable mysql_auto_reconnect for MySQL - depending on the ENV
446 it sometimes defaults to on and causes major borkage on older
447 DBD::mysql versions
55d02972 448 - Fix dropped bind values in select/group_by on Oracle (omission
449 from 0542ec57 and 4c2b30d6)
19c4cc62 450 - Fix remaining errors with Oracle and identifiers longer than the
451 Oracle-imposed maximum of 30 characters (RT#66390)
f116ff4e 452 - Fix older oracle-specific "WhereJoins" to work properly with
453 name quoting
66917da3 454 - Fix problems with M.A.D. under CGI::SpeedyCGI (RT#65131)
74719352 455 - Reenable paging of cached resultsets - breakage erroneously added
456 in 0.08127
e1a97e24 457 - Better error handling when prepare() fails silently
91d0c99f 458 - Fixes skipped lines when a comment is followed by a statement
459 when deploying a schema via sql file
1e0daa97 460 - Fix reverse_relationship_info on prototypical result sources
461 (sources not yet registered with a schema)
51c9ead2 462 - Warn and skip relationships missing from a partial schema during
463 dbic cascade_delete
db29433c 464 - Automatically require the requested cursor class before use
465 (RT#64795)
e02b39b4 466 - Work around a Firebird ODBC driver bug exposed by DBD::ODBC 1.29
c1e5a9ac 467 - Fix (to the extent allowed by the driver) transaction support in
468 DBD::Sybase compiled against FreeTDS
51c9ead2 469 - Fix exiting via next warnings in ResultSource::sequence()
61f031bf 470 - Fix stripping of table qualifiers in update/delete in arrayref
471 condition elements
2ea6032a 472 - Change SQLMaker carp-monkeypatch to be compatible with versions
473 of SQL::Abstract >= 1.73
1bffc6b8 474 - Fix using \[] literals in the from resultset attribute
f6faeab8 475 - Fix populate() with \[], arrays (datatype) and other exotic values
90d7422f 476 - Fix handling of rollbacks in nested transactions
69d3c270 477 - Fix complex limits (RNO/RowNum/FetchFirst/Top/GenSubq) with
478 sub-selects in the selectors list (correlated subqueries)
fd4b0742 479 - Fix inconsistency between $rs->next with and without HRI when all
480 the "root" columns are in fact injected from the right rs side
a4812caa 481 - Fix the join optimizer to correctly preserve the non-multi path to
482 a multi relationship ( x -> might_have y -> has_many z )
93508f48 483 - Fix object-derived custom-relationship resultsets to resultsources
484 with multilevel monikers (e.g. $schema->source('Foo::Bar') )
fed15b91 485 - Fix incorrect signature of the default sqlt_deploy_hook - it now
486 matches the documentation of passing in the result source object
5b4f3fd0 487 - Fix inadequate handling of internal storage methods within
488 ::Storage::Replicated (RT#66295)
f98120e4 489
87bf71d5 490 * Misc
70c28808 491 - Rewire all warnings to a new Carp-like implementation internal
492 to DBIx::Class, and remove the Carp::Clan dependency
87bf71d5 493 - Only load Class::C3 and friends if necessary ($] < 5.010)
3b80fa31 494 - Greatly reduced loading of non-essential modules to aid startup
495 time (mainly benefiting CGI users)
9c1700e3 496 - Make sure all namespaces are clean of rogue imports
997a3638 497 - Dropped DBI req 2 years back - everything works with 1.57, no
498 point requiring something newer
87bf71d5 499
86b9a583 5000.08190-TRIAL 2011-01-24 15:35 (UTC)
501
502 * New Features / Changes
503 - Support for completely arbitrary SQL::Abstract-based conditions
504 in all types of relationships
505
f4591846 5060.08127 2011-01-19 16:40 (UTC)
6c925c72 507 * New Features / Changes
628c2218 508 - Schema/resultsource instances are now crossreferenced via a new
509 system guaranteeing leak-free mutually assured destruction
6c925c72 510 - DBIx::Class now warns when the user erroneously supplies
511 AutoCommit => 0 to connect()
512 - A warning is also issued before forcing the RaiseError
513 setting of externally supplied DBI handles
65c1217d 514 - Switch to a warning when find() is invoked with both a 'key'
515 argument and a NULL-containing condition to satisfy the named
516 constraint. Previously (starting with 0.08124) an exception was
f107730c 517 thrown
518 - Switch to a warning when a commit is attempted with an out-of-sync
519 transaction_depth (someone issued a begin externally to DBIC).
520 Previously (starting with 0.08124) an exception was thrown
50261284 521
0542ec57 522 * Fixes
384b8bce 523 - A number of improvements/diagnostics of multiple active resultset
524 handling on MSSQL over DBD::ODBC
eb37b376 525 - Revert default selection to being lazy again (eagerness introduced
dc81dba3 526 in 0.08125) - fixes DBIx::Class::Helper::ResultSet::RemoveColumns
527 - Fix losing order of columns provided in select/as (regression from
528 0.08125)
36fd7f07 529 - Unaliased "dark" selectors no longer throw off prefetch
0542ec57 530 - Fix proper composition of bind values across all possible
531 SQL areas ( group_by => \[ ... ] now works properly )
d6170b26 532 - Allow populate to skip empty has_many relationships which makes
533 it easier to pass HashRefInflator data directly to ->populate
4376a157 534 - Improve freeze/thaw semantics and error messages (RT#62546)
a9e8284f 535 - Fix inconsistency in Manual::Features (RT#64500)
4e0a89e4 536 - Fix incorrect SQL when using for => 'shared' with MySQL (RT#64590)
628c2218 537 - Throw comprehensible exception on erroneous $schema->source()
538 invocation
539 - Fix sloppy refactor of ResultSource::sequence back from 89170201
540 (RT#64839)
541 - Fix incorrect error detection during populate() on Oracle
542 - Better handling of result_source-less row objects by
543 auto-calling result_source_instance when necessary
544 - Fix reverse_relationship_info and sqlt deploy on partially
545 loaded schemas (relationships point to non-existent sources)
0542ec57 546
1239d14e 547 * Misc
548 - Fix test warning on win32 - at this point the test suite is
549 warning-free on all known OSes
4549ba49 550 - Require newest namespace::clean which in turn depends on new
551 installable Package::Stash
1239d14e 552
40b2218d 5530.08126 2010-12-28 18:10 (UTC)
b8d22f13 554 * Fixes
555 - Bump forgotten Class::Accessor::Grouped core dependency
556 - Promote forgotten Hash::Merge optdep to a hard requirement
cc1924ac 557 - Skip t/storage/error.t on smokers with leaking perls
02050e77 558 - Fix t/storage/txn.t deadlocks on slower machines
4557be61 559 - Do not run on smokers if a trial Package::Stash is found
b8d22f13 560
e139bd60 5610.08125 2010-12-27 04:30 (UTC)
6cad253b 562 * New Features / Changes
52416317 563 - New method ResultSource columns_info method, returning multiple
564 pairs of column name/info at once
0e7a447e 565 - $rs->search now throws when called in void context, as it makes
566 no sense (and is nearly always a sign of a bug/misdesign)
00336453 567 - Restore long-lost ability to supply unbalanced select/as pairs
568 e.g. +select => \'DISTINCT(foo, bar)', +as => ['foo', 'bar']
569 - +columns now behaves just like columns by not stripping a
570 fully-qualified 'as' spec (i.e. foo.bar results in $obj->foo->bar)
43da768f 571 - Deprecate legacy $rs->search( %condition ) syntax (warn once per
572 callsite)
6cad253b 573 - NULL is now supplied unquoted to all debug-objects, in order to
574 differentiate between a real NULL and the string 'NULL'
41519379 575 - New search() condition operator -value used to pass complex bind
576 values to DBI: search({ array_col => { -value => [1,2,3] }})
bf51641f 577 - Add full INSERT...RETURNING support for Oracle
b1d821de 578 - Deprecate use of -nest in search conditions (warn once per
579 callsite)
1b6fe47d 580 - Deprecate the completely useless DBIx::Class::Serialize::Storable
581 result component
6cad253b 582
64ae1667 583 * Fixes
584 - Fixed read-only attribute set attempt in ::Storage::Replicated
585 (RT#62642)
6f5f880d 586 - Fix incomplete logic while detecting correct Oracle sequence
587 on insert
a6646e1b 588 - Fix detection of Oracle sequences for tables without an explicitly
589 specified schema (RT#63493)
07cda1c5 590 - Major overhaul of Storage::Oracle to handle enabled quoting
37aafa2e 591 - Fixed incorrect composition of select/as/columns attributes during
592 chaining (RT#61235)
052b8ce2 593 - Proper serialization of resultsets with open cursors
a85b7ebe 594 - Refactor handling of RDBMS-side values during insert() - fix
595 regression of inserts into a Postgres / ::Replicated combination
cb566613 596 - Missing dependency check in t/60core.t (RT#62635)
49bceca3 597 - Fix regressions in IC::DT registration logic
4c2b30d6 598 - Fix regression in select-associated bind value handling (RT#61025)
887a0aef 599 - Simplify SQL generated by some LIMITed prefetching queries
14e26c5f 600 - Throw an exception when a required group_by on a complex prefetch
601 can not be auto-constructed, instead of continuing to eventually
602 produce invalid SQL
052b8ce2 603 - Fix infinite loops on old perls with a recent Try::Tiny
ec6415a9 604 - Improve "fork()" on Win32 by reimplementing a more robust DBIC
605 thread support (still problematic, pending a DBI fix)
20595c02 606 - Properly quote table name on INSERT with no values
8e9b9ce5 607 - Work around possible Storage destruction warnings
e493ecb2 608 - Fix count of grouped resultsets using HAVING with aliases
35f5c265 609 - Setting belongs_to columns/relationships no longer leaves the
610 FK value and related object out of sync
d7632687 611 - Stop stripping newlines from SQL statements in the limit emulators
612 as it is possible that custom sql with comments was provided
f3386204 613 - Add forgotten attributes to Admin.pm
47a435d2 614 - Fix incorrect 'having' attribute documentation (RT#64129)
8592e2d1 615 - Improve fallback-to-master/return-to-slave reporting in
616 ::Replicated::Balancer
e69b5335 617 - Adjust txn_scope_guard code/tests to changes in $@ handling on
618 recent blead (RT#64251)
052b8ce2 619
620 * Misc
be68095d 621 - Add extra option groups to DBIC::Optional::Depencencies, to aid
622 users in requesting the prerequisites for a particular RDBMS
26148d36 623 - Switch all serialization to use Storable::nfreeze for portable
624 architecture independent ice
2f5a6e87 625 - Fix the bogus META.yml dependency injection issue for good
c6fa3170 626 - Refactor DBIx::Class::Storage::Statistics::debugfh() to be lazy
64ae1667 627
ca734bc9 6280.08124 2010-10-28 14:23 (UTC)
eec182b6 629 * New Features / Changes
e6600283 630 - Add new -ident "function" indicating rhs is a column name
631 { col => { -ident => 'othercol' } } vs { col => \'othercol' }
97c96475 632 - Extend 'proxy' relationship attribute
d9672fb9 633 - Use DBIx::Class::Storage::Debug::PrettyPrint when the
634 environment variable DBIC_TRACE_PROFILE is set, see
635 DBIx::Class::Storage for more information
d9da98ab 636 - Implemented add_unique_constraints() which delegates to
637 add_unique_constraint() as appropriate
638 - add_unique_constraint() now poparly throws if called with
639 multiple constraint definitions
640 - No longer depend on SQL::Abstract::Limit - DBIC has been doing
641 most of the heavy lifting for a while anyway
eec182b6 642 - FilterColumn now passes data through when transformations
643 are not specified rather than throwing an exception.
d9672fb9 644 - Optimized RowNum based Oracle limit-dialect (RT#61277)
65245220 645 - Requesting a pager on a resultset with cached entries now
646 throws an exception, instead of returning a 1-page object
647 since the amount of rows is always equal to the "pagesize"
648 - $rs->pager now uses a lazy count to determine the amount of
649 total entries only when really needed, instead of doing it
650 at instantiation time
9ba33dac 651 - New documentation map organized by features
652 (DBIx::Class::Manual::Features)
b7743dab 653 - find( { ... }, { key => $constraint } ) now throws an exception
654 when the supplied data does not fully specify $constraint
49ca473e 655 - find( col1 => $val1, col2 => $val2, ... ) is no longer supported
656 (it has been in deprecated state for more than 4 years)
f5ef5fa1 657 - Make sure exception_action does not allow exception-hiding
658 due to badly-written handlers (the mechanism was never meant
659 to be able to suppress exceptions)
d9da98ab 660
f8583f8f 661 * Fixes
574d9b69 662 - Fix memory leak during populate() on 5.8.x perls
1f870d5a 663 - Temporarily fixed 5.13.x failures (RT#58225)
664 (perl-core fix still pending)
a8c2c746 665 - Fix result_soutrce_instance leaks on compose_namespace
f5ef5fa1 666 - Fix $_ volatility on load_namespaces (a class changing $_
667 at compile time no longer causes a massive fail)
b7743dab 668 - Fix find() without a key attr. choosing constraints even if
669 some of the supplied values are NULL (RT#59219)
f8583f8f 670 - Fixed rels ending with me breaking subqueried limit realiasing
59ac6523 671 - Fixed $rs->update/delete on resutsets constrained by an
672 -or condition
53c29913 673 - Remove rogue GROUP BY on non-multiplying prefetch-induced
674 subqueries
0a3441ee 675 - Fix incorrect order_by handling with prefetch on
676 $ordered_rs->search_related ('has_many_rel') resultsets
72044892 677 - Oracle sequence detection now *really* works across schemas
678 (fixed some ommissions from 0.08123)
f54428ab 679 - dbicadmin now uses a /usr/bin/env shebang to work better with
680 perlbrew and other local perl builds
6c3e6bf6 681 - bulk-inserts via $dbh->bind_array (void $rs->populate) now
682 display properly in DBIC_TRACE
7f505c17 683 - Incomplete exception thrown on relationship auto-fk-inference
684 failures
d955e938 685 - Fixed distinct with order_by to not double-specify the same
686 column in the GROUP BY clause
7653fdac 687 - Properly support column names with symbols (e.g. single quote)
688 via custom accessors
c271eec3 689 - Fixed ::Schema::Versioned to work properly with quoting on
690 (RT#59619)
9f72d93a 691 - Fixed t/54taint fails under local-lib
e5372da4 692 - Fixed SELECT ... FOR UPDATE with LIMIT regression (RT#58554)
b818efd7 693 - Fixed CDBICompat to preserve order of column-group additions,
694 so that test relying on the order of %{} will no longer fail
4cb6dfa2 695 - Fixed mysterious ::Storage::DBI goto-shim failures on older
696 perl versions
c6d30d5e 697 - Non-blessed reference exceptions are now correctly preserved
698 when thrown from udner DBIC (e.g. from txn_do)
a458e9e3 699 - No longer disconnecting database handles supplied to connect
700 via a coderef
ab35aeab 701 - Fixed t/inflate/datetime_pg.t failures due to a low dependency
702 on DateTime::Format::Pg (RT#61503)
d52d4d6e 703 - Fix dirtyness detection on source-less objects
f3e9f010 704 - Fix incorrect limit_dialect assignment on Replicated pool members
d2fcb9b3 705 - Fix invalid sql on relationship attr order_by with prefetch
ab4f4e4c 706 - Fix primary key sequence detection for Oracle
707 (first trigger instead of trigger for column)
ca734bc9 708 - Add various missing things to Optional::Dependencies
709 - Skip a test that breaks due to serious bugs in current DBD::SQLite
710 - Fix tests related to leaks and leaky perls (5.13.5, 5.13.6)
f8583f8f 711
347275d1 712 * Misc
0007aedf 713 - Entire test suite now passes under DBIC_TRACE=1
6c3e6bf6 714 - Makefile.PL no longer imports GetOptions() to interoperate
715 better with Catalyst installers
47a4aa51 716 - Bumped minimum Module::Install for developers
b9df8e39 717 - Bumped DBD::SQLite dependency and removed some TODO markers
d9da98ab 718 from tests (RT#59565)
d096e13f 719 - Do not execute t/zzzzzzz_sqlite_deadlock.t for regular module
720 installs - test is prone to spontaneous blow up
68de9438 721 - DT-related tests now require a DateTime >= 0.55 (RT#60324)
ccebe1f1 722 - Makefile.PL now provides a pre-parsed DBIC version to the
723 Opt::Dep pod generator
a8c2c746 724 - t/52leaks.t now performs very aggressive leak detection in
725 author/smoker mode
347275d1 726
9aa2ba09 7270.08123 2010-06-12 14:46 (UTC)
449c7034 728 * Fixes
729 - Make sure Oracle identifier shortener applies to auto-generated
f1577a8d 730 column names, so we stay within the 30-char limit (RT#58271)
df6e3f5c 731 - Oracle sequence detection now works across schemas
9aa2ba09 732 - Fix a Storage/$dbh leak introduced by the migration to
ddfd085d 733 Try::Tiny (this is *not* a Try::Tiny bug)
9f775126 734 - Fix corner case of count with group-by over a 1:1 join column
735 where the selector ends up with column name clashes
aa9bcbfb 736 - POD fixes (RT#58247)
ddfd085d 737
a258bfc7 738 * Misc
739 - Test suite default on-disk database now checks for Win32
740 fail-conditions even when running on other OSes
449c7034 741
9aa2ba09 7420.08122 2010-06-03 17:41 (UTC)
a31e24c0 743 * New Features
744 - Add DBIx::Class::FilterColumn for non-ref filtering
aa0163d4 745 - ::Storage::DBI now correctly preserves a parent $dbh from
860e7b5a 746 terminating children, even during interpreter-global
aa0163d4 747 out-of-order destruction
6ada2587 748 - dbicadmin supports an -I option with the same semantics as
749 perl itself
fb95dc4d 750 - InflateColumn::DateTime support for MSSQL via DBD::Sybase
a07bb26c 751 - Millisecond precision support for MSSQL datetimes for
fb95dc4d 752 InflateColumn::DateTime
49afd714 753 - Oracle-specific hierarchical query syntax support:
868a7b26 754 CONNECT BY (NOCYCLE) / START WITH / ORDER SIBLINGS BY
a07bb26c 755 - Support connecting using $ENV{DBI_DSN} and $ENV{DBI_DRIVER}
453781a1 756 - current_source_alias method on ResultSet objects to
757 determine the alias to use in programatically assembled
758 search()es (originally added in 0.08100 but unmentioned)
860e7b5a 759 - Rewrite/unification of all subselecting limit emulations
760 (RNO, Top, RowNum) to be much more robust wrt complex joined
761 resultsets
762 - MSSQL limits now don't require nearly as many applications of
763 the unsafe_subselect_ok attribute, due to optimized queries
75f025cf 764 - Support for Generic Subquery limit "emulation" - awfully slow
765 and inefficient but works on almost any db, and is preferred
5106b8a9 766 to software limit emulation
767 - Sybase ASE driver now uses SET ROWCOUNT where possible, and
768 Generic Subquery otherwise for limit support instead of always
769 using software limit emulation
076be7c4 770 - create_ddl_dir (and derivatives) now attempt to create the given
771 $ddl_dir if it does not already exist
96736321 772 - deployment_statements now automatically supplies the current RDBMS
773 version to SQLT producer_args for MySQL, Pg, SQLite and Oracle
a31e24c0 774
775 * Fixes
fef47a8e 776 - Fix nasty potentially data-eating bug when deleting/updating
777 a limited resultset
a31e24c0 778 - Fix find() to use result_class set on object
779 - Fix result_class setter behaviour to not mistakenly stuff attrs.
780 - Don't try and ensure_class_loaded an object. This doesn't work.
781 - Fix as_subselect_rs to not inject resultset class-wide where
782 conditions outside of the resulting subquery
acc01554 783 - Fix count() failing with {for} resultset attribute (RT#56257)
784 - Fixed incorrect detection of Limit dialect on unconnected $schema
fef47a8e 785 - update() on row not in_storage no longer throws an exception
786 if there are no dirty columns to update (fixes cascaded update
787 annoyances)
887d8da0 788 - update()/delete() on prefetching resultsets no longer results
789 in malformed SQL (some $rs attributes were erroneously left in)
6ada2587 790 - Fix dbicadmin to allow deploy() on non-versioned schema
791 - Fix dbicadmin to respect sql_dir on upgrade() (RT#57732)
65ee2b31 792 - Update Schema::Versioned to respect hashref style of
793 connection_info
794 - Do not recreate the same related object twice during MultiCreate
795 (solves the problem of orphaned IC::FS files)
4282b6f8 796 - Fully qualify xp_msver selector when using DBD::Sybase with
797 MSSQL (RT#57467)
f76f761c 798 - Fix ::DBI::Storage to always be able to present a full set of
799 connect() attributes to e.g. Schema::Versioned
acc01554 800 - Fix Oracle auto-inc trigger detection of "INSERT OR UPDATE"-type
801 triggers
453781a1 802
a31e24c0 803 * Misc
0424d17a 804 - Reformatted Changelog \o/
e21297d3 805 - DBIC goes git://git.shadowcat.co.uk/dbsrgits/DBIx-Class.git
0424d17a 806 - Allow developers to skip optional dependency forcing when working
807 from a checkout
808 - Add a warning to load_namespaces if a class in ResultSet/ is not
809 a subclass of DBIx::Class::ResultSet
a31e24c0 810 - All DBIC exception-handling switched to Try::Tiny
acc01554 811 - All DBIC modules are now free of imports via namespace::clean
a31e24c0 812 - Depend on optimized SQL::Abstract (faster SQL generation)
acc01554 813 - Depend on new Class::Accessor::Grouped reintroducing optional use
814 of Class::XSAccessor (just install C::XSA and get lightning fast
815 column accessors)
a31e24c0 816
c77ab576 8170.08121 2010-04-11 18:43:00 (UTC)
28d28903 818 - Support for Firebird RDBMS with DBD::InterBase and ODBC
734868da 819 - Add core support for INSERT RETURNING (for storages that
820 supports this syntax, currently PostgreSQL and Firebird)
3c2a505c 821 - Fix spurious warnings on multiple UTF8Columns component loads
822 - DBIx::Class::UTF8Columns entered deprecated state
c2ecf953 823 - DBIx::Class::InflateColumn::File entered deprecated state
e3fc11e1 824 - DBIx::Class::Optional::Dependencies left experimental state
825 - Add req_group_list to Opt::Deps (RT#55211)
b8391c87 826 - Add support for mysql-specific STRAIGHT_JOIN (RT#55579)
fb61e30c 827 - Cascading delete/update are now wrapped in a transaction
828 for atomicity
c4e5e95d 829 - Fix accidental autovivification of ENV vars
830 - Fix update_all and delete_all to be wrapped in a transaction
68888c09 831 - Fix multiple deficiencies when using MultiCreate with
832 data-encoder components (e.g. ::EncodedColumn)
b703fec7 833 - Fix regression where SQL files with comments were not
834 handled properly by ::Schema::Versioned.
263d5dcc 835 - Fix regression on not properly throwing when $obj->relationship
836 is unresolvable
1a736efb 837 - Fix the join-optimiser to consider unqualified column names
838 whenever possible
faeb2407 839 - Fix an issue with multiple same-table joins confusing the join
840 optimizier
0818c9a7 841 - Add has_relationship method to row objects
cf856357 842 - Fix regression in set_column on PK-less objects
455a33cb 843 - Better error text on malformed/missing relationships
c2ecf953 844 - Add POD about the significance of PK columns
845 - Fix for SQLite to ignore the (unsupported) { for => ... }
846 attribute
847 - Fix ambiguity in default directory handling of create_ddl_dir
848 (RT#54063)
157ce0cf 849 - Support add_columns('+colname' => { ... }) to augment column
850 definitions.
263d5dcc 851
033955f9 8520.08120 2010-02-24 08:58:00 (UTC)
2b3c0853 853 - Make sure possibly overwritten deployment_statements methods in
4fff7913 854 schemas get called on $schema->deploy
855 - Fix count() with group_by aliased-function resultsets
dea1b49e 856 - with_deferred_fk_checks() Oracle support
7ccf4805 857 - Massive refactor and cleanup of primary key handling
efc8ae6e 858 - Fixed regression losing custom result_class (really this time)
02730621 859 (RT#54697)
860 - Fixed regression in DBIC SQLT::Parser failing with a classname
861 (as opposed to a schema object)
270edb2b 862 - Changes to Storage::DBI::Oracle to accomodate changes in latest
863 SQL::Translator (quote handling)
dea1b49e 864 - Make sure deployment_statements is per-storage overridable
033955f9 865 - Fix dbicadmin's (lack of) POD
2b3c0853 866
f181e8fe 8670.08119 2010-02-15 09:36:00 (UTC)
d1f542db 868 - Add $rs->is_ordered to test for existing order_by on a resultset
af7fbf9f 869 - Add as_subselect_rs to DBIC::ResultSet from
870 DBIC::Helper::ResultSet::VirtualView::as_virtual_view
4752726d 871 - Refactor dbicadmin adding DDL manipulation capabilities
aa8b2277 872 - New optional dependency manager to aid extension writers
84d9d68d 873 - Depend on newest bugfixed Moose
642299a7 874 - Make resultset chaining consistent wrt selection specification
84d9d68d 875 - Storage::DBI::Replicated cleanup
876 - Fix autoinc PKs without an autoinc flag on Sybase ASA
af7fbf9f 877
a12793fd 8780.08118 2010-02-08 11:53:00 (UTC)
13d06949 879 - Fix a bug causing UTF8 columns not to be decoded (RT#54395)
880 - Fix bug in One->Many->One prefetch-collapse handling (RT#54039)
b82c8a28 881 - Cleanup handling of relationship accessor types
9738897e 882
6d5dca4e 8830.08117 2010-02-05 17:10:00 (UTC)
55087b99 884 - Perl 5.8.1 is now the minimum supported version
d64a2734 885 - Massive optimization of the join resolution code - now joins
886 will be removed from the resulting SQL if DBIC can prove they
887 are not referenced by anything
6dfbe2f8 888 - Subqueries no longer marked experimental
3197bdf8 889 - Support for Informix RDBMS (limit/offset and auto-inc columns)
60511375 890 - Support for Sybase SQLAnywhere, both native and via ODBC
dc571b76 891 - might_have/has_one now warn if applied calling class's column
892 has is_nullable set to true.
a7f4b74c 893 - Fixed regression in deploy() with a {sources} table limit applied
894 (RT#52812)
3ad8d9f1 895 - Views without a view_definition will throw an exception when
896 parsed by SQL::Translator::Parser::DBIx::Class
7ac1f782 897 - Stop the SQLT parser from auto-adding indexes identical to the
898 Primary Key
60511375 899 - InflateColumn::DateTime refactoring to allow fine grained method
900 overloads
66e33361 901 - Fix ResultSetColumn improperly selecting more than the requested
902 column when +columns/+select is present
037e8dca 903 - Fix failure when update/delete of resultsets with complex WHERE
904 SQLA structures
30ae562b 905 - Fix regression in context sensitiveness of deployment_statements
400c6f34 906 - Fix regression resulting in overcomplicated query on
907 search_related from prefetching resultsets
8baabfd8 908 - Fix regression on all-null returning searches (properly switch
909 LEFT JOIN to JOIN in order to distinguish between both cases)
0ce4ab92 910 - Fix regression in groupedresultset count() used on strict-mode
911 MySQL connections
010f82a0 912 - Better isolation of RNO-limited queries from the rest of a
913 prefetching resultset
914 - New MSSQL specific resultset attribute to allow hacky ordered
416e0bc0 915 subquery support
2ad89bf5 916 - Fix nasty schema/dbhandle leak due to SQL::Translator
78aef8c4 917 - Initial implementation of a mechanism for Schema::Version to
918 apply multiple step upgrades
3eee36aa 919 - Fix regression on externally supplied $dbh with AutoCommit=0
920 - FAQ "Custom methods in Result classes"
921 - Cookbook POD fix for add_drop_table instead of add_drop_tables
922 - Schema POD improvement for dclone
400c6f34 923
3b5769af 9240.08115 2009-12-10 09:02:00 (CST)
9010bab8 925 - Real limit/offset support for MSSQL server (via Row_Number)
886d0b49 926 - Fix distinct => 1 with non-selecting order_by (the columns
927 in order_by also need to be aded to the resulting group_by)
e3d5a547 928 - Do not attempt to deploy FK constraints pointing to a View
285dd1d6 929 - Fix count/objects from search_related on limited resultset
d992eae8 930 - Stop propagating distinct => 1 over search_related chains
36b59369 931 - Make sure populate() inherits the resultset conditions just
932 like create() does
547b4396 933 - Make get_inflated_columns behave identically to get_columns
934 wrt +select/+as (RT#46953)
4d46dbcf 935 - Fix problems with scalarrefs under InflateColumn (RT#51559)
285dd1d6 936 - Throw exception on delete/update of PK-less resultsets
937 - Refactored Sybase storage driver into a central ::DBI::Sybase
938 dispatcher, and a sybase-specific ::DBI::Sybase::ASE
939 - Fixed an atrocious DBD::ADO bind-value bug
940 - Cookbook/Intro POD improvements
e3d5a547 941
57cf1a59 9420.08114 2009-11-14 17:45:00 (UTC)
a1e695ad 943 - Preliminary support for MSSQL via DBD::ADO
57cf1a59 944 - Fix botched 0.08113 release (invalid tarball)
a1e695ad 945
4e8ffded 9460.08113 2009-11-13 23:13:00 (UTC)
18d80024 947 - Fix populate with has_many bug
948 (RT #50828)
e6dd7b42 949 - Fix Oracle autoincrement broken for Resultsets with scalar refs
950 (RT #50874)
d867eeda 951 - Complete Sybase RDBMS support including:
952 - Support for TEXT/IMAGE columns
953 - Support for the 'money' datatype
6a9765c1 954 - Transaction savepoints support
955 - DateTime inflation support
956 - Support for bind variables when connecting to a newer Sybase with
957 OpenClient libraries
958 - Support for connections via FreeTDS with CASTs for bind variables
959 when needed
960 - Support for interpolated variables with proper quoting when
961 connecting to an older Sybase and/or via FreeTDS
962 - bulk API support for populate()
3ed85561 963 - Transaction support for MSSQL via DBD::Sybase
7ae6270b 964 - Add is_paged method to DBIx::Class::ResultSet so that we can
dbf5b601 965 check that if we want a pager
966 - Skip versioning test on really old perls lacking Time::HiRes
967 (RT #50209)
968 - Fixed on_connect_do/call regression when used with a coderef
969 connector (RT #50003)
69cd8a7f 970 - A couple of fixes to Ordered to remedy subclassing issues
57eb47b0 971 - Fixed another lingering problem with PostgreSQL
972 auto-increment support and its interaction with multiple
973 schemas
3ed85561 974 - Remove some IN workarounds, and require a recent version of
975 SQLA instead
976 - Improvements to populate's handling of mixed scalarref values
0fcfe456 977 - Fixed regression losing result_class after $rs->find (introduced
978 in 0.08108)
63bb9738 979 - Fix in_storage() to return 1|0 as per existing documentation
c9c9297b 980 - Centralize handling of _determine_driver calls prior to certain
981 ::Storage::DBI methods
af668ad6 982 - Fix update/delete arbitrary condition handling (RT#51409)
3ed85561 983 - POD improvements
763026c1 984
51845f96 9850.08112 2009-09-21 10:57:00 (UTC)
be97d16b 986 - Remove the recommends from Makefile.PL, DBIx::Class is not
93c50889 987 supposed to have optional dependencies. ever.
be97d16b 988 - Mangle the DBIx/Class.pm POD to be more clear about
93c50889 989 copyright and license
be97d16b 990 - Put back PG's multiple autoinc per table support, accidentally
51845f96 991 dropped during the serial-autodetection rewrite
be97d16b 992 - Make sure ResultSetColumn does not depend on the (undefined)
993 return value of ->cursor->reset()
4e55c3ae 994 - Add single() to ResultSetColumn (same semantics as ResultSet)
be97d16b 995 - Make sure to turn off IDENTITY_INSERT after insert() on MSSQL
996 tables that needed it
997 - More informative exception on failing _resolve_relationship
8c60e1a7 998 - Allow undef/NULL as the sole grouping value in Ordered
4e55c3ae 999 - Fix unreported rollback exceptions in TxnScopeGuard
8a3fa4ae 1000 - Fix overly-eager left-join chain enforcing code
3c44586e 1001 - Warn about using distinct with an existing group_by
1002 - Warn about attempting to $rs->get_column a non-unique column
1003 when has_many joins are added to resultset
51845f96 1004 - Refactor of the exception handling system (now everything is a
1bedffac 1005 DBIx::Class::Exception object)
01dc6781 1006
59f27fc3 10070.08111 2009-09-06 21:58:00 (UTC)
7755a91d 1008 - The hashref to connection_info now accepts a 'dbh_maker'
1009 coderef, allowing better intergration with Catalyst
d8ce00f5 1010 - Fixed a complex prefetch + regular join regression introduced
1011 in 0.08108
48617009 1012 - Fixed insert_bulk rebless handling
7cfda9a6 1013 - Fixed Storable roundtrip regression, and general serialization
1014 cleanup
ce35224f 1015 - SQLT related fixes:
1016 - sqlt_type is now called on the correct storage object
006fb68c 1017 - hooks can now see the correct producer_type (RT#47891)
7cfda9a6 1018 - optional SQLT requirements for e.g. deploy() bumped to 0.11002
decb86c0 1019 - Really fixed (and greatly cleaned up) postgresql autoinc sequence
1020 autodetection
7cfda9a6 1021 - Automatically detect MySQL v3 and use INNER JOIN instead of JOIN
006fb68c 1022 - POD improvements (including RT#48769)
1023 - Test suite tweaks (including fixes for recent CPANTS fails)
59f27fc3 1024 - Better support for MSSQL IDENTITY_INSERT ON
d8ce00f5 1025
dc5460a7 10260.08109 2009-08-18 08:35:00 (UTC)
294a5282 1027 - Replication updates:
1028 - Improved the replication tests so that they are more reliable
1029 and accurate, and hopefully solve some cross platform issues.
1030 - Bugfixes related to naming particular replicants in a
1031 'force_pool' attribute.
1032 - Lots of documentation updates, including a new Introduction.pod
1033 file.
1034 - Fixed the way we detect transaction to make this more reliable
1035 and forward looking.
1036 - Fixed some trouble with the way Moose Types are used.
1910c7af 1037 - Made discard_chages/get_from_storage replication aware (they
1038 now read from the master storage by default)
294a5282 1039 - Refactor of MSSQL storage drivers, with some new features:
1040 - Support for placeholders for MSSQL via DBD::Sybase with proper
1041 autodetection
1042 - 'uniqueidentifier' support with auto newid()
1043 - Dynamic cursor support and other MARS options for ODBC
2b0abe0e 1044 - savepoints with auto_savepoint => 1
294a5282 1045 - Support for MSSQL 'money' type
1046 - Support for 'smalldatetime' type used in MSSQL and Sybase for
4c46fa18 1047 InflateColumn::DateTime
1f4263eb 1048 - Support for Postgres 'timestamp without timezone' type in
294a5282 1049 InflateColumn::DateTime (RT#48389)
97a0a148 1050 - Added new MySQL specific on_connect_call macro 'set_strict_mode'
1051 (also known as make_mysql_not_suck_as_much)
294a5282 1052 - Multiple prefetch-related fixes:
1053 - Adjust overly agressive subquery join-chain pruning
1054 - Always preserve the outer join-chain - fixes numerous
1055 problems with search_related chaining
1056 - Deal with the distinct => 1 attribute properly when using
1057 prefetch
f077b8f5 1058 - An extension of the select-hashref syntax, allowing labeling
1059 SQL-side aliasing: select => [ { max => 'foo', -as => 'bar' } ]
13a3e374 1060 - Massive optimization of the DBI storage layer - reduce the
f077b8f5 1061 amount of connected() ping-calls
58e39c86 1062 - Some fixes of multi-create corner cases
294a5282 1063 - Multiple POD improvements
73d47f9f 1064 - Added exception when resultset is called without an argument
c0f4f8bb 1065 - Improved support for non-schema-qualified tables under
67e894d2 1066 Postgres (fixed last_insert_id sequence name auto-detection)
97a0a148 1067
2ec1a5c1 10680.08108 2009-07-05 23:15:00 (UTC)
04492bc7 1069 - Fixed the has_many prefetch with limit/group deficiency -
1070 it is now possible to select "top 5 commenters" while
1071 prefetching all their comments
1072 - New resultsed method count_rs, returns a ::ResultSetColumn
1073 which in turn returns a single count value
1074 - Even better support of count with limit
6a999241 1075 - New on_connect_call/on_disconnect_call functionality (check
1076 POD of Storage::DBI)
1077 - Automatic datetime handling environment/session setup for
1078 Oracle via connect_call_datetime_setup()
f685632d 1079 - count/all on related left-joined empty resultsets now correctly
1080 returns 0/()
e8b32a6d 1081 - Fixed regression when both page and offset are specified on
1082 a resultset
1083 - Fixed HRI returning too many empty results on multilevel
1084 nonexisting prefetch
497d874a 1085 - make_column_dirty() now overwrites the deflated value with an
1086 inflated one if such exists
7ae6270b 1087 - Fixed set_$rel with where restriction deleting rows outside
d2d82857 1088 the restriction
04492bc7 1089 - populate() returns the created objects or an arrayref of the
115a7c3b 1090 created objects depending on scalar vs. list context
04492bc7 1091 - Fixed find_related on 'single' relationships - the former
1092 implementation would overspecify the WHERE condition, reporting
1093 no related objects when there in fact is one
1094 - SQL::Translator::Parser::DBIx::Class now attaches tables to the
1095 central schema object in relationship dependency order
1096 - Fixed regression in set_column() preventing sourceless object
1097 manipulations
1098 - Fixed a bug in search_related doubling a join if the original
1099 $rs already joins/prefetches the same relation
1100 - Storage::DBI::connected() improvements for Oracle and Sybase
b4fd6882 1101 - Fixed prefetch+incomplete select regression introduced in
1102 0.08100
9ab7fe6a 1103 - MSSQL limit (TOP emulation) fixes and improvements
51a296b4 1104
6d82e103 11050.08107 2009-06-14 08:21:00 (UTC)
1106 - Fix serialization regression introduced in 0.08103 (affects
1107 Cursor::Cached)
1108 - POD fixes
1109 - Fixed incomplete ::Replicated debug output
1110
ea60f9a9 11110.08106 2009-06-11 21:42:00 (UTC)
1112 - Switched SQLite storage driver to DateTime::Format::SQLite
1113 (proper timezone handling)
1114 - Fix more test problems
1115
fb022fcf 11160.08105 2009-06-11 19:04:00 (UTC)
90499ee4 1117 - Update of numeric columns now properly uses != to determine
1118 dirtyness instead of the usual eq
1119 - Fixes to IC::DT tests
04492bc7 1120 - Fixed exception when undef_if_invalid and timezone are both set
1121 on an invalid datetime column
90499ee4 1122
536bf52b 11230.08104 2009-06-10 13:38:00 (UTC)
1ca68535 1124 - order_by now can take \[$sql, @bind] as in
1125 order_by => { -desc => \['colA LIKE ?', 'somestring'] }
1126 - SQL::Abstract errors are now properly croak()ed with the
1127 correct trace
4242d79d 1128 - populate() now properly reports the dataset slice in case of
1129 an exception
9c094643 1130 - Fixed corner case when populate() erroneously falls back to
4242d79d 1131 create()
9c094643 1132 - Work around braindead mysql when doing subquery counts on
b5963465 1133 resultsets containing identically named columns from several
1134 tables
536bf52b 1135 - Fixed m2m add_to_$rel to invoke find_or_create on the far
9c094643 1136 side of the relation, to avoid duplicates
1137 - DBIC now properly handles empty inserts (invoking all default
1138 values from the DB, normally via INSERT INTO tbl DEFAULT VALUES
7ae6270b 1139 - Fix find_or_new/create to stop returning random rows when
9c094643 1140 default value insert is requested (RT#28875)
1141 - Make IC::DT extra warning state the column name too
1142 - It is now possible to transparrently search() on columns
536bf52b 1143 requiring DBI bind (i.e. PostgreSQL BLOB)
9c094643 1144 - as_query is now a Storage::DBI method, so custom cursors can
1145 be seamlessly used
1146 - Fix search_related regression introduced in 0.08103
4242d79d 1147
e911e7ff 11480.08103 2009-05-26 19:50:00 (UTC)
1ace31c2 1149 - Multiple $resultset -> count/update/delete fixes. Now any
1150 of these operations will succeed, regardless of the complexity
1151 of $resultset. distinct, group_by, join, prefetch are all
1152 supported with expected results
19431116 1153 - Return value of $rs->delete is now the storage return value
1154 and not 1 as it used to be
a4d8bea5 1155 - don't pass SQL functions into GROUP BY
c8a8b777 1156 - Remove MultiDistinctEmulation.pm, effectively deprecating
1157 { select => { distinct => [ qw/col1 col2/ ] } }
1158 - Change ->count code to work correctly with DISTINCT (distinct => 1)
1159 via GROUP BY
1ace31c2 1160 - Removed interpolation of bind vars for as_query - placeholders
7ae6270b 1161 are preserved and nested query bind variables are properly
1ace31c2 1162 merged in the correct order
7ae6270b 1163 - Refactor DBIx::Class::Storage::DBI::Sybase to automatically
d4483998 1164 load a subclass, namely Microsoft_SQL_Server.pm
568bde84 1165 (similar to DBIx::Class::Storage::DBI::ODBC)
44a8dcf3 1166 - Refactor InflateColumn::DateTime to allow components to
1167 circumvent DateTime parsing
9073e906 1168 - Support inflation of timestamp datatype
1169 - Support BLOB and CLOB datatypes on Oracle
46ad3c86 1170 - Storage::DBI::Replicated::Balancer::Random:
1171 added master_read_weight
1172 - Storage::DBI::Replicated: storage opts from connect_info,
1173 connect_info merging to replicants, hashref connect_info support,
1174 improved trace output, other bug fixes/cleanups
1ace31c2 1175 - distinct => 1 with prefetch now groups by all columns
1176 - on_connect_do accepts a single string equivalent to a one
1177 element arrayref (RT#45159)
1178 - DB2 limit + offset now works correctly
1179 - Sybase now supports autoinc PKs (RT#40265)
1180 - Prefetch on joins over duplicate relations now works
1181 correctly (RT#28451)
6c99a3ee 1182 - "timestamp with time zone" columns (for Pg) now get inflated with a
1183 time zone information preserved
19431116 1184 - MSSQL Top limit-emulation improvements (GROUP BY and subquery support)
bed3a173 1185 - ResultSetColumn will not lose the joins infered from a parent
1186 resultset prefetch
d4483998 1187
90b41762 11880.08102 2009-04-30 08:29:00 (UTC)
9beb2b51 1189 - Fixed two subtle bugs when using columns or select/as
1190 paired with a join (limited prefetch)
1191 - Fixed breakage of cdbi tests (RT#45551)
1192 - Some POD improvements
1193
a0f289c8 11940.08101 2009-04-27 09:45:00 (UTC)
1195 - Fix +select, +as, +columns and include_columns being stripped
1196 by $rs->get_column
1197 - move load_optional_class from DBIx::Class::Componentised to
1198 Class::C3::Componentised, bump dependency
1199 - register_extra_source() now *really* fixed wrt subclassing
1200 - Added missing POD descriptions (RT#45195)
1201 - Fix insert() to not store_column() every present object column
1202 - Multiple Makefile.PL fixes
121068ec 1203
a0f289c8 12040.08100 2009-04-19 11:39:35 (UTC)
6882de2b 1205 - Todo out the register_extra_source test until after shipping
1206
6c0e3b46 12070.08099_08 2009-03-30 00:00:00 (UTC)
1208 - Fixed taint mode with load_namespaces
1209 - Putting IC::DateTime locale, timezone or floating_tz_ok attributes into
92ed0695 1210 extra => {} has been deprecated. The new way is to put these things
1211 directly into the columns definition
6c0e3b46 1212 - Switched MI code to MRO::Compat
1213 - Document db-side default_value caveats
cfcaa8ed 1214 - Search_like() now warns to indicate deprecation in 0.09.
6c0e3b46 1215 - TxnScopeGuard left experimental state
1216
12170.08099_07 2009-02-27 02:00:00 (UTC)
de404241 1218 - multi-create using find_or_create rather than _related for post-insert
1219 - fix get_inflated_columns to check has_column_loaded
6ffb5be5 1220 - Add DBIC_MULTICREATE_DEBUG env var (undocumented, quasi-internal)
1221 - Fix up multi-create to:
1222 - correctly propagate columns loaded during multi-insert of rels
1223 - not try and insert things tagged on via new_related unless required
8d689133 1224 - Possible to set locale in IC::DateTime extra => {} config
6ffb5be5 1225 - Calling the accessor of a belongs_to when the foreign_key
7ae6270b 1226 was NULL and the row was not stored would unexpectedly fail
6ffb5be5 1227 - Split sql statements for deploy only if SQLT::Producer returned a scalar
1228 containing all statements to be executed
1229 - Add as_query() for ResultSet and ResultSetColumn. This makes subqueries
6882de2b 1230 possible. See the Cookbook for details.
bd7ca9e8 1231 - Massive rewrite of Ordered to properly handle position constraints and
1232 to make it more matpath-friendly
0233fc64 1233 - deploy_statements called ddl_filename with the $version and $dir arguments
6c0e3b46 1234 in the wrong order.
00c937a2 1235 - columns/+columns attributes now support { as => select } hahsrefs
64ea0f49 1236 - support for views both in DBIC and via deploy() in SQLT
eaab653f 1237
12380.08099_06 2009-01-23 07:30:00 (UTC)
0eb27426 1239 - Allow a scalarref to be supplied to the 'from' resultset attribute
1240 - Classes submitted as result_class for a resultsource are now
1241 automatically loaded via ensure_loaded()
1242 - 'result_class' resultset attribute, identical to result_class()
0da3fea1 1243 - add 'undef_on_null_fk' option for relationship accessors of type 'single'.
cef1bdda 1244 This will prevent DBIC from querying the database if one or more of
0e40881e 1245 the key columns IS NULL
1246 - for 'belongs_to' rels, 'undef_on_null_fk' defaults to true.
1247 - fixed scope unaware last_insert_id fetching for MSSQL
1248 (http://msdn.microsoft.com/en-us/library/ms190315.aspx)
0da3fea1 1249 - an sqlt_deploy_hook can now be shared between result sources using
1250 a configurable callback trigger
20ea616f 1251 - new order_by => { -desc => 'colname' } syntax supported
1252 - PG array datatype supported
0e80c4ca 1253 - insert should use store_column, not set_column to avoid marking
7ae6270b 1254 clean just-stored values as dirty. New test for this
1255 - regression test for source_name
28e6c8b6 1256
12570.08099_05 2008-10-30 21:30:00 (UTC)
cfcaa8ed 1258 - Rewrite of Storage::DBI::connect_info(), extended with an
28e6c8b6 1259 additional argument format type
2177f7d2 1260 - InflateColumn::DateTime: add warning about floating timezone
1261 - InflateColumn::DateTime: possible to enforce/skip inflation
cfcaa8ed 1262 - delete throws exception if passed arguments to prevent drunken mishaps.
68f3b0dd 1263 - Fix storage to copy scalar conds before regexping to avoid
1264 trying to modify a constant in odd edge cases
1265 - Related resultsets on uninserted objects are now empty
370f2ba2 1266 - Fixed up related resultsets and multi-create
2eebd801 1267 - Fixed superfluous connection in ODBC::_rebless
1268 - Fixed undef PK for first insert in ODBC::Microsoft_SQL_Server
7ae6270b 1269 - Added virtual method to Versioned so a user can create upgrade
a354b842 1270 path across multiple versions (jgoulah)
d76e282a 1271 - Better (and marginally faster) implementation of the HashRefInflator
1272 hash construction algorithm
d76e282a 1273 - Allow explicit specification of ON DELETE/ON UPDATE constraints
1274 when using the SQLT parser
af8b962f 1275
8c764dc7 12760.08099_04 2008-07-24 01:00:00
e96a93df 1277 - Functionality to storage to enable a sub to be run without FK checks
7ae6270b 1278 - Fixed $schema->clone bug which caused clone and source to share
73529292 1279 internal hash refs
2a4d9487 1280 - Added register_extra_source methods for additional sources
33a126ef 1281 - Added datetime_undef_if_invalid for InflateColumn::DateTime to
1282 return undef on invalid date/time values
262da53c 1283 - Added search_related_rs method to ResultSet
6dbea98e 1284 - add a make_column_dirty method to Row to force updates
cb136e67 1285 - throw a clear exception when user tries multi-has_many prefetch
1286 - SQLT parser prefixes index names with ${table}_idx_ to avoid clashes
748ab0dc 1287 - mark ResultSetManager as deprecated and undocument it
debccec3 1288 - pod fix (RT #32988)
f947585b 1289 - add Test::Exception to test requirements (RT #34256)
fe650234 1290 - make ash's build_requires/META.yml fixes work better
13de943d 1291 - is_deferable support on relations used by the SQL::Translator
ad6c4e20 1292 parser
d63be6d0 1293 - Refactored DBIx::Class::Schema::Versioned
a63219bc 1294 - Syntax errors from resultset components are now reported correctly
45f1a484 1295 - sqltargs respected correctly in deploy et al.
5dee2dcf 1296 - Added support for savepoints, and using them automatically in
1297 nested transactions if auto_savepoint is set in connect_info.
0da8b7da 1298 - Changed naming scheme for constraints and keys in the sqlt parser;
1299 names should now be consistent and collision-free.
ad6c4e20 1300 - Improve handling of explicit key attr in ResultSet::find
1301 - Add warnings for non-unique ResultSet::find queries
e515254d 1302 - Changed Storage::DBI::Replication to Storage::DBI::Replicated and
1303 refactored support.
7ae6270b 1304 - By default now deploy/diff et al. will ignore constraint and index
d4d46d19 1305 names
e758ffe6 1306 - Add ResultSet::_is_deterministic_value, make new_result filter the
1307 values passed to new to drop values that would generate invalid SQL.
7ae6270b 1308 - Use Sub::Name to name closures before installing them. Fixes
ddc0a6c8 1309 incompatibility with Moose method modifiers on generated methods.
13de943d 1310
dd018f09 13110.08010 2008-03-01 10:30
1312 - Fix t/94versioning.t so it passes with latest SQL::Translator
1313
95e34604 13140.08009 2008-01-20 13:30
0ed8d3b6 1315 - Made search_rs smarter about when to preserve the cache to fix
1316 mm prefetch usage
7ae6270b 1317 - Added Storage::DBI subclass for MSSQL over ODBC.
4146e3da 1318 - Added freeze, thaw and dclone methods to Schema so that thawed
1319 objects will get re-attached to the schema.
8cfef6f5 1320 - Moved dbicadmin to JSON::Any wrapped JSON.pm for a sane API
67109394 1321 (also fixes RT #32393)
a0826322 1322 - introduced DBIx::Class::set_inflated_columns
1323 - DBIx::Class::Row::copy uses set_inflated_columns
4146e3da 1324
af8b962f 13250.08008 2007-11-16 14:30:00
7e9b2a24 1326 - Fixed join merging bug (test from Zby)
eba322a7 1327 - When adding relationships, it will throw an exception if you get the
1328 foreign and self parts the wrong way round in the condition
5d62876f 1329 - ResultSetColumn::func() now returns all results if called in list
1330 context; this makes things like func('DISTINCT') work as expected
7ae6270b 1331 - Many-to-many relationships now warn if the utility methods would
35210a5d 1332 clash
dda9af55 1333 - InflateColumn::DateTime now accepts an extra parameter of timezone
1334 to set timezone on the DT object (thanks Sergio Salvi)
7ae6270b 1335 - Added sqlt_deploy_hook to result classes so that indexes can be
aaf2403d 1336 added.
7ae6270b 1337 - Added startup checks to warn loudly if we appear to be running on
11736b4c 1338 RedHat systems from perl-5.8.8-10 and up that have the bless/overload
1339 patch applied (badly) which causes 2x -> 100x performance penalty.
1340 (Jon Schutz)
7ae6270b 1341 - ResultSource::reverse_relationship_info can distinguish between
86636368 1342 sources using the same table
1343 - Row::insert will now not fall over if passed duplicate related objects
7ae6270b 1344 - Row::copy will not fall over if you have two relationships to the
35688220 1345 same source with a unique constraint on it
eba322a7 1346
c94f64f9 13470.08007 2007-09-04 19:36:00
8f7e044c 1348 - patch for Oracle datetime inflation (abram@arin.net)
6f442eb7 1349 - added on_disconnect_do
1350 - on_connect_do and on_disconnect_do take coderefs and arrayrefs
1351
5c642b15 13520.08006 2007-08-12 15:12:00
1353 - Move to using Class::C3::Componentised
1354 - Remove warn statement from DBIx::Class::Row
1355
7ae6270b 13560.08005 2007-08-06
f011970e 1357 - add timestamp fix re rt.cpan 26978 - no test yet but change
1358 clearly should cause no regressions
01d59a6a 1359 - provide alias for related_resultset via local() so it's set
1360 correctly at resultset construction time (fixes RestrictWithObject)
e5d9ee92 1361 - fixes bind params in debug statements
1362 (original test from abraxxa)
649bfb8c 1363 - fixed storage->connected fork bug
1364 (test and fix from Radu Greab)
fe0e9f67 1365 - add 1; to AccessorGroup.pm for stuff that still uses it
70f39278 1366 - refactor Statistics to create debugging filehandle to fix bug with
1367 closed STDERR, update docs and modify Versioned to use Statistics
1368 (original fix from diz)
1369
e7827df0 13700.08004 2007-08-06 19:00:00
7ae6270b 1371 - fix storage connect code to not trigger bug via auto-viv
e7827df0 1372 (test from aherzog)
e4eb8ee1 1373 - fixup cursor_class to be an 'inherited' attr for per-package defaults
e6c747fd 1374 - add default_resultset_attributes entry to Schema
6296f45b 1375 - optimisation in DBI::Cursor to check software_limit before falling
1376 back to base Cursor->all
2bc3c81e 1377 - fix bug with create_multi not inserting non-storage objects
1378 (test and fix from davinchi)
73281318 1379 - DBIx::Class::AccessorGroup made empty subclass of
1380 Class::Accessor::Grouped
ec8c7e7f 1381 - fixed an ugly bug regarding $dbh->{AutoCommit} and transactions
73281318 1382 - ensure_class_loaded handles non-classnames better.
9a0891be 1383 - non-destructive hashref handling for connect_info options
2bd9c7c0 1384 - count no longer returns negative values after slice
1385 (report and test from JOHANL)
114780ee 1386 - rebless before building datetime_parser
1387 (patch from mattlaw / Matt Lawrence)
1388
ab2cf1fb 13890.08003 2007-07-14 18:01:00
1390 - improved populate bulk_insert mode
a8c98174 1391 - fixed up multi_create to be more intelligent about PK<->PK rels
6cc5b382 1392 - fix many-many rels to not use set_columns
dfccde48 1393 - Unmarked deploy as experimental since it isn't anymore
1394 - Removed Cwd dep since it's not required and causes problems
1395 with debian packaging
b4474f31 1396 - Patch to fix ? in data for NoBindVars (from Tom Hukins)
77d518d1 1397 - Restored mk_classaccessor method for compatibility
3f6cc7e4 1398 - Fixed group_by problem with oracle limit syntax
1399 - Fixed attr merging problem
1400 - Fixed $rs->get_column w/prefetch problem
77d518d1 1401
6fa7228e 14020.08002 2007-06-20 06:10:00
9c6d6d93 1403 - add scope guard to Row::insert to ensure rollback gets called
1404 - more heuristics in Row::insert to try and get insert order right
1405 - eliminate vestigial code in PK::Auto
2ab60eb9 1406 - more expressive DBI errors
1407 - soften errors during deploy
291bf95f 1408 - ensure_connected before txn_begin to catch stomping on transaction
1409 depth
b2f408f3 1410 - new method "rethrow" for our exception objects
1411
a2800991 14120.08001 2007-06-17 21:21:02
1413 - Cleaned up on_connect handling for versioned
1414 - removed DateTime use line from multi_create test
1415 - hid DBIx::ContextualFetch::st override in CDBICompat
1416
737416a4 14170.08000 2007-06-17 18:06:12
942cd0c1 1418 - Fixed DBIC_TRACE debug filehandles to set ->autoflush(1)
1419 - Fixed circular dbh<->storage in HandleError with weakref
1420
a0bd8a8c 14210.07999_06 2007-06-13 04:45:00
3fda409f 1422 - tweaked Row.pm to make last_insert_id take multiple column names
a0bd8a8c 1423 - Fixed DBIC::Storage::DBI::Cursor::DESTROY bug that was
1424 messing up exception handling
1425 - added exception objects to eliminate stacktrace/Carp::Clan
1426 output redundancy
1427 - setting $ENV{DBIC_TRACE} defaults stacktrace on.
4d4c7bbe 1428 - added stacktrace option to Schema, makes throw_exception
1429 use "confess"
1430 - make database handles use throw_exception by default
1431 - make database handles supplied by a coderef use our
1432 standard HandleError/RaiseError/PrintError
1433 - add "unsafe" connect_info option to suppress our setting
1434 of HandleError/RaiseError/PrintError
1435 - removed several redundant evals whose sole purpose was to
1436 provide extra debugging info
4d993a62 1437 - fixed page-within-page bug (reported by nilsonsfj)
4d4c7bbe 1438 - fixed rare bug when database is disconnected inbetween
1439 "$dbh->prepare_cached" and "$sth->execute"
4d993a62 1440
ff132c6f 14410.07999_05 2007-06-07 23:00:00
2c2a01a5 1442 - Made source_name rw in ResultSource
40dce2a5 1443 - Fixed up SQL::Translator test/runtime dependencies
e3d0ecce 1444 - Fixed t/60core.t in the absence of DateTime::Format::MySQL
8b621a87 1445 - Test cleanup and doc note (ribasushi)
e3d0ecce 1446
1c1896e8 14470.07999_04 2007-06-01 14:04:00
f5d3a5de 1448 - pulled in Replication storage from branch and marked EXPERIMENTAL
24010dd8 1449 - fixup to ensure join always LEFT after first LEFT join depthwise
f217eaab 1450 - converted the vendor tests to use schema objects intead of schema
1451 classes, made cleaned more reliable with END blocks
42416a0b 1452 - versioning support via DBIx::Class::Schema::Versioned
f217eaab 1453 - find/next now return undef rather than () on fail from Bernhard Graf
f80f8e2f 1454 - rewritten collapse_result to fix prefetch
1455 - moved populate to resultset
1456 - added support for creation of related rows via insert and populate
f217eaab 1457 - transaction support more robust now in the face of varying AutoCommit
1458 and manual txn_begin usage
1459 - unbreak back-compat for Row/ResultSet->new_result
03cc17a5 1460 - Added Oracle/WhereJoins.pm for Oracle >= 8 to support
1461 Oracle <= 9i, and provide Oracle with a better join method for
1462 later versions. (I use the term better loosely.)
3d618782 1463 - The SQL::T parser class now respects a relationship attribute of
03cc17a5 1464 is_foreign_key_constrain to allow explicit control over wether or
1465 not a foreign constraint is needed
fac560c2 1466 - resultset_class/result_class now (again) auto loads the specified
1d4e109a 1467 class; requires Class::Accessor::Grouped 0.05002+
ba4a6453 1468 - added get_inflated_columns to Row
43556c5d 1469 - %colinfo accessor and inflate_column now work together
42d96e77 1470 - More documentation updates
1471 - Error messages from ->deploy made more informative
1472 - connect_info will now always return the arguments it was
1473 originally given
1474 - A few small efficiency improvements for load_classes
1475 and compose_namespace
1476
13f897a0 14770.07006 2007-04-17 23:18:00
b740ac42 1478 - Lots of documentation updates
1479 - deploy now takes an optional 'source_names' parameter (dec)
1480 - Quoting for for columns_info_for
1481 - RT#25683 fixed (multiple open sths on DBD::Sybase)
1482 - CDBI compat infers has_many from has_a (Schwern)
e73fced0 1483 - Fix ddl_filename transformation (Carl Vincent)
8b50216e 1484
e9188247 14850.07999_02 2007-01-25 20:11:00
1486 - add support for binding BYTEA and similar parameters (w/Pg impl)
1487 - add support to Ordered for multiple ordering columns
1488 - mark DB.pm and compose_connection as deprecated
1489 - switch tests to compose_namespace
737416a4 1490 - ResultClass::HashRefInflator added
e9188247 1491 - Changed row and rs objects to not have direct handle to a source,
1492 instead a (schema,source_name) tuple of type ResultSourceHandle
c216324a 1493
f00482a5 14940.07005 2007-01-10 18:36:00
1495 - fixup changes file
1496 - remove erroneous .orig files - oops
1497
d5efeb56 14980.07004 2007-01-09 21:52:00
d180c0f3 1499 - fix find_related-based queries to correctly grep the unique key
97c76264 1500 - fix InflateColumn to inflate/deflate all refs but scalar refs
d180c0f3 1501
e1f1616e 15020.07003 2006-11-16 11:52:00
8de06d81 1503 - fix for rt.cpan.org #22740 (use $^X instead of hardcoded "perl")
25dbe178 1504 - Tweaks to resultset to allow inflate_result to return an array
382b1d53 1505 - Fix UTF8Columns to work under Perl <= 5.8.0
c6a0dde1 1506 - Fix up new_result in ResultSet to avoid alias-related bugs
a4c8f60d 1507 - Made new/update/find handle 'single' rel accessor correctly
1508 - Fix NoBindVars to be safer and handle non-true bind values
e1f1616e 1509 - Don't blow up if columns_info_for returns useless results
1510 - Documentation updates
382b1d53 1511
e9188247 15120.07999_01 2006-10-05 21:00:00
1513 - add connect_info option "disable_statement_caching"
1514 - create insert_bulk using execute_array, populate uses it
1515 - added DBIx::Class::Schema::load_namespaces, alternative to
1516 load_classes
1517 - added source_info method for source-level metadata (kinda like
1518 column_info)
1519 - Some of ::Storage::DBI's code/docs moved to ::Storage
1520 - DBIx::Class::Schema::txn_do code moved to ::Storage
1521 - Storage::DBI now uses exceptions instead of ->ping/->{Active} checks
1522 - Storage exceptions are thrown via the schema class's throw_exception
1523 - DBIx::Class::Schema::throw_exception's behavior can be modified via
1524 ->exception_action
1525 - columns_info_for is deprecated, and no longer runs automatically.
1526 You can make it work like before via
1527 __PACKAGE__->column_info_from_storage(1) for now
1528 - Replaced DBIx::Class::AccessorGroup and Class::Data::Accessor with
5d583aba 1529 Class::Accessor::Grouped. Only user noticible change is to
1530 table_class on ResultSourceProxy::Table (i.e. table objects in
1531 schemas) and, resultset_class and result_class in ResultSource.
e9188247 1532 These accessors no longer automatically require the classes when
1533 set.
1534
2292193a 15350.07002 2006-09-14 21:17:32
1536 - fix quote tests for recent versions of SQLite
1537 - added reference implementation of Manual::Example
1538 - backported column_info_from_storage accessor from -current, but
6d2d6160 1539 - fixed inflate_datetime.t tests/stringify under older Test::More
2292193a 1540 - minor fixes for many-to-many relationship helpers
36f79eed 1541 - cleared up Relationship docs, and fixed some typos
e4cc8257 1542 - use ref instead of eval to check limit syntax (to avoid issues with
1543 Devel::StackTrace)
2292193a 1544 - update ResultSet::_cond_for_update_delete to handle more complicated
1545 queries
1546 - bugfix to Oracle columns_info_for
a918d901 1547 - remove_columns now deletes columns from _columns
1548
f096a498 15490.07001 2006-08-18 19:55:00
9dba3059 1550 - add directory argument to deploy()
1551 - support default aliases in many_to_many accessors.
1552 - support for relationship attributes in many_to_many accessors.
1553 - stop search_rs being destructive to attrs
1554 - better error reporting when loading components
1555 - UTF8Columns changed to use "utf8" instead of "Encode"
ab8481f5 1556 - restore automatic aliasing in ResultSet::find() on nonunique queries
1557 - allow aliases in ResultSet::find() queries (in cases of relationships
1558 with prefetch)
89034887 1559 - pass $attrs to find from update_or_create so a specific key can be
1560 provided
04786a4c 1561 - remove anonymous blesses to avoid major speed hit on Fedora Core 5's
1562 Perl and possibly others; for more information see:
1563 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=196836
282cccff 1564 - fix a pathological prefetch case
1565 - table case fix for Oracle in columns_info_for
cb3e35d2 1566 - stopped search_rs deleting attributes from passed hash
282cccff 1567
cebfddb3 15680.07000 2006-07-23 02:30:00
28d25740 1569 - supress warnings for possibly non-unique queries, since
1570 _is_unique_query doesn't infer properly in all cases
b489f68a 1571 - skip empty queries to eliminate spurious warnings on ->deploy
d09c569a 1572 - fixups to ORDER BY, tweaks to deepen some copies in ResultSet
eac29141 1573 - fixup for RowNum limit syntax with functions
d09c569a 1574
99eff28a 15750.06999_07 2006-07-12 20:58:05
1576 - fix issue with from attr copying introduced in last release
1577
26cfd055 15780.06999_06 2006-07-12 17:16:55
1579 - documentation for new storage options, fix S::A::L hanging on to $dbh
1580 - substantial refactor of search_related code to fix alias numbering
dcfb635f 1581 - don't generate partial unique keys in ResultSet::find() when a table
1582 has more than one unique constraint which share a column and only one
1583 is satisfied
404939a4 1584 - cleanup UTF8Columns and make more efficient
26cfd055 1585 - rename DBIX_CLASS_STORAGE_DBI_DEBUG to DBIC_TRACE (with compat)
f9fbd9bb 1586 - rename _parent_rs to _parent_source in ResultSet
0793f927 1587 - new FAQ.pod!
f9fbd9bb 1588
2b19c829 15890.06999_05 2006-07-04 14:40:01
88de38fa 1590 - fix issue with incorrect $rs->{attrs}{alias}
c1466191 1591 - fix subclassing issue with source_name
296ef183 1592 - tweak quotes test to output text on failure
f32eb113 1593 - fix Schema->txn_do to not fail as a classmethod
1594
39b590c1 15950.06999_04 2006-06-29 20:18:47
d651c864 1596 - disable cdbi-t/02-Film.t warning tests under AS perl
ca306ecb 1597 - fixups to MySQL tests (aka "work round mysql being retarded")
1598 - compat tweaks for Storage debug logging
1599
ef26a392 16000.06999_03 2006-06-26 21:04:44
1601 - various documentation improvements
1602 - fixes to pass test suite on Windows
1603 - rewrote and cleaned up SQL::Translator tests
1604 - changed relationship helpers to only call ensure_class_loaded when the
5d583aba 1605 join condition is inferred
ef26a392 1606 - rewrote many_to_many implementation, now provides helpers for adding
1607 and deleting objects without dealing with the link table
6ccc50ab 1608 - reworked InflateColumn implementation to lazily deflate where
ef26a392 1609 possible; now handles passing an inflated object to new()
1610 - changed join merging to not create a rel_2 alias when adding a join
42312aa5 1611 that already exists in a parent resultset
ef26a392 1612 - Storage::DBI::deployment_statements now calls ensure_connected
5d583aba 1613 if it isn't passed a type
ef26a392 1614 - fixed Componentized::ensure_class_loaded
5d0a2955 1615 - InflateColumn::DateTime supports date as well as datetime
ef26a392 1616 - split Storage::DBI::MSSQL into MSSQL and Sybase::MSSQL
5d583aba 1617 - fixed wrong debugging hook call in Storage::DBI
1618 - set connect_info properly before setting any ->sql_maker things
42312aa5 1619
713ca2e2 16200.06999_02 2006-06-09 23:58:33
9b83fccd 1621 - Fixed up POD::Coverage tests, filled in some POD holes
175cff3e 1622 - Added a warning for incorrect component order in load_components
bd93520f 1623 - Fixed resultset bugs to do with related searches
1624 - added code and tests for Componentized::ensure_class_found and
1625 load_optional_class
1626 - NoBindVars + Sybase + MSSQL stuff
1627 - only rebless S::DBI if it is still S::DBI and not a subclass
1628 - Added `use' statement for DBD::Pg in Storage::DBI::Pg
1629 - stopped test relying on order of unordered search
1630 - bugfix for join-types in nested joins using the from attribute
1631 - obscure prefetch problem fixed
1632 - tightened up deep search_related
1633 - Fixed 'DBIx/Class/DB.pm did not return a true value' error
1634 - Revert change to test for deprecated find usage and swallow warnings
1635 - Slight wording change to new_related() POD
1636 - new specific test for connect_info coderefs
1637 - POD clarification and content bugfixing + a few code formatting fixes
1638 - POD::Coverage additions
1639 - fixed debugfh
1640 - Fix column_info stomping
9b83fccd 1641
0de39991 16420.06999_01 2006-05-28 17:19:30
368a5228 1643 - add automatic naming of unique constraints
1c81f831 1644 - marked DB.pm as deprecated and noted it will be removed by 1.0
a8db04ca 1645 - add ResultSetColumn
ef26a392 1646 - refactor ResultSet code to resolve attrs as late as possible
a8db04ca 1647 - merge prefetch attrs into join attrs
cec13963 1648 - add +select and +as attributes to ResultSet
e7cafd06 1649 - added InflateColumn::DateTime component
4c248161 1650 - refactor debugging to allow for profiling using Storage::Statistics
6aaa8ea2 1651 - removed Data::UUID from deps, made other optionals required
38e48163 1652 - modified SQLT parser to skip dupe table names
002a359a 1653 - added remove_column(s) to ResultSource/ResultSourceProxy
1654 - added add_column alias to ResultSourceProxy
bab77431 1655 - added source_name to ResultSource
1bc0b925 1656 - load_classes now uses source_name and sets it if necessary
1657 - add update_or_create_related to Relationship::Base
1658 - add find_or_new to ResultSet/ResultSetProxy and find_or_new_related
1659 to Relationship::Base
1660 - add accessors for unique constraint names and coulums to
1661 ResultSource/ResultSourceProxy
1662 - rework ResultSet::find() to search unique constraints
9387c904 1663 - CDBICompat: modify retrieve to fix column casing when ColumnCase is
1664 loaded
1665 - CDBICompat: override find_or_create to fix column casing when
1666 ColumnCase is loaded
62eb8fe8 1667 - reorganized and simplified tests
1668 - added Ordered
8046a6d1 1669 - added the ability to set on_connect_do and the various sql_maker
1670 options as part of Storage::DBI's connect_info.
002a359a 1671
0de39991 16720.06003 2006-05-19 15:37:30
9c2c91ea 1673 - make find_or_create_related check defined() instead of truth
8417f5ee 1674 - don't unnecessarily fetch rels for cascade_update
d3c946a0 1675 - don't set_columns explicitly in update_or_create; instead use
1676 update($hashref) so InflateColumn works
0823196c 1677 - fix for has_many prefetch with 0 related rows
1678 - make limit error if rows => 0
a917fb06 1679 - added memory cycle tests and a long-needed weaken call
1680
a2f6c15f 16810.06002 2006-04-20 00:42:41
2c037e6b 1682 - fix set_from_related to accept undef
bd054cb4 1683 - fix to Dumper-induced hash iteration bug
83419ec6 1684 - fix to copy() with non-composed resultsource
765f5b7b 1685 - fix to ->search without args to clone rs but maintain cache
a32e8402 1686 - grab $self->dbh once per function in Storage::DBI
428c2b82 1687 - nuke ResultSource caching of ->resultset for consistency reasons
16b4fd26 1688 - fix for -and conditions when updating or deleting on a ResultSet
1689
d56d8619 16900.06001
6346a152 1691 - Added fix for quoting with single table
182fee36 1692 - Substantial fixes and improvements to deploy
1693 - slice now uses search directly
1694 - fixes for update() on resultset
1695 - bugfix to Cursor to avoid error during DESTROY
986e4fca 1696 - transaction DBI operations now in debug trace output
6346a152 1697
41741748 16980.06000 2006-03-25 18:03:46
eaefb953 1699 - Lots of documentation improvements
1700 - Minor tweak to related_resultset to prevent it storing a searched rs
8fcf21b3 1701 - Fixup to columns_info_for when database returns type(size)
eeb34228 1702 - Made do_txn respect void context (on the off-chance somebody cares)
5bd6785c 1703 - Fix exception text for nonexistent key in ResultSet::find()
8fcf21b3 1704
41741748 17050.05999_04 2006-03-18 19:20:49
7ed3d6dc 1706 - Fix for delete on full-table resultsets
936332ea 1707 - Removed caching on count() and added _count for pager()
3ec067db 1708 - ->connection does nothing if ->storage defined and no args
1709 (and hence ->connect acts like ->clone under the same conditions)
1710 - Storage::DBI throws better exception if no connect info
1711 - columns_info_for made more robust / informative
1346e22d 1712 - ithreads compat added, fork compat improved
bcd26419 1713 - weaken result_source in all resultsets
bd93520f 1714 - Make pg seq extractor less sensitive.
3b44ccc6 1715
c42d8358 17160.05999_03 2006-03-14 01:58:10
1717 - has_many prefetch fixes
85dea9a9 1718 - deploy now adds drop statements before creates
f109ee4a 1719 - deploy outputs debugging statements if DBIX_CLASS_STORAGE_DBI_DEBUG
1720 is set
85dea9a9 1721
f109ee4a 17220.05999_02 2006-03-10 13:31:37
e9100ff7 1723 - remove test dep on YAML
1724 - additional speed tweaks for C3
e535069e 1725 - allow scalarefs passed to order_by to go straight through to SQL
9b465d00 1726 - renamed insert_or_update to update_or_insert (with compat alias)
f43b2744 1727 - hidden lots of packages from the PAUSE Indexer
561bd5f6 1728
17290.05999_01 2006-03-09 18:31:44
5e8b1b2a 1730 - renamed cols attribute to columns (cols still supported)
1731 - added has_column_loaded to Row
90ec6cad 1732 - Storage::DBI connect_info supports coderef returning dbh as 1st arg
aa972396 1733 - load_components() doesn't prepend base when comp. prefixed with +
074a366d 1734 - $schema->deploy
1735 - HAVING support
1736 - prefetch for has_many
eaefb953 1737 - cache attr for resultsets
074a366d 1738 - PK::Auto::* no longer required since Storage::DBI::* handle auto-inc
0e35aa05 1739 - minor tweak to tests for join edge case
1740 - added cascade_copy relationship attribute
1741 (sponsored by Airspace Software, http://www.airspace.co.uk/)
1742 - clean up set_from_related
1743 - made copy() automatically null out auto-inc columns
62cb84ec 1744 - added txn_do() method to Schema, which allows a coderef to be
1745 executed atomically
70ecd5a1 1746
975c65b5 17470.05007 2006-02-24 00:59:00
971c0085 1748 - tweak to Componentised for Class::C3 0.11
1749 - fixes for auto-inc under MSSQL
1750
f8d97a01 17510.05006 2006-02-17 15:32:40
1752 - storage fix for fork() and workaround for Apache::DBI
fc27a867 1753 - made update(\%hash) work on row as well as rs
d3231653 1754 - another fix for count with scalar group_by
1755 - remove dependency on Module::Find in 40resultsetmanager.t (RT #17598)
4834d8ac 1756
d0bb3812 17570.05005 2006-02-13 21:24:51
1758 - remove build dependency on version.pm
1759
dec2517f 17600.05004 2006-02-13 20:59:00
002a359a 1761 - allow specification of related columns via cols attr when primary
f3b05bad 1762 keys of the related table are not fetched
1763 - fix count for group_by as scalar
f66596f9 1764 - add horrific fix to make Oracle's retarded limit syntax work
3b24f6ea 1765 - remove Carp require
60283c2e 1766 - changed UUIDColumns to use new UUIDMaker classes for uuid creation
1767 using whatever module may be available
f66596f9 1768
85b4a1c5 17690.05003 2006-02-08 17:50:20
1770 - add component_class accessors and use them for *_class
1771 - small fixes to Serialize and ResultSetManager
85b4a1c5 1772 - rollback on disconnect, and disconnect on DESTROY
85b4a1c5 1773
cc6504dc 17740.05002 2006-02-06 12:12:03
1775 - Added recommends for Class::Inspector
fac560c2 1776 - Added skip_all to t/40resultsetmanager.t if no Class::Inspector
1777 available
cc6504dc 1778
17790.05001 2006-02-05 15:28:10
6ee299bf 1780 - debug output now prints NULL for undef params
887ce227 1781 - multi-step prefetch along the same rel (e.g. for trees) now works
489709af 1782 - added multi-join (join => [ 'foo', 'foo' ]), aliases second to foo_2
5ec6bc2e 1783 - hack PK::Auto::Pg for "table" names referencing a schema
1784 - find() with attributes works
5ac6a044 1785 - added experimental Serialize and ResultSetManager components
19345968 1786 - added code attribute recording to DBIx::Class
5ac6a044 1787 - fix to find() for complex resultsets
1788 - added of $storage->debugcb(sub { ... })
1789 - added $source->resultset_attributes accessor
1790 - added include_columns rs attr
1791
fc69fea6 17920.05000 2006-02-01 16:48:30
1793 - assorted doc fixes
602afcfa 1794 - remove ObjectCache, not yet working in 0.05
1795 - let many_to_many rels have attrs
1796 - fix ID method in PK.pm to be saner for new internals
132f3b89 1797 - fix t/30dbicplain.t to use ::Schema instead of
1798 Catalyst::Model::DBIC::Plain
cd67f809 1799
7a1fe534 18000.04999_06 2006-01-28 21:20:32
de5e2fe9 1801 - fix Storage/DBI (tried to load deprecated ::Exception component)
1802
18030.04999_05 2006-01-28 20:13:52
00018e9d 1804 - count will now work for grouped resultsets
1805 - added accessor => option to column_info to specify accessor name
a37a4697 1806 - added $schema->populate to load test data (similar to AR fixtures)
5e8b1b2a 1807 - removed cdbi-t dependencies, only run tests if installed
1808 - Removed DBIx::Class::Exception
1809 - unified throw_exception stuff, using Carp::Clan
1810 - report query when sth generation fails.
a14d1055 1811 - multi-step prefetch!
1812 - inheritance fixes
1813 - test tweaks
1814
09aeebca 18150.04999_04 2006-01-24 21:48:21
1816 - more documentation improvements
fac560c2 1817 - add columns_info_for for vendor-specific column info (Zbigniew
1818 Lukasiak)
1819 - add SQL::Translator::Producer for DBIx::Class table classes (Jess
1820 Robinson)
09aeebca 1821 - add unique constraint declaration (Daniel Westermann-Clark)
1822 - add new update_or_create method (Daniel Westermann-Clark)
e46a66f2 1823 - rename ResultSetInstance class to ResultSetProxy, ResultSourceInstance
1824 to ResultSourceProxy, and TableInstance to ResultSourceProxy::Table
09aeebca 1825 - minor fixes to UUIDColumns
6565b410 1826 - add debugfh method and ENV magic for tracing SQL (Nigel Metheringham)
09aeebca 1827
151fc9ad 18280.04999_03 2006-01-20 06:05:27
09aeebca 1829 - imported Jess Robinson's SQL::Translator::Parser::DBIx::Class
fac560c2 1830 - lots of internals cleanup to eliminate result_source_instance
1831 requirement
8bfc3d48 1832 - added register_column and register_relationship class APIs
1833 - made Storage::DBI use prepare_cached safely (thanks to Tim Bunce)
1834 - many documentation improvements (thanks guys!)
fac560c2 1835 - added ->connection, ->connect, ->register_source and ->clone schema
1836 methods
5e8b1b2a 1837 - Use croak instead of die for user errors.
8bfc3d48 1838
9ce9ec10 18390.04999_02 2006-01-14 07:17:35
1840 - Schema is now self-contained; no requirement for co-operation
1841 - add_relationship, relationships, relationship_info, has_relationship
1842 - relationship handling on ResultSource
1843 - all table handling now in Table.pm / ResultSource.pm
475978db 1844 - added GROUP BY and DISTINCT support
1845 - hacked around SQL::Abstract::Limit some more in DBIC::SQL::Abstract
1846 (this may have fixed complex quoting)
1847 - moved inflation to inflate_result in Row.pm
1848 - added $rs->search_related
1849 - split compose_namespace out of compose_connection in Schema
fea3d045 1850 - ResultSet now handles find
1851 - various *_related methods are now ->search_related->*
1852 - added new_result to ResultSet
475978db 1853
82b1cd1f 18540.04999_01 2005-12-27 03:33:42
1855 - search and related methods moved to ResultSet
1856 - select and as added to ResultSet attrs
1857 - added DBIx::Class::Table and TableInstance for table-per-class
1858 - added DBIx::Class::ResultSetInstance which handles proxying
1859 search etc. as a superclass of DBIx::Class::DB
1860 - assorted test and code cleanup work
1861
de5d1955 18620.04001 2005-12-13 22:00:00
47bd0267 1863 - Fix so set_inflated_column calls set_column
de5d1955 1864 - Syntax errors in relationship classes are now reported
c2074366 1865 - Better error detection in set_primary_key and columns methods
1866 - Documentation improvements
1867 - Better transaction support with txn_* methods
1868 - belongs_to now works when $cond is a string
1869 - PK::Auto::Pg updated, only tries primary keys instead of all cols
47bd0267 1870
18710.04 2005-11-26
484c9dda 1872 - Moved get_simple and set_simple into AccessorGroup
1873 - Made 'new' die if given invalid columns
103647d5 1874 - Added has_column and column_info to Table.pm
1875 - Refactored away from direct use of _columns and _primaries
47bd0267 1876 - Switched from NEXT to Class::C3
484c9dda 1877
2441e56f 18780.03004
1879 - Added an || '' to the CDBICompat stringify to avoid null warnings
5e8b1b2a 1880 - Updated name section for manual pods
3b44ccc6 18810.03003 2005-11-03 17:00:00
1882 - POD fixes.
1883 - Changed use to require in Relationship/Base to avoid import.
1884
18850.03002 2005-10-20 22:35:00
1886 - Minor bugfix to new (Row.pm)
1887 - Schema doesn't die if it can't load a class (Schema.pm)
1888 - New UUID columns plugin (UUIDColumns.pm)
1889 - Documentation improvements.
1890
18910.03001 2005-09-23 14:00:00
1892 - Fixes to relationship helpers
1893 - IMPORTANT: prefetch/schema combination bug fix
1894
18950.03 2005-09-19 19:35:00
1896 - Paging support
1897 - Join support on search
1898 - Prefetch support on search
1899
19000.02 2005-08-12 18:00:00
1901 - Test fixes.
1902 - Performance improvements.
1903 - Oracle primary key support.
1904 - MS-SQL primary key support.
1905 - SQL::Abstract::Limit integration for database-agnostic limiting.
1906
19070.01 2005-08-08 17:10:00
1908 - initial release
fac560c2 1909