add slice stability requirement code
Matt S Trout [Mon, 15 Oct 2012 21:20:02 +0000 (21:20 +0000)]
lib/Data/Query/Renderer/SQL/Slice/FetchFirst.pm
lib/Data/Query/Renderer/SQL/Slice/FirstSkip.pm
lib/Data/Query/Renderer/SQL/Slice/GenericSubquery.pm
lib/Data/Query/Renderer/SQL/Slice/LimitOffset.pm
lib/Data/Query/Renderer/SQL/Slice/RowNum.pm
lib/Data/Query/Renderer/SQL/Slice/RowNumberOver.pm

index 1af7f78..466258b 100644 (file)
@@ -15,6 +15,10 @@ sub _render_slice_limit {
   ];
 }
 
+sub slice_stability {
+  (offset => 'requires');
+}
+
 sub _slice_type { 'FetchFirst' }
 
 sub _render_slice {
index 2e966e4..7cd5534 100644 (file)
@@ -4,6 +4,8 @@ use Moo::Role;
 
 my %handle = (limit => 'FIRST', offset => 'SKIP');
 
+sub slice_stability { }
+
 sub _slice_order { qw(limit offset) }
 
 sub _render_slice {
index 4caeabf..67b7b93 100644 (file)
@@ -5,6 +5,10 @@ use Moo::Role;
 
 with 'Data::Query::Renderer::SQL::Slice::SubqueryRemap';
 
+sub slice_stability {
+  (limit => 'requires', offset => 'requires');
+}
+
 sub _render_slice {
   my ($self, $dq) = @_;
   die "Slice's inner is not a Select"
index 54ef3f7..71b5cf2 100644 (file)
@@ -2,6 +2,8 @@ package Data::Query::Renderer::SQL::Slice::LimitOffset;
 
 use Moo::Role;
 
+sub slice_stability { }
+
 sub _render_slice {
   my ($self, $dq) = @_;
   [ ($dq->{from} ? $self->_render($dq->{from}) : ()),
index 7b90fcf..9d05e61 100644 (file)
@@ -5,6 +5,10 @@ use Moo::Role;
 
 with 'Data::Query::Renderer::SQL::Slice::SubqueryRemap';
 
+sub slice_stability {
+  (offset => 'check');
+}
+
 sub _render_slice {
   my ($self, $dq) = @_;
   die "Slice's inner is not a Select"
index c3f6764..47b65bc 100644 (file)
@@ -6,6 +6,8 @@ use Moo::Role;
 
 with 'Data::Query::Renderer::SQL::Slice::SubqueryRemap';
 
+sub slice_stability { }
+
 sub _render_slice {
   my ($self, $dq) = @_;
   die "Slice's inner is not a Select"