add slice stability requirement code
[dbsrgits/Data-Query.git] / lib / Data / Query / Renderer / SQL / Slice / FirstSkip.pm
1 package Data::Query::Renderer::SQL::Slice::FirstSkip;
2
3 use Moo::Role;
4
5 my %handle = (limit => 'FIRST', offset => 'SKIP');
6
7 sub slice_stability { }
8
9 sub _slice_order { qw(limit offset) }
10
11 sub _render_slice {
12   my ($self, $dq) = @_;
13   my $basic = $self->_render($dq->{from});
14   return [
15     $basic->[0], # SELECT keyword
16     (map +(
17       $dq->{$_}
18         ? ($self->_format_keyword($handle{$_}), $self->_render($dq->{$_}))
19         : ()
20       ), $self->_slice_order
21     ),
22     @{$basic}[1..$#$basic]
23   ];
24 };
25
26 1;