[Dbix-class] [ANNOUNCE] A much faster DBIx::Class public trial
round three - v0.08242
Peter Rabbitson
rabbit+dbic at rabbit.us
Sun Mar 10 15:31:39 GMT 2013
Greetings
Yet another release of DBIC featuring the experimental constructor
rewrite just hit CPAN. Please grab and test 0.08242-TRIAL from your
nearest mirror [1]. You can install the release in question by simply
executing:
cpan R/RI/RIBASUSHI/DBIx-Class-0.08242-TRIAL.tar.gz
or
cpanm http://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI/DBIx-Class-0.08242-TRIAL.tar.gz
This version includes a merge of all changes in the stable release
(0.08209), and a lot more. Unlike last time, there is a ton of changes,
mostly filling-in glaring gaps in the new arbitrary selection prefetch
support. It is now possible to correctly limit and group resultsets
regardless of the requested order_by (within reason of course). None of
these changes, however, should be visible to the user (the test suite
did not require any changes, which is always a good sign).
All *reported* concerns raised during the testing of 0.08240 and 0.08241
have been addressed, and more backwards compatibility codepaths have
been put in place. At this point 0.08242 should work indistinguishably
from 0.08209.
*HOWEVER* - due to the amount of changes to the subqueried prefetch
codepath, please make sure you test this release again, even if
0.08240/0.08241 worked for you without a hitch. The possibility that new
bugs have been introduced is not too high, but not low enough for
comfort either.
At this point the dev-team is not aware of any issues, so if no problems
are reported for 10 days or so this may very well ship to CPAN as an
official 0.08250 (non-trial).
And in closing some links to the main highlight of this release: Given a
resultset like [2] (note the batshit insane order_by), we can limit it
as follows [3], and still get precisely the result we expect [4][5]. What
happens behind the scenes [6] may seem heavy, but in fact is rather
performant (and besides is the only way to answer a question so
formulated, utilizing universally valid SQL).
So that should be it for now
Cheers and thanks for testing!
[1] https://metacpan.org/release/RIBASUSHI/DBIx-Class-0.08242-TRIAL
[2] https://github.com/dbsrgits/dbix-class/blob/topic/constructor_rewrite/t/prefetch/o2m_o2m_order_by_with_limit.t#L20
[3] https://github.com/dbsrgits/dbix-class/blob/topic/constructor_rewrite/t/prefetch/o2m_o2m_order_by_with_limit.t#L82
[4] https://github.com/dbsrgits/dbix-class/blob/topic/constructor_rewrite/t/prefetch/o2m_o2m_order_by_with_limit.t#L125
[5] https://github.com/dbsrgits/dbix-class/blob/topic/constructor_rewrite/t/prefetch/o2m_o2m_order_by_with_limit.t#L29
[6] https://github.com/dbsrgits/dbix-class/blob/topic/constructor_rewrite/t/prefetch/o2m_o2m_order_by_with_limit.t#L89
More information about the DBIx-Class
mailing list