Merge 'trunk' into 'sybase'
[dbsrgits/DBIx-Class.git] / Changes
CommitLineData
3b44ccc6 1Revision history for DBIx::Class
64ea0f49 2
294a5282 3 - Replication updates:
4 - Improved the replication tests so that they are more reliable
5 and accurate, and hopefully solve some cross platform issues.
6 - Bugfixes related to naming particular replicants in a
7 'force_pool' attribute.
8 - Lots of documentation updates, including a new Introduction.pod
9 file.
10 - Fixed the way we detect transaction to make this more reliable
11 and forward looking.
12 - Fixed some trouble with the way Moose Types are used.
1910c7af 13 - Made discard_chages/get_from_storage replication aware (they
14 now read from the master storage by default)
294a5282 15 - Refactor of MSSQL storage drivers, with some new features:
16 - Support for placeholders for MSSQL via DBD::Sybase with proper
17 autodetection
18 - 'uniqueidentifier' support with auto newid()
19 - Dynamic cursor support and other MARS options for ODBC
1f4263eb 20 - savepoints with auto_savepoint => 1
294a5282 21 - Support for MSSQL 'money' type
22 - Support for 'smalldatetime' type used in MSSQL and Sybase for
4c46fa18 23 InflateColumn::DateTime
1f4263eb 24 - Support for Postgres 'timestamp without timezone' type in
4c46fa18 25 InflateColumn::DateTime
1f4263eb 26 - Much improved Sybase support, including support for TEXT/IMAGE
7b362589 27 columns and connecting via FreeTDS
456441ea 28 - Replication updates: Improved the replication tests so that they are
29 more reliable and accurate, and hopefully solve some cross platform
30 issues. Bugfixes related to naming particular replicants in a
31 'force_pool' attribute. Lots of documentation updates, including a
32 new Introduction.pod file. Fixed the way we detect transaction to
33 make this more reliable and forward looking. Fixed some trouble with
97a0a148 34 the way Moose Types are used.
35 - Added new MySQL specific on_connect_call macro 'set_strict_mode'
36 (also known as make_mysql_not_suck_as_much)
294a5282 37 - Multiple prefetch-related fixes:
38 - Adjust overly agressive subquery join-chain pruning
39 - Always preserve the outer join-chain - fixes numerous
40 problems with search_related chaining
41 - Deal with the distinct => 1 attribute properly when using
42 prefetch
13a3e374 43 - Massive optimization of the DBI storage layer - reduce the
44 amount of connected() calls
45 - New ::Storage::DBI method last_dbh() - it will still return a
46 newly connected $dbh if we start unconnected, but will not ping
47 the server on every invocation unlike dbh()
294a5282 48 - Multiple POD improvements
2ec1a5c1 49
500.08108 2009-07-05 23:15:00 (UTC)
04492bc7 51 - Fixed the has_many prefetch with limit/group deficiency -
52 it is now possible to select "top 5 commenters" while
53 prefetching all their comments
54 - New resultsed method count_rs, returns a ::ResultSetColumn
55 which in turn returns a single count value
56 - Even better support of count with limit
6a999241 57 - New on_connect_call/on_disconnect_call functionality (check
58 POD of Storage::DBI)
59 - Automatic datetime handling environment/session setup for
60 Oracle via connect_call_datetime_setup()
f685632d 61 - count/all on related left-joined empty resultsets now correctly
62 returns 0/()
e8b32a6d 63 - Fixed regression when both page and offset are specified on
64 a resultset
65 - Fixed HRI returning too many empty results on multilevel
66 nonexisting prefetch
497d874a 67 - make_column_dirty() now overwrites the deflated value with an
68 inflated one if such exists
d2d82857 69 - Fixed set_$rel with where restriction deleting rows outside
70 the restriction
04492bc7 71 - populate() returns the created objects or an arrayref of the
115a7c3b 72 created objects depending on scalar vs. list context
04492bc7 73 - Fixed find_related on 'single' relationships - the former
74 implementation would overspecify the WHERE condition, reporting
75 no related objects when there in fact is one
76 - SQL::Translator::Parser::DBIx::Class now attaches tables to the
77 central schema object in relationship dependency order
78 - Fixed regression in set_column() preventing sourceless object
79 manipulations
80 - Fixed a bug in search_related doubling a join if the original
81 $rs already joins/prefetches the same relation
82 - Storage::DBI::connected() improvements for Oracle and Sybase
b4fd6882 83 - Fixed prefetch+incomplete select regression introduced in
84 0.08100
9ab7fe6a 85 - MSSQL limit (TOP emulation) fixes and improvements
51a296b4 86
6d82e103 870.08107 2009-06-14 08:21:00 (UTC)
88 - Fix serialization regression introduced in 0.08103 (affects
89 Cursor::Cached)
90 - POD fixes
91 - Fixed incomplete ::Replicated debug output
92
ea60f9a9 930.08106 2009-06-11 21:42:00 (UTC)
94 - Switched SQLite storage driver to DateTime::Format::SQLite
95 (proper timezone handling)
96 - Fix more test problems
97
fb022fcf 980.08105 2009-06-11 19:04:00 (UTC)
90499ee4 99 - Update of numeric columns now properly uses != to determine
100 dirtyness instead of the usual eq
101 - Fixes to IC::DT tests
04492bc7 102 - Fixed exception when undef_if_invalid and timezone are both set
103 on an invalid datetime column
90499ee4 104
536bf52b 1050.08104 2009-06-10 13:38:00 (UTC)
1ca68535 106 - order_by now can take \[$sql, @bind] as in
107 order_by => { -desc => \['colA LIKE ?', 'somestring'] }
108 - SQL::Abstract errors are now properly croak()ed with the
109 correct trace
4242d79d 110 - populate() now properly reports the dataset slice in case of
111 an exception
9c094643 112 - Fixed corner case when populate() erroneously falls back to
4242d79d 113 create()
9c094643 114 - Work around braindead mysql when doing subquery counts on
b5963465 115 resultsets containing identically named columns from several
116 tables
536bf52b 117 - Fixed m2m add_to_$rel to invoke find_or_create on the far
9c094643 118 side of the relation, to avoid duplicates
119 - DBIC now properly handles empty inserts (invoking all default
120 values from the DB, normally via INSERT INTO tbl DEFAULT VALUES
121 - Fix find_or_new/create to stop returning random rows when
122 default value insert is requested (RT#28875)
123 - Make IC::DT extra warning state the column name too
124 - It is now possible to transparrently search() on columns
536bf52b 125 requiring DBI bind (i.e. PostgreSQL BLOB)
9c094643 126 - as_query is now a Storage::DBI method, so custom cursors can
127 be seamlessly used
128 - Fix search_related regression introduced in 0.08103
4242d79d 129
e911e7ff 1300.08103 2009-05-26 19:50:00 (UTC)
1ace31c2 131 - Multiple $resultset -> count/update/delete fixes. Now any
132 of these operations will succeed, regardless of the complexity
133 of $resultset. distinct, group_by, join, prefetch are all
134 supported with expected results
19431116 135 - Return value of $rs->delete is now the storage return value
136 and not 1 as it used to be
a4d8bea5 137 - don't pass SQL functions into GROUP BY
c8a8b777 138 - Remove MultiDistinctEmulation.pm, effectively deprecating
139 { select => { distinct => [ qw/col1 col2/ ] } }
140 - Change ->count code to work correctly with DISTINCT (distinct => 1)
141 via GROUP BY
1ace31c2 142 - Removed interpolation of bind vars for as_query - placeholders
143 are preserved and nested query bind variables are properly
144 merged in the correct order
d4483998 145 - Refactor DBIx::Class::Storage::DBI::Sybase to automatically
146 load a subclass, namely Microsoft_SQL_Server.pm
568bde84 147 (similar to DBIx::Class::Storage::DBI::ODBC)
44a8dcf3 148 - Refactor InflateColumn::DateTime to allow components to
149 circumvent DateTime parsing
9073e906 150 - Support inflation of timestamp datatype
151 - Support BLOB and CLOB datatypes on Oracle
46ad3c86 152 - Storage::DBI::Replicated::Balancer::Random:
153 added master_read_weight
154 - Storage::DBI::Replicated: storage opts from connect_info,
155 connect_info merging to replicants, hashref connect_info support,
156 improved trace output, other bug fixes/cleanups
1ace31c2 157 - distinct => 1 with prefetch now groups by all columns
158 - on_connect_do accepts a single string equivalent to a one
159 element arrayref (RT#45159)
160 - DB2 limit + offset now works correctly
161 - Sybase now supports autoinc PKs (RT#40265)
162 - Prefetch on joins over duplicate relations now works
163 correctly (RT#28451)
6c99a3ee 164 - "timestamp with time zone" columns (for Pg) now get inflated with a
165 time zone information preserved
19431116 166 - MSSQL Top limit-emulation improvements (GROUP BY and subquery support)
bed3a173 167 - ResultSetColumn will not lose the joins infered from a parent
168 resultset prefetch
d4483998 169
90b41762 1700.08102 2009-04-30 08:29:00 (UTC)
9beb2b51 171 - Fixed two subtle bugs when using columns or select/as
172 paired with a join (limited prefetch)
173 - Fixed breakage of cdbi tests (RT#45551)
174 - Some POD improvements
175
a0f289c8 1760.08101 2009-04-27 09:45:00 (UTC)
177 - Fix +select, +as, +columns and include_columns being stripped
178 by $rs->get_column
179 - move load_optional_class from DBIx::Class::Componentised to
180 Class::C3::Componentised, bump dependency
181 - register_extra_source() now *really* fixed wrt subclassing
182 - Added missing POD descriptions (RT#45195)
183 - Fix insert() to not store_column() every present object column
184 - Multiple Makefile.PL fixes
121068ec 185
a0f289c8 1860.08100 2009-04-19 11:39:35 (UTC)
6882de2b 187 - Todo out the register_extra_source test until after shipping
188
6c0e3b46 1890.08099_08 2009-03-30 00:00:00 (UTC)
190 - Fixed taint mode with load_namespaces
191 - Putting IC::DateTime locale, timezone or floating_tz_ok attributes into
92ed0695 192 extra => {} has been deprecated. The new way is to put these things
193 directly into the columns definition
6c0e3b46 194 - Switched MI code to MRO::Compat
195 - Document db-side default_value caveats
cfcaa8ed 196 - Search_like() now warns to indicate deprecation in 0.09.
6c0e3b46 197 - TxnScopeGuard left experimental state
198
1990.08099_07 2009-02-27 02:00:00 (UTC)
de404241 200 - multi-create using find_or_create rather than _related for post-insert
201 - fix get_inflated_columns to check has_column_loaded
6ffb5be5 202 - Add DBIC_MULTICREATE_DEBUG env var (undocumented, quasi-internal)
203 - Fix up multi-create to:
204 - correctly propagate columns loaded during multi-insert of rels
205 - not try and insert things tagged on via new_related unless required
8d689133 206 - Possible to set locale in IC::DateTime extra => {} config
6ffb5be5 207 - Calling the accessor of a belongs_to when the foreign_key
24ff1a20 208 was NULL and the row was not stored would unexpectedly fail
6ffb5be5 209 - Split sql statements for deploy only if SQLT::Producer returned a scalar
210 containing all statements to be executed
211 - Add as_query() for ResultSet and ResultSetColumn. This makes subqueries
6882de2b 212 possible. See the Cookbook for details.
bd7ca9e8 213 - Massive rewrite of Ordered to properly handle position constraints and
214 to make it more matpath-friendly
0233fc64 215 - deploy_statements called ddl_filename with the $version and $dir arguments
6c0e3b46 216 in the wrong order.
00c937a2 217 - columns/+columns attributes now support { as => select } hahsrefs
64ea0f49 218 - support for views both in DBIC and via deploy() in SQLT
eaab653f 219
2200.08099_06 2009-01-23 07:30:00 (UTC)
0eb27426 221 - Allow a scalarref to be supplied to the 'from' resultset attribute
222 - Classes submitted as result_class for a resultsource are now
223 automatically loaded via ensure_loaded()
224 - 'result_class' resultset attribute, identical to result_class()
0da3fea1 225 - add 'undef_on_null_fk' option for relationship accessors of type 'single'.
cef1bdda 226 This will prevent DBIC from querying the database if one or more of
0e40881e 227 the key columns IS NULL
228 - for 'belongs_to' rels, 'undef_on_null_fk' defaults to true.
229 - fixed scope unaware last_insert_id fetching for MSSQL
230 (http://msdn.microsoft.com/en-us/library/ms190315.aspx)
0da3fea1 231 - an sqlt_deploy_hook can now be shared between result sources using
232 a configurable callback trigger
20ea616f 233 - new order_by => { -desc => 'colname' } syntax supported
234 - PG array datatype supported
0e80c4ca 235 - insert should use store_column, not set_column to avoid marking
24ff1a20 236 clean just-stored values as dirty. New test for this
237 - regression test for source_name
28e6c8b6 238
2390.08099_05 2008-10-30 21:30:00 (UTC)
cfcaa8ed 240 - Rewrite of Storage::DBI::connect_info(), extended with an
28e6c8b6 241 additional argument format type
2177f7d2 242 - InflateColumn::DateTime: add warning about floating timezone
243 - InflateColumn::DateTime: possible to enforce/skip inflation
cfcaa8ed 244 - delete throws exception if passed arguments to prevent drunken mishaps.
68f3b0dd 245 - Fix storage to copy scalar conds before regexping to avoid
246 trying to modify a constant in odd edge cases
247 - Related resultsets on uninserted objects are now empty
370f2ba2 248 - Fixed up related resultsets and multi-create
2eebd801 249 - Fixed superfluous connection in ODBC::_rebless
250 - Fixed undef PK for first insert in ODBC::Microsoft_SQL_Server
a354b842 251 - Added virtual method to Versioned so a user can create upgrade
252 path across multiple versions (jgoulah)
d76e282a 253 - Better (and marginally faster) implementation of the HashRefInflator
254 hash construction algorithm
d76e282a 255 - Allow explicit specification of ON DELETE/ON UPDATE constraints
256 when using the SQLT parser
af8b962f 257
8c764dc7 2580.08099_04 2008-07-24 01:00:00
e96a93df 259 - Functionality to storage to enable a sub to be run without FK checks
73529292 260 - Fixed $schema->clone bug which caused clone and source to share
261 internal hash refs
2a4d9487 262 - Added register_extra_source methods for additional sources
33a126ef 263 - Added datetime_undef_if_invalid for InflateColumn::DateTime to
264 return undef on invalid date/time values
262da53c 265 - Added search_related_rs method to ResultSet
6dbea98e 266 - add a make_column_dirty method to Row to force updates
cb136e67 267 - throw a clear exception when user tries multi-has_many prefetch
268 - SQLT parser prefixes index names with ${table}_idx_ to avoid clashes
748ab0dc 269 - mark ResultSetManager as deprecated and undocument it
debccec3 270 - pod fix (RT #32988)
f947585b 271 - add Test::Exception to test requirements (RT #34256)
fe650234 272 - make ash's build_requires/META.yml fixes work better
13de943d 273 - is_deferable support on relations used by the SQL::Translator
ad6c4e20 274 parser
d63be6d0 275 - Refactored DBIx::Class::Schema::Versioned
a63219bc 276 - Syntax errors from resultset components are now reported correctly
45f1a484 277 - sqltargs respected correctly in deploy et al.
5dee2dcf 278 - Added support for savepoints, and using them automatically in
279 nested transactions if auto_savepoint is set in connect_info.
0da8b7da 280 - Changed naming scheme for constraints and keys in the sqlt parser;
281 names should now be consistent and collision-free.
ad6c4e20 282 - Improve handling of explicit key attr in ResultSet::find
283 - Add warnings for non-unique ResultSet::find queries
e515254d 284 - Changed Storage::DBI::Replication to Storage::DBI::Replicated and
285 refactored support.
d4d46d19 286 - By default now deploy/diff et al. will ignore constraint and index
287 names
e758ffe6 288 - Add ResultSet::_is_deterministic_value, make new_result filter the
289 values passed to new to drop values that would generate invalid SQL.
ddc0a6c8 290 - Use Sub::Name to name closures before installing them. Fixes
291 incompatibility with Moose method modifiers on generated methods.
13de943d 292
dd018f09 2930.08010 2008-03-01 10:30
294 - Fix t/94versioning.t so it passes with latest SQL::Translator
295
95e34604 2960.08009 2008-01-20 13:30
0ed8d3b6 297 - Made search_rs smarter about when to preserve the cache to fix
298 mm prefetch usage
c1cac633 299 - Added Storage::DBI subclass for MSSQL over ODBC.
4146e3da 300 - Added freeze, thaw and dclone methods to Schema so that thawed
301 objects will get re-attached to the schema.
8cfef6f5 302 - Moved dbicadmin to JSON::Any wrapped JSON.pm for a sane API
67109394 303 (also fixes RT #32393)
a0826322 304 - introduced DBIx::Class::set_inflated_columns
305 - DBIx::Class::Row::copy uses set_inflated_columns
4146e3da 306
af8b962f 3070.08008 2007-11-16 14:30:00
7e9b2a24 308 - Fixed join merging bug (test from Zby)
eba322a7 309 - When adding relationships, it will throw an exception if you get the
310 foreign and self parts the wrong way round in the condition
5d62876f 311 - ResultSetColumn::func() now returns all results if called in list
312 context; this makes things like func('DISTINCT') work as expected
35210a5d 313 - Many-to-many relationships now warn if the utility methods would
314 clash
dda9af55 315 - InflateColumn::DateTime now accepts an extra parameter of timezone
316 to set timezone on the DT object (thanks Sergio Salvi)
aaf2403d 317 - Added sqlt_deploy_hook to result classes so that indexes can be
318 added.
11736b4c 319 - Added startup checks to warn loudly if we appear to be running on
320 RedHat systems from perl-5.8.8-10 and up that have the bless/overload
321 patch applied (badly) which causes 2x -> 100x performance penalty.
322 (Jon Schutz)
86636368 323 - ResultSource::reverse_relationship_info can distinguish between
324 sources using the same table
325 - Row::insert will now not fall over if passed duplicate related objects
35688220 326 - Row::copy will not fall over if you have two relationships to the
327 same source with a unique constraint on it
eba322a7 328
c94f64f9 3290.08007 2007-09-04 19:36:00
8f7e044c 330 - patch for Oracle datetime inflation (abram@arin.net)
6f442eb7 331 - added on_disconnect_do
332 - on_connect_do and on_disconnect_do take coderefs and arrayrefs
333
5c642b15 3340.08006 2007-08-12 15:12:00
335 - Move to using Class::C3::Componentised
336 - Remove warn statement from DBIx::Class::Row
337
3380.08005 2007-08-06
f011970e 339 - add timestamp fix re rt.cpan 26978 - no test yet but change
340 clearly should cause no regressions
01d59a6a 341 - provide alias for related_resultset via local() so it's set
342 correctly at resultset construction time (fixes RestrictWithObject)
e5d9ee92 343 - fixes bind params in debug statements
344 (original test from abraxxa)
649bfb8c 345 - fixed storage->connected fork bug
346 (test and fix from Radu Greab)
fe0e9f67 347 - add 1; to AccessorGroup.pm for stuff that still uses it
70f39278 348 - refactor Statistics to create debugging filehandle to fix bug with
349 closed STDERR, update docs and modify Versioned to use Statistics
350 (original fix from diz)
351
e7827df0 3520.08004 2007-08-06 19:00:00
353 - fix storage connect code to not trigger bug via auto-viv
354 (test from aherzog)
e4eb8ee1 355 - fixup cursor_class to be an 'inherited' attr for per-package defaults
e6c747fd 356 - add default_resultset_attributes entry to Schema
6296f45b 357 - optimisation in DBI::Cursor to check software_limit before falling
358 back to base Cursor->all
2bc3c81e 359 - fix bug with create_multi not inserting non-storage objects
360 (test and fix from davinchi)
73281318 361 - DBIx::Class::AccessorGroup made empty subclass of
362 Class::Accessor::Grouped
ec8c7e7f 363 - fixed an ugly bug regarding $dbh->{AutoCommit} and transactions
73281318 364 - ensure_class_loaded handles non-classnames better.
9a0891be 365 - non-destructive hashref handling for connect_info options
2bd9c7c0 366 - count no longer returns negative values after slice
367 (report and test from JOHANL)
114780ee 368 - rebless before building datetime_parser
369 (patch from mattlaw / Matt Lawrence)
370
ab2cf1fb 3710.08003 2007-07-14 18:01:00
372 - improved populate bulk_insert mode
a8c98174 373 - fixed up multi_create to be more intelligent about PK<->PK rels
6cc5b382 374 - fix many-many rels to not use set_columns
dfccde48 375 - Unmarked deploy as experimental since it isn't anymore
376 - Removed Cwd dep since it's not required and causes problems
377 with debian packaging
b4474f31 378 - Patch to fix ? in data for NoBindVars (from Tom Hukins)
77d518d1 379 - Restored mk_classaccessor method for compatibility
3f6cc7e4 380 - Fixed group_by problem with oracle limit syntax
381 - Fixed attr merging problem
382 - Fixed $rs->get_column w/prefetch problem
77d518d1 383
6fa7228e 3840.08002 2007-06-20 06:10:00
9c6d6d93 385 - add scope guard to Row::insert to ensure rollback gets called
386 - more heuristics in Row::insert to try and get insert order right
387 - eliminate vestigial code in PK::Auto
2ab60eb9 388 - more expressive DBI errors
389 - soften errors during deploy
291bf95f 390 - ensure_connected before txn_begin to catch stomping on transaction
391 depth
b2f408f3 392 - new method "rethrow" for our exception objects
393
a2800991 3940.08001 2007-06-17 21:21:02
395 - Cleaned up on_connect handling for versioned
396 - removed DateTime use line from multi_create test
397 - hid DBIx::ContextualFetch::st override in CDBICompat
398
737416a4 3990.08000 2007-06-17 18:06:12
942cd0c1 400 - Fixed DBIC_TRACE debug filehandles to set ->autoflush(1)
401 - Fixed circular dbh<->storage in HandleError with weakref
402
a0bd8a8c 4030.07999_06 2007-06-13 04:45:00
3fda409f 404 - tweaked Row.pm to make last_insert_id take multiple column names
a0bd8a8c 405 - Fixed DBIC::Storage::DBI::Cursor::DESTROY bug that was
406 messing up exception handling
407 - added exception objects to eliminate stacktrace/Carp::Clan
408 output redundancy
409 - setting $ENV{DBIC_TRACE} defaults stacktrace on.
4d4c7bbe 410 - added stacktrace option to Schema, makes throw_exception
411 use "confess"
412 - make database handles use throw_exception by default
413 - make database handles supplied by a coderef use our
414 standard HandleError/RaiseError/PrintError
415 - add "unsafe" connect_info option to suppress our setting
416 of HandleError/RaiseError/PrintError
417 - removed several redundant evals whose sole purpose was to
418 provide extra debugging info
4d993a62 419 - fixed page-within-page bug (reported by nilsonsfj)
4d4c7bbe 420 - fixed rare bug when database is disconnected inbetween
421 "$dbh->prepare_cached" and "$sth->execute"
4d993a62 422
ff132c6f 4230.07999_05 2007-06-07 23:00:00
2c2a01a5 424 - Made source_name rw in ResultSource
40dce2a5 425 - Fixed up SQL::Translator test/runtime dependencies
e3d0ecce 426 - Fixed t/60core.t in the absence of DateTime::Format::MySQL
8b621a87 427 - Test cleanup and doc note (ribasushi)
e3d0ecce 428
1c1896e8 4290.07999_04 2007-06-01 14:04:00
f5d3a5de 430 - pulled in Replication storage from branch and marked EXPERIMENTAL
24010dd8 431 - fixup to ensure join always LEFT after first LEFT join depthwise
f217eaab 432 - converted the vendor tests to use schema objects intead of schema
433 classes, made cleaned more reliable with END blocks
42416a0b 434 - versioning support via DBIx::Class::Schema::Versioned
f217eaab 435 - find/next now return undef rather than () on fail from Bernhard Graf
f80f8e2f 436 - rewritten collapse_result to fix prefetch
437 - moved populate to resultset
438 - added support for creation of related rows via insert and populate
f217eaab 439 - transaction support more robust now in the face of varying AutoCommit
440 and manual txn_begin usage
441 - unbreak back-compat for Row/ResultSet->new_result
03cc17a5 442 - Added Oracle/WhereJoins.pm for Oracle >= 8 to support
443 Oracle <= 9i, and provide Oracle with a better join method for
444 later versions. (I use the term better loosely.)
3d618782 445 - The SQL::T parser class now respects a relationship attribute of
03cc17a5 446 is_foreign_key_constrain to allow explicit control over wether or
447 not a foreign constraint is needed
fac560c2 448 - resultset_class/result_class now (again) auto loads the specified
1d4e109a 449 class; requires Class::Accessor::Grouped 0.05002+
ba4a6453 450 - added get_inflated_columns to Row
43556c5d 451 - %colinfo accessor and inflate_column now work together
42d96e77 452 - More documentation updates
453 - Error messages from ->deploy made more informative
454 - connect_info will now always return the arguments it was
455 originally given
456 - A few small efficiency improvements for load_classes
457 and compose_namespace
458
13f897a0 4590.07006 2007-04-17 23:18:00
b740ac42 460 - Lots of documentation updates
461 - deploy now takes an optional 'source_names' parameter (dec)
462 - Quoting for for columns_info_for
463 - RT#25683 fixed (multiple open sths on DBD::Sybase)
464 - CDBI compat infers has_many from has_a (Schwern)
e73fced0 465 - Fix ddl_filename transformation (Carl Vincent)
8b50216e 466
e9188247 4670.07999_02 2007-01-25 20:11:00
468 - add support for binding BYTEA and similar parameters (w/Pg impl)
469 - add support to Ordered for multiple ordering columns
470 - mark DB.pm and compose_connection as deprecated
471 - switch tests to compose_namespace
737416a4 472 - ResultClass::HashRefInflator added
e9188247 473 - Changed row and rs objects to not have direct handle to a source,
474 instead a (schema,source_name) tuple of type ResultSourceHandle
c216324a 475
f00482a5 4760.07005 2007-01-10 18:36:00
477 - fixup changes file
478 - remove erroneous .orig files - oops
479
d5efeb56 4800.07004 2007-01-09 21:52:00
d180c0f3 481 - fix find_related-based queries to correctly grep the unique key
97c76264 482 - fix InflateColumn to inflate/deflate all refs but scalar refs
d180c0f3 483
e1f1616e 4840.07003 2006-11-16 11:52:00
8de06d81 485 - fix for rt.cpan.org #22740 (use $^X instead of hardcoded "perl")
25dbe178 486 - Tweaks to resultset to allow inflate_result to return an array
382b1d53 487 - Fix UTF8Columns to work under Perl <= 5.8.0
c6a0dde1 488 - Fix up new_result in ResultSet to avoid alias-related bugs
a4c8f60d 489 - Made new/update/find handle 'single' rel accessor correctly
490 - Fix NoBindVars to be safer and handle non-true bind values
e1f1616e 491 - Don't blow up if columns_info_for returns useless results
492 - Documentation updates
382b1d53 493
e9188247 4940.07999_01 2006-10-05 21:00:00
495 - add connect_info option "disable_statement_caching"
496 - create insert_bulk using execute_array, populate uses it
497 - added DBIx::Class::Schema::load_namespaces, alternative to
498 load_classes
499 - added source_info method for source-level metadata (kinda like
500 column_info)
501 - Some of ::Storage::DBI's code/docs moved to ::Storage
502 - DBIx::Class::Schema::txn_do code moved to ::Storage
503 - Storage::DBI now uses exceptions instead of ->ping/->{Active} checks
504 - Storage exceptions are thrown via the schema class's throw_exception
505 - DBIx::Class::Schema::throw_exception's behavior can be modified via
506 ->exception_action
507 - columns_info_for is deprecated, and no longer runs automatically.
508 You can make it work like before via
509 __PACKAGE__->column_info_from_storage(1) for now
510 - Replaced DBIx::Class::AccessorGroup and Class::Data::Accessor with
5d583aba 511 Class::Accessor::Grouped. Only user noticible change is to
512 table_class on ResultSourceProxy::Table (i.e. table objects in
513 schemas) and, resultset_class and result_class in ResultSource.
e9188247 514 These accessors no longer automatically require the classes when
515 set.
516
2292193a 5170.07002 2006-09-14 21:17:32
518 - fix quote tests for recent versions of SQLite
519 - added reference implementation of Manual::Example
520 - backported column_info_from_storage accessor from -current, but
6d2d6160 521 - fixed inflate_datetime.t tests/stringify under older Test::More
2292193a 522 - minor fixes for many-to-many relationship helpers
36f79eed 523 - cleared up Relationship docs, and fixed some typos
e4cc8257 524 - use ref instead of eval to check limit syntax (to avoid issues with
525 Devel::StackTrace)
2292193a 526 - update ResultSet::_cond_for_update_delete to handle more complicated
527 queries
528 - bugfix to Oracle columns_info_for
a918d901 529 - remove_columns now deletes columns from _columns
530
f096a498 5310.07001 2006-08-18 19:55:00
9dba3059 532 - add directory argument to deploy()
533 - support default aliases in many_to_many accessors.
534 - support for relationship attributes in many_to_many accessors.
535 - stop search_rs being destructive to attrs
536 - better error reporting when loading components
537 - UTF8Columns changed to use "utf8" instead of "Encode"
ab8481f5 538 - restore automatic aliasing in ResultSet::find() on nonunique queries
539 - allow aliases in ResultSet::find() queries (in cases of relationships
540 with prefetch)
89034887 541 - pass $attrs to find from update_or_create so a specific key can be
542 provided
04786a4c 543 - remove anonymous blesses to avoid major speed hit on Fedora Core 5's
544 Perl and possibly others; for more information see:
545 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=196836
282cccff 546 - fix a pathological prefetch case
547 - table case fix for Oracle in columns_info_for
cb3e35d2 548 - stopped search_rs deleting attributes from passed hash
282cccff 549
cebfddb3 5500.07000 2006-07-23 02:30:00
28d25740 551 - supress warnings for possibly non-unique queries, since
552 _is_unique_query doesn't infer properly in all cases
b489f68a 553 - skip empty queries to eliminate spurious warnings on ->deploy
d09c569a 554 - fixups to ORDER BY, tweaks to deepen some copies in ResultSet
eac29141 555 - fixup for RowNum limit syntax with functions
d09c569a 556
99eff28a 5570.06999_07 2006-07-12 20:58:05
558 - fix issue with from attr copying introduced in last release
559
26cfd055 5600.06999_06 2006-07-12 17:16:55
561 - documentation for new storage options, fix S::A::L hanging on to $dbh
562 - substantial refactor of search_related code to fix alias numbering
dcfb635f 563 - don't generate partial unique keys in ResultSet::find() when a table
564 has more than one unique constraint which share a column and only one
565 is satisfied
404939a4 566 - cleanup UTF8Columns and make more efficient
26cfd055 567 - rename DBIX_CLASS_STORAGE_DBI_DEBUG to DBIC_TRACE (with compat)
f9fbd9bb 568 - rename _parent_rs to _parent_source in ResultSet
0793f927 569 - new FAQ.pod!
f9fbd9bb 570
2b19c829 5710.06999_05 2006-07-04 14:40:01
88de38fa 572 - fix issue with incorrect $rs->{attrs}{alias}
c1466191 573 - fix subclassing issue with source_name
296ef183 574 - tweak quotes test to output text on failure
f32eb113 575 - fix Schema->txn_do to not fail as a classmethod
576
39b590c1 5770.06999_04 2006-06-29 20:18:47
d651c864 578 - disable cdbi-t/02-Film.t warning tests under AS perl
ca306ecb 579 - fixups to MySQL tests (aka "work round mysql being retarded")
580 - compat tweaks for Storage debug logging
581
ef26a392 5820.06999_03 2006-06-26 21:04:44
583 - various documentation improvements
584 - fixes to pass test suite on Windows
585 - rewrote and cleaned up SQL::Translator tests
586 - changed relationship helpers to only call ensure_class_loaded when the
5d583aba 587 join condition is inferred
ef26a392 588 - rewrote many_to_many implementation, now provides helpers for adding
589 and deleting objects without dealing with the link table
6ccc50ab 590 - reworked InflateColumn implementation to lazily deflate where
ef26a392 591 possible; now handles passing an inflated object to new()
592 - changed join merging to not create a rel_2 alias when adding a join
42312aa5 593 that already exists in a parent resultset
ef26a392 594 - Storage::DBI::deployment_statements now calls ensure_connected
5d583aba 595 if it isn't passed a type
ef26a392 596 - fixed Componentized::ensure_class_loaded
5d0a2955 597 - InflateColumn::DateTime supports date as well as datetime
ef26a392 598 - split Storage::DBI::MSSQL into MSSQL and Sybase::MSSQL
5d583aba 599 - fixed wrong debugging hook call in Storage::DBI
600 - set connect_info properly before setting any ->sql_maker things
42312aa5 601
713ca2e2 6020.06999_02 2006-06-09 23:58:33
9b83fccd 603 - Fixed up POD::Coverage tests, filled in some POD holes
175cff3e 604 - Added a warning for incorrect component order in load_components
bd93520f 605 - Fixed resultset bugs to do with related searches
606 - added code and tests for Componentized::ensure_class_found and
607 load_optional_class
608 - NoBindVars + Sybase + MSSQL stuff
609 - only rebless S::DBI if it is still S::DBI and not a subclass
610 - Added `use' statement for DBD::Pg in Storage::DBI::Pg
611 - stopped test relying on order of unordered search
612 - bugfix for join-types in nested joins using the from attribute
613 - obscure prefetch problem fixed
614 - tightened up deep search_related
615 - Fixed 'DBIx/Class/DB.pm did not return a true value' error
616 - Revert change to test for deprecated find usage and swallow warnings
617 - Slight wording change to new_related() POD
618 - new specific test for connect_info coderefs
619 - POD clarification and content bugfixing + a few code formatting fixes
620 - POD::Coverage additions
621 - fixed debugfh
622 - Fix column_info stomping
9b83fccd 623
0de39991 6240.06999_01 2006-05-28 17:19:30
368a5228 625 - add automatic naming of unique constraints
1c81f831 626 - marked DB.pm as deprecated and noted it will be removed by 1.0
a8db04ca 627 - add ResultSetColumn
ef26a392 628 - refactor ResultSet code to resolve attrs as late as possible
a8db04ca 629 - merge prefetch attrs into join attrs
cec13963 630 - add +select and +as attributes to ResultSet
e7cafd06 631 - added InflateColumn::DateTime component
4c248161 632 - refactor debugging to allow for profiling using Storage::Statistics
6aaa8ea2 633 - removed Data::UUID from deps, made other optionals required
38e48163 634 - modified SQLT parser to skip dupe table names
002a359a 635 - added remove_column(s) to ResultSource/ResultSourceProxy
636 - added add_column alias to ResultSourceProxy
bab77431 637 - added source_name to ResultSource
1bc0b925 638 - load_classes now uses source_name and sets it if necessary
639 - add update_or_create_related to Relationship::Base
640 - add find_or_new to ResultSet/ResultSetProxy and find_or_new_related
641 to Relationship::Base
642 - add accessors for unique constraint names and coulums to
643 ResultSource/ResultSourceProxy
644 - rework ResultSet::find() to search unique constraints
9387c904 645 - CDBICompat: modify retrieve to fix column casing when ColumnCase is
646 loaded
647 - CDBICompat: override find_or_create to fix column casing when
648 ColumnCase is loaded
62eb8fe8 649 - reorganized and simplified tests
650 - added Ordered
8046a6d1 651 - added the ability to set on_connect_do and the various sql_maker
652 options as part of Storage::DBI's connect_info.
002a359a 653
0de39991 6540.06003 2006-05-19 15:37:30
9c2c91ea 655 - make find_or_create_related check defined() instead of truth
8417f5ee 656 - don't unnecessarily fetch rels for cascade_update
d3c946a0 657 - don't set_columns explicitly in update_or_create; instead use
658 update($hashref) so InflateColumn works
0823196c 659 - fix for has_many prefetch with 0 related rows
660 - make limit error if rows => 0
a917fb06 661 - added memory cycle tests and a long-needed weaken call
662
a2f6c15f 6630.06002 2006-04-20 00:42:41
2c037e6b 664 - fix set_from_related to accept undef
bd054cb4 665 - fix to Dumper-induced hash iteration bug
83419ec6 666 - fix to copy() with non-composed resultsource
765f5b7b 667 - fix to ->search without args to clone rs but maintain cache
a32e8402 668 - grab $self->dbh once per function in Storage::DBI
428c2b82 669 - nuke ResultSource caching of ->resultset for consistency reasons
16b4fd26 670 - fix for -and conditions when updating or deleting on a ResultSet
671
d56d8619 6720.06001
6346a152 673 - Added fix for quoting with single table
182fee36 674 - Substantial fixes and improvements to deploy
675 - slice now uses search directly
676 - fixes for update() on resultset
677 - bugfix to Cursor to avoid error during DESTROY
986e4fca 678 - transaction DBI operations now in debug trace output
6346a152 679
41741748 6800.06000 2006-03-25 18:03:46
eaefb953 681 - Lots of documentation improvements
682 - Minor tweak to related_resultset to prevent it storing a searched rs
8fcf21b3 683 - Fixup to columns_info_for when database returns type(size)
eeb34228 684 - Made do_txn respect void context (on the off-chance somebody cares)
5bd6785c 685 - Fix exception text for nonexistent key in ResultSet::find()
8fcf21b3 686
41741748 6870.05999_04 2006-03-18 19:20:49
7ed3d6dc 688 - Fix for delete on full-table resultsets
936332ea 689 - Removed caching on count() and added _count for pager()
3ec067db 690 - ->connection does nothing if ->storage defined and no args
691 (and hence ->connect acts like ->clone under the same conditions)
692 - Storage::DBI throws better exception if no connect info
693 - columns_info_for made more robust / informative
1346e22d 694 - ithreads compat added, fork compat improved
bcd26419 695 - weaken result_source in all resultsets
bd93520f 696 - Make pg seq extractor less sensitive.
3b44ccc6 697
c42d8358 6980.05999_03 2006-03-14 01:58:10
699 - has_many prefetch fixes
85dea9a9 700 - deploy now adds drop statements before creates
f109ee4a 701 - deploy outputs debugging statements if DBIX_CLASS_STORAGE_DBI_DEBUG
702 is set
85dea9a9 703
f109ee4a 7040.05999_02 2006-03-10 13:31:37
e9100ff7 705 - remove test dep on YAML
706 - additional speed tweaks for C3
e535069e 707 - allow scalarefs passed to order_by to go straight through to SQL
9b465d00 708 - renamed insert_or_update to update_or_insert (with compat alias)
f43b2744 709 - hidden lots of packages from the PAUSE Indexer
561bd5f6 710
7110.05999_01 2006-03-09 18:31:44
5e8b1b2a 712 - renamed cols attribute to columns (cols still supported)
713 - added has_column_loaded to Row
90ec6cad 714 - Storage::DBI connect_info supports coderef returning dbh as 1st arg
aa972396 715 - load_components() doesn't prepend base when comp. prefixed with +
074a366d 716 - $schema->deploy
717 - HAVING support
718 - prefetch for has_many
eaefb953 719 - cache attr for resultsets
074a366d 720 - PK::Auto::* no longer required since Storage::DBI::* handle auto-inc
0e35aa05 721 - minor tweak to tests for join edge case
722 - added cascade_copy relationship attribute
723 (sponsored by Airspace Software, http://www.airspace.co.uk/)
724 - clean up set_from_related
725 - made copy() automatically null out auto-inc columns
62cb84ec 726 - added txn_do() method to Schema, which allows a coderef to be
727 executed atomically
70ecd5a1 728
975c65b5 7290.05007 2006-02-24 00:59:00
971c0085 730 - tweak to Componentised for Class::C3 0.11
731 - fixes for auto-inc under MSSQL
732
f8d97a01 7330.05006 2006-02-17 15:32:40
734 - storage fix for fork() and workaround for Apache::DBI
fc27a867 735 - made update(\%hash) work on row as well as rs
d3231653 736 - another fix for count with scalar group_by
737 - remove dependency on Module::Find in 40resultsetmanager.t (RT #17598)
4834d8ac 738
d0bb3812 7390.05005 2006-02-13 21:24:51
740 - remove build dependency on version.pm
741
dec2517f 7420.05004 2006-02-13 20:59:00
002a359a 743 - allow specification of related columns via cols attr when primary
f3b05bad 744 keys of the related table are not fetched
745 - fix count for group_by as scalar
f66596f9 746 - add horrific fix to make Oracle's retarded limit syntax work
3b24f6ea 747 - remove Carp require
60283c2e 748 - changed UUIDColumns to use new UUIDMaker classes for uuid creation
749 using whatever module may be available
f66596f9 750
85b4a1c5 7510.05003 2006-02-08 17:50:20
752 - add component_class accessors and use them for *_class
753 - small fixes to Serialize and ResultSetManager
85b4a1c5 754 - rollback on disconnect, and disconnect on DESTROY
85b4a1c5 755
cc6504dc 7560.05002 2006-02-06 12:12:03
757 - Added recommends for Class::Inspector
fac560c2 758 - Added skip_all to t/40resultsetmanager.t if no Class::Inspector
759 available
cc6504dc 760
7610.05001 2006-02-05 15:28:10
6ee299bf 762 - debug output now prints NULL for undef params
887ce227 763 - multi-step prefetch along the same rel (e.g. for trees) now works
489709af 764 - added multi-join (join => [ 'foo', 'foo' ]), aliases second to foo_2
5ec6bc2e 765 - hack PK::Auto::Pg for "table" names referencing a schema
766 - find() with attributes works
5ac6a044 767 - added experimental Serialize and ResultSetManager components
19345968 768 - added code attribute recording to DBIx::Class
5ac6a044 769 - fix to find() for complex resultsets
770 - added of $storage->debugcb(sub { ... })
771 - added $source->resultset_attributes accessor
772 - added include_columns rs attr
773
fc69fea6 7740.05000 2006-02-01 16:48:30
775 - assorted doc fixes
602afcfa 776 - remove ObjectCache, not yet working in 0.05
777 - let many_to_many rels have attrs
778 - fix ID method in PK.pm to be saner for new internals
132f3b89 779 - fix t/30dbicplain.t to use ::Schema instead of
780 Catalyst::Model::DBIC::Plain
cd67f809 781
7a1fe534 7820.04999_06 2006-01-28 21:20:32
de5e2fe9 783 - fix Storage/DBI (tried to load deprecated ::Exception component)
784
7850.04999_05 2006-01-28 20:13:52
00018e9d 786 - count will now work for grouped resultsets
787 - added accessor => option to column_info to specify accessor name
a37a4697 788 - added $schema->populate to load test data (similar to AR fixtures)
5e8b1b2a 789 - removed cdbi-t dependencies, only run tests if installed
790 - Removed DBIx::Class::Exception
791 - unified throw_exception stuff, using Carp::Clan
792 - report query when sth generation fails.
a14d1055 793 - multi-step prefetch!
794 - inheritance fixes
795 - test tweaks
796
09aeebca 7970.04999_04 2006-01-24 21:48:21
798 - more documentation improvements
fac560c2 799 - add columns_info_for for vendor-specific column info (Zbigniew
800 Lukasiak)
801 - add SQL::Translator::Producer for DBIx::Class table classes (Jess
802 Robinson)
09aeebca 803 - add unique constraint declaration (Daniel Westermann-Clark)
804 - add new update_or_create method (Daniel Westermann-Clark)
e46a66f2 805 - rename ResultSetInstance class to ResultSetProxy, ResultSourceInstance
806 to ResultSourceProxy, and TableInstance to ResultSourceProxy::Table
09aeebca 807 - minor fixes to UUIDColumns
6565b410 808 - add debugfh method and ENV magic for tracing SQL (Nigel Metheringham)
09aeebca 809
151fc9ad 8100.04999_03 2006-01-20 06:05:27
09aeebca 811 - imported Jess Robinson's SQL::Translator::Parser::DBIx::Class
fac560c2 812 - lots of internals cleanup to eliminate result_source_instance
813 requirement
8bfc3d48 814 - added register_column and register_relationship class APIs
815 - made Storage::DBI use prepare_cached safely (thanks to Tim Bunce)
816 - many documentation improvements (thanks guys!)
fac560c2 817 - added ->connection, ->connect, ->register_source and ->clone schema
818 methods
5e8b1b2a 819 - Use croak instead of die for user errors.
8bfc3d48 820
9ce9ec10 8210.04999_02 2006-01-14 07:17:35
822 - Schema is now self-contained; no requirement for co-operation
823 - add_relationship, relationships, relationship_info, has_relationship
824 - relationship handling on ResultSource
825 - all table handling now in Table.pm / ResultSource.pm
475978db 826 - added GROUP BY and DISTINCT support
827 - hacked around SQL::Abstract::Limit some more in DBIC::SQL::Abstract
828 (this may have fixed complex quoting)
829 - moved inflation to inflate_result in Row.pm
830 - added $rs->search_related
831 - split compose_namespace out of compose_connection in Schema
fea3d045 832 - ResultSet now handles find
833 - various *_related methods are now ->search_related->*
834 - added new_result to ResultSet
475978db 835
82b1cd1f 8360.04999_01 2005-12-27 03:33:42
837 - search and related methods moved to ResultSet
838 - select and as added to ResultSet attrs
839 - added DBIx::Class::Table and TableInstance for table-per-class
840 - added DBIx::Class::ResultSetInstance which handles proxying
841 search etc. as a superclass of DBIx::Class::DB
842 - assorted test and code cleanup work
843
de5d1955 8440.04001 2005-12-13 22:00:00
47bd0267 845 - Fix so set_inflated_column calls set_column
de5d1955 846 - Syntax errors in relationship classes are now reported
c2074366 847 - Better error detection in set_primary_key and columns methods
848 - Documentation improvements
849 - Better transaction support with txn_* methods
850 - belongs_to now works when $cond is a string
851 - PK::Auto::Pg updated, only tries primary keys instead of all cols
47bd0267 852
8530.04 2005-11-26
484c9dda 854 - Moved get_simple and set_simple into AccessorGroup
855 - Made 'new' die if given invalid columns
103647d5 856 - Added has_column and column_info to Table.pm
857 - Refactored away from direct use of _columns and _primaries
47bd0267 858 - Switched from NEXT to Class::C3
484c9dda 859
2441e56f 8600.03004
861 - Added an || '' to the CDBICompat stringify to avoid null warnings
5e8b1b2a 862 - Updated name section for manual pods
3b44ccc6 8630.03003 2005-11-03 17:00:00
864 - POD fixes.
865 - Changed use to require in Relationship/Base to avoid import.
866
8670.03002 2005-10-20 22:35:00
868 - Minor bugfix to new (Row.pm)
869 - Schema doesn't die if it can't load a class (Schema.pm)
870 - New UUID columns plugin (UUIDColumns.pm)
871 - Documentation improvements.
872
8730.03001 2005-09-23 14:00:00
874 - Fixes to relationship helpers
875 - IMPORTANT: prefetch/schema combination bug fix
876
8770.03 2005-09-19 19:35:00
878 - Paging support
879 - Join support on search
880 - Prefetch support on search
881
8820.02 2005-08-12 18:00:00
883 - Test fixes.
884 - Performance improvements.
885 - Oracle primary key support.
886 - MS-SQL primary key support.
887 - SQL::Abstract::Limit integration for database-agnostic limiting.
888
8890.01 2005-08-08 17:10:00
890 - initial release
fac560c2 891