X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FAbstract%2FExtraClauses.pm;h=6d2fcfdd634e77066aa515aefb68b5c22fcc5408;hb=3f312d2ef239a20bc7b339a15383a94d18980b03;hp=98789417de17ae61588a8151c1c7d3cb02412814;hpb=0236f122f73090f9773bae7a6941a286c86ff889;p=scpubgit%2FQ-Branch.git diff --git a/lib/SQL/Abstract/ExtraClauses.pm b/lib/SQL/Abstract/ExtraClauses.pm index 9878941..6d2fcfd 100644 --- a/lib/SQL/Abstract/ExtraClauses.pm +++ b/lib/SQL/Abstract/ExtraClauses.pm @@ -94,7 +94,7 @@ sub register_defaults { my ($self, $setop, $args) = @_; $self->join_query_parts( ' '.$self->format_keyword(join '_', $setop, ($args->{type}||())).' ', - map [ $self->render_aqt($_) ], @{$args->{queries}} + @{$args->{queries}} ); }) for qw(union intersect except); @@ -140,18 +140,18 @@ sub register_defaults { $self->clause_expander('select.with_recursive', $with_expander); $self->clause_renderer('select.with' => sub { my ($self, undef, $with) = @_; - my $q_part = [ $self->join_query_parts(', ', + my $q_part = $self->join_query_parts(', ', map { my ($alias, $query) = @$_; - [ $self->join_query_parts(' ', - [ $self->_render_alias($alias) ], - [ $self->format_keyword('as') ], - [ $self->render_aqt($query) ], - ) ] + $self->join_query_parts(' ', + $self->_render_alias($alias), + $self->format_keyword('as'), + $query, + ) } @{$with->{queries}} - ) ]; + ); return $self->join_query_parts(' ', - [ $self->format_keyword(join '_', 'with', ($with->{type}||'')) ], + $self->format_keyword(join '_', 'with', ($with->{type}||'')), $q_part, ); }); @@ -159,8 +159,6 @@ sub register_defaults { return $self; } -sub format_keyword { $_[0]->_sqlcase(join ' ', split '_', $_[1]) } - sub _expand_select_clause_from { my ($self, undef, $from) = @_; +(from => $self->_expand_from_list(undef, $from)); @@ -215,25 +213,23 @@ sub _expand_join { sub _render_from_list { my ($self, undef, $list) = @_; - return $self->join_query_parts(', ', map [ $self->render_aqt($_) ], @$list); + return $self->join_query_parts(', ', @$list); } sub _render_join { my ($self, undef, $args) = @_; my @parts = ( - [ $self->render_aqt($args->{from}) ], - [ $self->format_keyword(join '_', ($args->{type}||()), 'join') ], - [ $self->render_aqt( - map +($_->{-ident} || $_->{-as} ? $_ : { -row => [ $_ ] }), $args->{to} - ) ], + $args->{from}, + $self->format_keyword(join '_', ($args->{type}||()), 'join'), + (map +($_->{-ident} || $_->{-as} ? $_ : { -row => [ $_ ] }), $args->{to}), ($args->{on} ? ( - [ $self->format_keyword('on') ], - [ $self->render_aqt($args->{on}) ], + $self->format_keyword('on') , + $args->{on}, ) : ()), ($args->{using} ? ( - [ $self->format_keyword('using') ], - [ $self->render_aqt($args->{using}) ], + $self->format_keyword('using'), + $args->{using}, ) : ()), ); return $self->join_query_parts(' ', @parts); @@ -251,9 +247,9 @@ sub _render_as { my ($thing, @alias) = @$args; return $self->join_query_parts( ' ', - [ $self->render_aqt($thing) ], - [ $self->format_keyword('as') ], - [ $self->_render_alias(\@alias) ], + $self->render_aqt($thing), + $self->format_keyword('as'), + $self->_render_alias(\@alias), ); } @@ -262,13 +258,13 @@ sub _render_alias { my ($as, @cols) = @$args; return (@cols ? $self->join_query_parts('', - [ $self->render_aqt($as) ], - [ '(' ], - [ $self->join_query_parts( - ', ', - map [ $self->render_aqt($_) ], @cols - ) ], - [ ')' ], + $as, + '(', + $self->join_query_parts( + ', ', + @cols + ), + ')', ) : $self->render_aqt($as) );