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