@@ -26,7 +26,7 @@ use readyset_errors::{
2626 ReadySetResult ,
2727} ;
2828use readyset_server:: worker:: readers:: { CallResult , ReadRequestHandler } ;
29- use readyset_sql_passes:: adapter_rewrites:: { self , AdapterRewriteParams , ProcessedQueryParams } ;
29+ use readyset_sql_passes:: adapter_rewrites:: { self , ProcessedQueryParams } ;
3030use readyset_util:: redacted:: Sensitive ;
3131use readyset_util:: shared_cache:: { self , LocalCache } ;
3232use tokio:: sync:: RwLock ;
@@ -62,7 +62,9 @@ pub struct NoriaBackendInner {
6262 noria : ReadySetHandle ,
6363 tables : BTreeMap < Relation , Table > ,
6464 views : LocalCache < Relation , View > ,
65- rewrite_params : AdapterRewriteParams ,
65+ /// The server can handle (non-parameterized) LIMITs and (parameterized) OFFSETs in the
66+ /// dataflow graph
67+ server_supports_pagination : bool ,
6668}
6769
6870macro_rules! noria_await {
@@ -78,13 +80,13 @@ impl NoriaBackendInner {
7880 async fn new (
7981 ch : ReadySetHandle ,
8082 views : LocalCache < Relation , View > ,
81- rewrite_params : AdapterRewriteParams ,
83+ server_supports_pagination : bool ,
8284 ) -> Self {
8385 NoriaBackendInner {
8486 tables : BTreeMap :: new ( ) ,
8587 views,
8688 noria : ch,
87- rewrite_params ,
89+ server_supports_pagination ,
8890 }
8991 }
9092
@@ -363,7 +365,7 @@ impl NoriaConnector {
363365 dialect : Dialect ,
364366 parse_dialect : nom_sql:: Dialect ,
365367 schema_search_path : Vec < SqlIdentifier > ,
366- rewrite_params : AdapterRewriteParams ,
368+ server_supports_pagination : bool ,
367369 ) -> Self {
368370 NoriaConnector :: new_with_local_reads (
369371 ch,
@@ -375,7 +377,7 @@ impl NoriaConnector {
375377 dialect,
376378 parse_dialect,
377379 schema_search_path,
378- rewrite_params ,
380+ server_supports_pagination ,
379381 )
380382 . await
381383 }
@@ -391,9 +393,9 @@ impl NoriaConnector {
391393 dialect : Dialect ,
392394 parse_dialect : nom_sql:: Dialect ,
393395 schema_search_path : Vec < SqlIdentifier > ,
394- rewrite_params : AdapterRewriteParams ,
396+ server_supports_pagination : bool ,
395397 ) -> Self {
396- let backend = NoriaBackendInner :: new ( ch, view_cache, rewrite_params ) . await ;
398+ let backend = NoriaBackendInner :: new ( ch, view_cache, server_supports_pagination ) . await ;
397399
398400 NoriaConnector {
399401 inner : NoriaBackend {
@@ -552,15 +554,12 @@ impl NoriaConnector {
552554 . collect ( ) )
553555 }
554556
555- pub ( crate ) fn rewrite_params ( & self ) -> AdapterRewriteParams {
557+ pub ( crate ) fn server_supports_pagination ( & self ) -> bool {
556558 self . inner
557559 . inner
558560 . as_ref ( )
559- . map ( |v| v. rewrite_params )
560- . unwrap_or_else ( || AdapterRewriteParams {
561- server_supports_pagination : false ,
562- server_supports_mixed_comparisons : false ,
563- } )
561+ . map ( |v| v. server_supports_pagination )
562+ . unwrap_or ( false )
564563 }
565564
566565 // TODO(andrew): Allow client to map table names to NodeIndexes without having to query ReadySet
@@ -1416,7 +1415,7 @@ impl NoriaConnector {
14161415
14171416 trace ! ( "select::collapse where-in clauses" ) ;
14181417 let processed_query_params =
1419- adapter_rewrites:: process_query ( & mut statement, self . rewrite_params ( ) ) ?;
1418+ adapter_rewrites:: process_query ( & mut statement, self . server_supports_pagination ( ) ) ?;
14201419
14211420 // check if we already have this query prepared
14221421 trace ! ( "select::access view" ) ;
0 commit comments