[Bast-commits] r4617 - SQL-Abstract/1.x/branches/cleanup

matthewt at dev.catalyst.perl.org matthewt at dev.catalyst.perl.org
Fri Jul 25 01:07:46 BST 2008


Author: matthewt
Date: 2008-07-25 01:07:45 +0100 (Fri, 25 Jul 2008)
New Revision: 4617

Modified:
   SQL-Abstract/1.x/branches/cleanup/e.pl
Log:
tweak syntax sketch

Modified: SQL-Abstract/1.x/branches/cleanup/e.pl
===================================================================
--- SQL-Abstract/1.x/branches/cleanup/e.pl	2008-07-24 23:49:26 UTC (rev 4616)
+++ SQL-Abstract/1.x/branches/cleanup/e.pl	2008-07-25 00:07:45 UTC (rev 4617)
@@ -67,6 +67,7 @@
 sub expr (&) { _run_e(@_) }
 sub _do {
   my ($name, $code, @in) = @_;
+  warn "eek: ${\dump @in}" if @in > 1;
   [ $name, _run_e($code), @in ];
 }
 sub _dolist {
@@ -80,7 +81,7 @@
 }
 sub ORDER_BY (&;@) { _do(-order_by, @_) }
 sub SELECT (&;@) { _dolist('-select', @_); }
-sub JOIN (&;@) { _do('-join', _aliasify @_) }
+sub JOIN (&;@) { _do('-join', shift, [ -list => _aliasify @{+shift} ], @_) }
 sub WHERE (&;@) { _do(-where, @_) }
 sub GROUP_BY (&;@) { _dolist(-group_by, @_); }
 sub sum { E->new([ -sum, _une(shift) ]); }
@@ -90,15 +91,17 @@
   ORDER_BY { $_->aggregates->total }
     SELECT { $_->users->name, $_->aggregates->total }
       JOIN { $_->users->id == $_->aggregates->recipient_id }
-        [ users => expr { $_->users } ],
-        [ aggregates =>
-            expr {
-                SELECT { $_->recipient_id, [ total => sum($_->commission) ] }
-                 WHERE { sum($_->commission) > 500 }
-              GROUP_BY { $_->recipient_id }
-                 WHERE { $_->entry_date > '2007-01-01' }
-                  expr { $_->commissions }
+        [
+          [ users => expr { $_->users } ],
+          [ aggregates =>
+              expr {
+                  SELECT { $_->recipient_id, [ total => sum($_->commission) ] }
+                   WHERE { sum($_->commission) > 500 }
+                GROUP_BY { $_->recipient_id }
+                   WHERE { $_->entry_date > '2007-01-01' }
+                    expr { $_->commissions }
             }
+          ]
         ]
 );
 
@@ -106,15 +109,17 @@
   ORDER_BY { $_->aggregates->total }
     SELECT { $_->users->name, $_->aggregates->total }
       JOIN { $_->users->id == $_->aggregates->recipient_id }
-        [ users => expr { $_->users  } ],
-        [ aggregates =>
-            expr {
-                SELECT { $_->recipient_id, [ total => sum($_->commission) ] }
-                 WHERE { sum($_->commission) > 500 }
-              GROUP_BY { $_->recipient_id }
-                 WHERE { $_->entry_date > '2007-01-01' }
-                  expr { $_->commissions }
-            }
+        [
+          [ users => expr { $_->users  } ],
+          [ aggregates =>
+              expr {
+                  SELECT { $_->recipient_id, [ total => sum($_->commission) ] }
+                   WHERE { sum($_->commission) > 500 }
+                GROUP_BY { $_->recipient_id }
+                   WHERE { $_->entry_date > '2007-01-01' }
+                    expr { $_->commissions }
+              }
+          ]
         ]
 );
 
@@ -123,13 +128,15 @@
     SELECT { $_->users->name, $_->aggregates->total }
      WHERE { $_->aggregates->total > 500 }
       JOIN { $_->users->id == $_->aggregates->recipient_id }
-        [ users => expr { $_->users  } ],
-        [ aggregates =>
-            expr {
-                SELECT { $_->recipient_id, [ total => sum($_->commission) ] }
-              GROUP_BY { $_->recipient_id }
-                 WHERE { $_->entry_date > '2007-01-01' }
-                  expr { $_->commissions }
-            }
+        [
+          [ users => expr { $_->users  } ],
+          [ aggregates =>
+              expr {
+                  SELECT { $_->recipient_id, [ total => sum($_->commission) ] }
+                GROUP_BY { $_->recipient_id }
+                   WHERE { $_->entry_date > '2007-01-01' }
+                    expr { $_->commissions }
+              }
+          ]
         ]
 );




More information about the Bast-commits mailing list