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