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