don't negate undef in Slice/FetchFirst
[dbsrgits/Data-Query.git] / lib / Data / Query / Renderer / SQL / Slice / FetchFirst.pm
index 1af7f78..f2741d6 100644 (file)
@@ -15,6 +15,10 @@ sub _render_slice_limit {
   ];
 }
 
+sub slice_stability {
+  (offset => 'requires');
+}
+
 sub _slice_type { 'FetchFirst' }
 
 sub _render_slice {
@@ -49,7 +53,7 @@ sub _render_slice {
         ? Select(
           \@outside_select_list,
           compose {
-            Order($b->{by}, $b->{reverse}, $a)
+            Order($b->{by}, $b->{reverse}, $b->{nulls}, $a)
           } (
             @outside_order,
             Alias($default_inside_alias, $_)
@@ -68,7 +72,7 @@ sub _render_slice {
               : (),
           ],
           compose {
-            Order($b->{by}, !$b->{reverse}, $a)
+            Order($b->{by}, !$b->{reverse}, -($b->{nulls}||0), $a)
           } (
             @outside_order,
             Alias(
@@ -78,7 +82,7 @@ sub _render_slice {
                 Select(
                   \@inside_select_list,
                   compose {
-                    Order($b->{by}, $b->{reverse}, $a)
+                    Order($b->{by}, $b->{reverse}, $b->{nulls}, $a)
                   } @inside_order, $inner_body
                 )
               )