From: Matt S Trout Date: Mon, 15 Apr 2019 00:38:07 +0000 (+0000) Subject: move to default registration X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=b4546197606e6701074a60a7cb7548546f795999;p=scpubgit%2FQ-Branch.git move to default registration --- diff --git a/lib/SQL/Abstract/Clauses.pm b/lib/SQL/Abstract/Clauses.pm index 07d1264..bbe6eb9 100644 --- a/lib/SQL/Abstract/Clauses.pm +++ b/lib/SQL/Abstract/Clauses.pm @@ -283,7 +283,7 @@ sub expander { shift->_ext_rw(expand => @_) } sub op_expander { shift->_ext_rw(expand_op => @_) } sub renderer { shift->_ext_rw(render => @_) } sub op_renderer { shift->_ext_rw(expand_op => @_) } -sub clause_expander { shift->_ext_rw(expand_cluse => @_) } +sub clause_expander { shift->_ext_rw(expand_clause => @_) } sub clause_renderer { shift->_ext_rw(render_clause => @_) } sub clauses_of { diff --git a/lib/SQL/Abstract/ExtraClauses.pm b/lib/SQL/Abstract/ExtraClauses.pm index 47f8607..9436b13 100644 --- a/lib/SQL/Abstract/ExtraClauses.pm +++ b/lib/SQL/Abstract/ExtraClauses.pm @@ -8,38 +8,38 @@ use base qw(SQL::Abstract::Clauses); BEGIN { *puke = \&SQL::Abstract::puke } -sub new { - my ($proto, @args) = @_; - my $new = $proto->next::method(@args); - $new->{clauses_of}{select} = [ - @{$new->{clauses_of}{select}}, qw(group_by having) - ]; - $new->{expand_clause}{'select.group_by'} = sub { +sub register_defaults { + my $self = shift; + $self->next::method(@_); + $self->clauses_of( + select => $self->clauses_of('select'), qw(group_by having) + ); + $self->clause_expander('select.group_by', sub { $_[0]->_expand_maybe_list_expr($_[1], -ident) - }; - $new->{expand_clause}{'select.having'} = sub { + }); + $self->clause_expander('select.having', sub { $_[0]->expand_expr($_[1]) - }; - $new->{expand}{from_list} = '_expand_from_list'; - $new->{render}{from_list} = '_render_from_list'; - $new->{expand}{join} = '_expand_join'; - $new->{render}{join} = '_render_join'; - $new->{expand_op}{as} = '_expand_op_as'; - $new->{expand}{as} = '_expand_op_as'; - $new->{render}{as} = '_render_as'; - splice(@{$new->{clauses_of}{update}}, 2, 0, 'from'); - splice(@{$new->{clauses_of}{delete}}, 1, 0, 'using'); - $new->{expand_clause}{'update.from'} = '_expand_select_clause_from'; - $new->{expand_clause}{'delete.using'} = sub { + }); + $self->{expand}{from_list} = '_expand_from_list'; + $self->{render}{from_list} = '_render_from_list'; + $self->{expand}{join} = '_expand_join'; + $self->{render}{join} = '_render_join'; + $self->{expand_op}{as} = '_expand_op_as'; + $self->{expand}{as} = '_expand_op_as'; + $self->{render}{as} = '_render_as'; + splice(@{$self->{clauses_of}{update}}, 2, 0, 'from'); + splice(@{$self->{clauses_of}{delete}}, 1, 0, 'using'); + $self->{expand_clause}{'update.from'} = '_expand_select_clause_from'; + $self->{expand_clause}{'delete.using'} = sub { +(using => $_[0]->_expand_from_list(undef, $_[1])); }; - $new->{expand_clause}{'insert.rowvalues'} = sub { + $self->{expand_clause}{'insert.rowvalues'} = sub { (from => $_[0]->expand_expr({ -values => $_[1] })); }; - $new->{expand_clause}{'insert.select'} = sub { + $self->{expand_clause}{'insert.select'} = sub { (from => $_[0]->expand_expr({ -select => $_[1] })); }; - return $new; + return $self; } sub _expand_select_clause_from {