import cleanups
[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_order { qw(limit offset) }
8
9 sub _render_slice {
10   my ($self, $dq) = @_;
11   my $basic = $self->_render($dq->{from});
12   return [
13     $basic->[0], # SELECT keyword
14     (map +(
15       $dq->{$_}
16         ? ($self->_format_keyword($handle{$_}), $self->_render($dq->{$_}))
17         : ()
18       ), $self->_slice_order
19     ),
20     @{$basic}[1..$#$basic]
21   ];
22 };
23
24 1;