fix expr.include to generate alias nodes correctly
[dbsrgits/Data-Query.git] / lib / Data / Query / Renderer / SQL / Slice / GenericSubQ.pm
index 92379af..f912f61 100644 (file)
@@ -129,7 +129,11 @@ sub _render_slice {
     where => {
       type => DQ_OPERATOR,
       operator => {
-        'SQL.Naive' => $dq->{offset} ? 'BETWEEN' : '<'
+        'SQL.Naive' => (
+          $dq->{offset}
+            ? 'BETWEEN'
+            : $order_nodes[0]{reverse} ? '>' : '<'
+        ),
       },
       args => [
         {
@@ -159,7 +163,9 @@ sub _render_slice {
             },
             where => {
               type => DQ_OPERATOR,
-              operator => { 'SQL.Naive' => '<' },
+              operator => {
+                'SQL.Naive' => $order_nodes[0]{reverse} ? '>' : '<'
+              },
               args => [
                 map +{
                   type => DQ_IDENTIFIER,
@@ -172,8 +178,14 @@ sub _render_slice {
             }
           },
         },
-        $dq->{limit},
-        ($dq->{offset} ? ($dq->{offset} : ())),
+        ($dq->{offset}
+           ? ($dq->{offset},
+               { %{$dq->{limit}},
+                 value => $dq->{offset}{value} + $dq->{limit}{value} - 1
+               }
+             )
+           : ($dq->{limit})
+        ),
       ]
     },
   };