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