Skip to content

Commit 8d15521

Browse files
committed
sampler: Call correct query parse function
The adapter's query sampler thread is invoking the *test* version of the `parse_query()` function. Instead, we need to call `parse_query_with_config()` and pass the adapter's `ParsingPreset`. Fixes: REA-5960 Change-Id: I82fa69d477d796cf4e70a799a3b27a5f7873b4bd Reviewed-on: https://gerrit.readyset.name/c/readyset/+/10283 Reviewed-by: Michael Zink <michael.z@readyset.io> Tested-by: Buildkite CI
1 parent 59e245b commit 8d15521

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

readyset-adapter/src/sampler.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ use readyset_sql::{
6969
ast::{Relation, SqlIdentifier, SqlQuery},
7070
Dialect,
7171
};
72-
use readyset_sql_parsing::parse_query;
72+
use readyset_sql_parsing::{parse_query_with_config, ParsingPreset};
7373
use readyset_sql_passes::adapter_rewrites::AdapterRewriteParams;
7474
use readyset_util::{
7575
logging::{rate_limit, SAMPLER_LOG_SAMPLER},
@@ -138,6 +138,7 @@ pub struct Sampler {
138138
upstream_conn: Option<DatabaseConnection>,
139139
upstream_config: UpstreamConfig,
140140
parse_dialect: Dialect,
141+
parsing_preset: ParsingPreset,
141142
shutdown_recv: ShutdownReceiver,
142143
last_executed_at: Option<std::time::Instant>,
143144
retry_queue: VecDeque<(TokioInstant, Entry)>,
@@ -177,6 +178,7 @@ pub async fn sampler_builder(
177178
options: DeploymentMode,
178179
readers: Readers,
179180
parse_dialect: Dialect,
181+
parsing_preset: ParsingPreset,
180182
expr_dialect: readyset_data::Dialect,
181183
shutdown_rx: ShutdownReceiver,
182184
) -> (
@@ -232,6 +234,7 @@ pub async fn sampler_builder(
232234
upstream_conn,
233235
upstream_config,
234236
parse_dialect,
237+
parsing_preset,
235238
shutdown_rx.clone(),
236239
global_sampler_rx,
237240
);
@@ -300,7 +303,11 @@ impl Sampler {
300303
}) {
301304
s
302305
} else {
303-
match parse_query(self.parse_dialect, q) {
306+
match parse_query_with_config(
307+
self.parsing_preset.into_config(),
308+
self.parse_dialect,
309+
q,
310+
) {
304311
Ok(SqlQuery::Select(stmt)) => stmt,
305312
_ => return Err(ReadySetError::UnparseableQuery(q.clone())),
306313
}
@@ -540,12 +547,14 @@ impl Sampler {
540547
}
541548
}
542549

550+
#[allow(clippy::too_many_arguments)]
543551
pub fn new(
544552
config: SamplerConfig,
545553
noria: NoriaConnector,
546554
upstream_conn: Option<DatabaseConnection>,
547555
upstream_config: UpstreamConfig,
548556
parse_dialect: Dialect,
557+
parsing_preset: ParsingPreset,
549558
shutdown_recv: ShutdownReceiver,
550559
rx: Receiver<(QueryExecutionEvent, String)>,
551560
) -> Self {
@@ -556,6 +565,7 @@ impl Sampler {
556565
upstream_conn,
557566
upstream_config,
558567
parse_dialect,
568+
parsing_preset,
559569
shutdown_recv,
560570
last_executed_at: None,
561571
retry_queue: VecDeque::new(),

readyset/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1270,6 +1270,7 @@ where
12701270
options.deployment_mode,
12711271
readers.clone(),
12721272
parse_dialect,
1273+
parsing_preset,
12731274
expr_dialect,
12741275
shutdown_rx.clone(),
12751276
));

0 commit comments

Comments
 (0)