Skip to content

Commit 165d955

Browse files
committed
prepared: Fix consistency bug
The fixed bug is quite severe: any prepared statement would have its consistency set to `One` by default. This is surprising, because `One` hasn't been the default consistency for prepared (or any other kind of) statements in CPP Driver since 2015 (as per the changelog)... Anyway, the CPP Driver's behaviour upon preparing is to set consistency in prepared statements to `UNKNOWN`, which means "use the consistency configured in the exec profile/cluster". This is the behaviour of Rust Driver, too: `PreparedStatement` has no consistency set by default. Thus, the fix is quite simple: we just remove the line that sets consistency to `One` in the `cass_session_prepare_n` function.
1 parent 433dc5b commit 165d955

File tree

1 file changed

+2
-5
lines changed

1 file changed

+2
-5
lines changed

scylla-rust-wrapper/src/session.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ use scylla::client::session::Session;
1919
use scylla::client::session_builder::SessionBuilder;
2020
use scylla::cluster::metadata::ColumnType;
2121
use scylla::errors::ExecutionError;
22-
use scylla::frame::types::Consistency;
2322
use scylla::observability::metrics::MetricsError;
2423
use scylla::policies::host_filter::HostFilter;
2524
use scylla::response::PagingStateResponse;
@@ -553,14 +552,11 @@ pub unsafe extern "C" fn cass_session_prepare_n(
553552
}
554553
let session = &session_guard.as_ref().unwrap().session;
555554

556-
let mut prepared = session
555+
let prepared = session
557556
.prepare(query)
558557
.await
559558
.map_err(|err| (err.to_cass_error(), err.msg()))?;
560559

561-
// Set Cpp Driver default configuration for queries:
562-
prepared.set_consistency(Consistency::One);
563-
564560
Ok(CassResultValue::Prepared(Arc::new(
565561
CassPrepared::new_from_prepared_statement(prepared),
566562
)))
@@ -778,6 +774,7 @@ pub unsafe extern "C" fn cass_session_get_metrics(
778774
mod tests {
779775
use rusty_fork::rusty_fork_test;
780776
use scylla::errors::DbError;
777+
use scylla::frame::types::Consistency;
781778
use scylla_proxy::{
782779
Condition, Node, Proxy, Reaction, RequestFrame, RequestOpcode, RequestReaction,
783780
RequestRule, ResponseFrame, RunningProxy,

0 commit comments

Comments
 (0)