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