clean up calling convention
[scpubgit/Q-Branch.git] / lib / SQL / Abstract / ExtraClauses.pm
index e29aea3..c055b8b 100644 (file)
@@ -92,7 +92,7 @@ sub register_defaults {
 
   foreach my $setop (qw(union intersect except)) {
     $self->renderer($setop => sub {
-      my ($self, $args) = @_;
+      my ($self, undef, $args) = @_;
       $self->join_clauses(
         ' '.$self->format_keyword(join '_', $setop, ($args->{type}||())).' ',
         map [ $self->render_aqt($_) ], @{$args->{queries}}
@@ -138,10 +138,10 @@ sub register_defaults {
   $self->clause_expander('select.with_recursive' => sub {
     my ($self, $with) = @_;
     my $exp = $self->$with_expander($with);
-    return +{
+    return +(with => +{
       %$exp,
       type => 'recursive'
-    };
+    });
   });
   $self->clause_renderer('select.with' => sub {
     my ($self, $with) = @_;
@@ -155,10 +155,9 @@ sub register_defaults {
         ) ]
       } @{$with->{queries}}
     ) ];
-    return $self->join_clauses('',
-      [ $self->format_keyword(join '_', 'with', ($with->{type}||'')).' (' ],
+    return $self->join_clauses(' ',
+      [ $self->format_keyword(join '_', 'with', ($with->{type}||'')) ],
       $q_part,
-      [ ')' ],
     );
   });
 
@@ -220,12 +219,12 @@ sub _expand_join {
 }
 
 sub _render_from_list {
-  my ($self, $list) = @_;
+  my ($self, undef, $list) = @_;
   return $self->join_clauses(', ', map [ $self->render_aqt($_) ], @$list);
 }
 
 sub _render_join {
-  my ($self, $args) = @_;
+  my ($self, undef, $args) = @_;
 
   my @parts = (
     [ $self->render_aqt($args->{from}) ],
@@ -253,7 +252,7 @@ sub _expand_op_as {
 }
 
 sub _render_as {
-  my ($self, $args) = @_;
+  my ($self, undef, $args) = @_;
   my ($thing, @alias) = @$args;
   return $self->join_clauses(
     ' ',
@@ -280,4 +279,9 @@ sub _render_alias {
   );
 }
 
+sub _expand_update_clause_target {
+  my ($self, $target) = @_;
+  +(target => $self->_expand_from_list(undef, $target));
+}
+
 1;