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