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) {
for qw(with with_recursive);
$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),
+ $self->expand_expr($to, -ident),
+ ] } ] };
+ });
return $self;
}