first cut at GenericSubquery
[dbsrgits/Data-Query.git] / t / expr.include
index beaff7c..7215502 100644 (file)
@@ -1,9 +1,7 @@
 use strictures 1;
 use Data::Query::ExprBuilder::Identifier;
-use Data::Query::Constants qw(
-  DQ_SELECT DQ_IDENTIFIER DQ_OPERATOR DQ_VALUE DQ_ALIAS
-);
-use Data::Query::ExprHelpers qw(perl_scalar_value identifier);
+use Data::Query::ExprHelpers;
+use Data::Query::Constants;
 
 sub expr (&) {
   _run_expr($_[0])->{expr};
@@ -11,7 +9,7 @@ sub expr (&) {
 
 sub _run_expr {
   local $_ = Data::Query::ExprBuilder::Identifier->new({
-    expr => identifier()
+    expr => Identifier(),
   });
   $_[0]->();
 }
@@ -32,21 +30,13 @@ sub SELECT (&;@) {
     my $e = shift @select;
     push @final,
       (ref($select[0]) eq 'LIES::AS'
-        ? +{
-             type => DQ_ALIAS,
-             alias => $e->{expr},
-             as => ${shift(@select)}
-          }
+        ? Alias(${shift(@select)}, $e->{expr})
         : $e->{expr}
      );
   }
       
   return +{
-    expr => {
-      type => DQ_SELECT,
-      select => \@final
-    },
-    @_ ? (from => $_[0]->{expr}) : ()
+    expr => Select(\@final, ($_[0]||{})->{expr})
   };
 }
 
@@ -56,11 +46,7 @@ sub FROM (&;@) {
   my @from = _run_expr(shift);
   if (@from == 2 and ref($from[1]) eq 'LIES::AS') {
     return +{
-      expr => {
-        type => DQ_ALIAS,
-        source => $from[0],
-        alias => identifier(${$from[1]}),
-      }
+      expr => Alias(${$from[1]}, $from[0])
     };
   } elsif (@from == 1) {
     return { expr => $from[0] };