X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FAbstract%2FExtraClauses.pm;h=73e7073a3476a623be22496929b02f84674b7295;hb=a3040091c492c3fca3e8d22b4192572858f7ccf8;hp=a6328963785f6ddd52fe1a717bcec0f2eadb3c12;hpb=a867b2dfb0f51b31546cbf74e886b3d4ebe00c6f;p=scpubgit%2FQ-Branch.git diff --git a/lib/SQL/Abstract/ExtraClauses.pm b/lib/SQL/Abstract/ExtraClauses.pm index a632896..73e7073 100644 --- a/lib/SQL/Abstract/ExtraClauses.pm +++ b/lib/SQL/Abstract/ExtraClauses.pm @@ -4,13 +4,12 @@ use strict; use warnings; use if $] < '5.010', 'MRO::Compat'; use mro 'c3'; -use base qw(SQL::Abstract::Clauses); +use base qw(SQL::Abstract); BEGIN { *puke = \&SQL::Abstract::puke } -sub register_defaults { - my $self = shift; - $self->next::method(@_); +sub new { + my $self = shift->next::method(@_); my @clauses = $self->clauses_of('select'); my @before_setop; CLAUSE: foreach my $idx (0..$#clauses) { @@ -177,6 +176,7 @@ sub register_defaults { $self->clause_renderer("${stmt}.with", $with_renderer); } $self->expander(cast => sub { + return { -func => [ cast => $_[2] ] } if ref($_[2]) eq 'HASH'; my ($cast, $to) = @{$_[2]}; +{ -func => [ cast => { -as => [ $self->expand_expr($cast),