Commit | Line | Data |
623b3897 |
1 | package Data::Query::Renderer::SQL::Slice::FirstSkip; |
2 | |
3 | use Moo::Role; |
4 | use Data::Query::Constants qw(DQ_SLICE); |
5 | |
119e511b |
6 | my %handle = (limit => 'FIRST', offset => 'SKIP'); |
7 | |
8 | sub _slice_order { qw(limit offset) } |
9 | |
623b3897 |
10 | sub _render_slice { |
11 | my ($self, $dq) = @_; |
12 | my $basic = $self->_render($dq->{from}); |
13 | return [ |
14 | $basic->[0], # SELECT keyword |
119e511b |
15 | (map +( |
16 | $dq->{$_} |
17 | ? ($self->_format_keyword($handle{$_}), $self->_render($dq->{$_})) |
18 | : () |
19 | ), $self->_slice_order |
623b3897 |
20 | ), |
21 | @{$basic}[1..$#$basic] |
22 | ]; |
23 | }; |
24 | |
25 | 1; |