[Dbix-class] [ANNOUNCE] A much faster DBIx::Class public trial round two - v0.08241

Wolfgang Kinkeldei wolfgang at kinkeldei.de
Wed Feb 20 13:44:56 GMT 2013


Hi,

I found one query in a current project that fails under 0.08241 but worked until 0.08208 (0.08240 left untested).

my join/columns combinations of do no longer work in combination with Hashref-inflation. A minimal query that triggers the message looks like:

    $schema->resultset('Subelement')
           ->search(
                {
                    'me.element_id' => { -in => [40000 .. 40010] },
                },
                {
                    join => [
                        { element => 'concept' },
                    ],
                    columns => [
                        qw(me.subelement_id me.foldername concept.concept_id concept.foldername)
                    ],
                })
           ->as_hashref
           ->all

there are 'belongs_to' relations existing: 'subelement' -> 'element' -> 'concept'. However, there is no relationship between 'subelement' and 'concept' as assumed by the Hashref-Inflator.

The error message reported reads:

"DBIx::Class::ResultSet::all(): Inflation into non-existent relationship 'concept' of 'Subelement' requested, check the inflation specification (columns/as) ending in '...concept.concept_id' "


Am 20.02.2013 um 12:31 schrieb Peter Rabbitson:

> Greetings
> 
> Another release of the experimental constructor rewrite just hit CPAN.
> Please grab and test 0.08241-TRIAL from our nearest mirror [1]. You
> can install the release in question by simply executing:
> 
>  cpan R/RI/RIBASUSHI/DBIx-Class-0.08241-TRIAL.tar.gz
> 
> or
> 
>  cpanm http://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI/DBIx-Class-0.08241-TRIAL.tar.gz
> 
> If the previous experimental release 0.08240 worked for you without
> any glitches - the same should be true for 0.08241. If you have not yet
> tested - PLEASE DO SO. If the release team does not hear anything within
> a couple of weeks this will become the official 0.08250, and you will get
> little sympathy if it ends up breaking your production afterwards ;)
> 
> A minimal amount of changes, mostly dealing with providing even more
> compatibility with existing codebases. The notable change as described
> in the commit message of 52864fbd [2]
> 
>    . . . we no longer take an educated guess when to prune.
>    Instead we mark each null-branch by simply blessing its containing
>    arrayref. This allows us to keep the arguments to inflate_result 100%
>    backwards compatible, while at the same time allowing "enlightened"
>    inflate_result implementations to skip over the dead branches with
>    minimal effort.
> 
>    Both ::Row::inflate_result and ::HRI::inflate_result were adjusted to
>    react correctly to these marks. As a result the HRI folder gained
>    another 5% speedup (unless sidestepped by the direct-to-HRI code, which
>    is naturally much much more efficient).
> 
> Cheers and thanks for testing!
> 
> [1] https://metacpan.org/release/RIBASUSHI/DBIx-Class-0.08241-TRIAL
> [2] https://github.com/dbsrgits/dbix-class/commit/52864fbd
> 
> 
> _______________________________________________
> List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
> IRC: irc.perl.org#dbix-class
> SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
> Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk


Grüße,

Wolfgang Kinkeldei

-- 

' /\_/\ ' .print[split??,"".(($/=q|Cms)+-03467:;<=|)=~tr!C-z -B! -z!)x
'( o.o )' .$/]->[hex]foreach split qr<>,qq+1ecd039ad65b025b8063475b+||
' > ^ < ' .q<!-- Wolfgang Kinkeldei - wolfgang at kinkeldei dot de -->




More information about the DBIx-Class mailing list