1
1
use crate :: argconv:: * ;
2
2
use crate :: cass_error:: CassError ;
3
3
use crate :: exec_profile:: PerStatementExecProfile ;
4
+ use crate :: prepared:: CassPrepared ;
4
5
use crate :: query_result:: CassResult ;
5
6
use crate :: retry_policy:: CassRetryPolicy ;
6
7
use crate :: types:: * ;
@@ -9,7 +10,6 @@ use scylla::frame::types::Consistency;
9
10
use scylla:: frame:: value:: MaybeUnset ;
10
11
use scylla:: frame:: value:: MaybeUnset :: { Set , Unset } ;
11
12
use scylla:: query:: Query ;
12
- use scylla:: statement:: prepared_statement:: PreparedStatement ;
13
13
use scylla:: statement:: SerialConsistency ;
14
14
use scylla:: transport:: { PagingState , PagingStateResponse } ;
15
15
use std:: collections:: HashMap ;
@@ -24,7 +24,7 @@ include!(concat!(env!("OUT_DIR"), "/cppdriver_data_query_error.rs"));
24
24
pub enum Statement {
25
25
Simple ( SimpleQuery ) ,
26
26
// Arc is needed, because PreparedStatement is passed by reference to session.execute
27
- Prepared ( Arc < PreparedStatement > ) ,
27
+ Prepared ( Arc < CassPrepared > ) ,
28
28
}
29
29
30
30
#[ derive( Clone ) ]
@@ -83,6 +83,7 @@ impl CassStatement {
83
83
match & self . statement {
84
84
Statement :: Prepared ( prepared) => {
85
85
let indices: Vec < usize > = prepared
86
+ . statement
86
87
. get_variable_col_specs ( )
87
88
. iter ( )
88
89
. enumerate ( )
@@ -185,7 +186,9 @@ pub unsafe extern "C" fn cass_statement_set_consistency(
185
186
if let Some ( consistency) = consistency_opt {
186
187
match & mut ptr_to_ref_mut ( statement) . statement {
187
188
Statement :: Simple ( inner) => inner. query . set_consistency ( consistency) ,
188
- Statement :: Prepared ( inner) => Arc :: make_mut ( inner) . set_consistency ( consistency) ,
189
+ Statement :: Prepared ( inner) => {
190
+ Arc :: make_mut ( inner) . statement . set_consistency ( consistency)
191
+ }
189
192
}
190
193
}
191
194
@@ -205,7 +208,7 @@ pub unsafe extern "C" fn cass_statement_set_paging_size(
205
208
statement. paging_enabled = true ;
206
209
match & mut statement. statement {
207
210
Statement :: Simple ( inner) => inner. query . set_page_size ( page_size) ,
208
- Statement :: Prepared ( inner) => Arc :: make_mut ( inner) . set_page_size ( page_size) ,
211
+ Statement :: Prepared ( inner) => Arc :: make_mut ( inner) . statement . set_page_size ( page_size) ,
209
212
}
210
213
}
211
214
@@ -253,7 +256,9 @@ pub unsafe extern "C" fn cass_statement_set_is_idempotent(
253
256
) -> CassError {
254
257
match & mut ptr_to_ref_mut ( statement_raw) . statement {
255
258
Statement :: Simple ( inner) => inner. query . set_is_idempotent ( is_idempotent != 0 ) ,
256
- Statement :: Prepared ( inner) => Arc :: make_mut ( inner) . set_is_idempotent ( is_idempotent != 0 ) ,
259
+ Statement :: Prepared ( inner) => Arc :: make_mut ( inner)
260
+ . statement
261
+ . set_is_idempotent ( is_idempotent != 0 ) ,
257
262
}
258
263
259
264
CassError :: CASS_OK
@@ -266,7 +271,7 @@ pub unsafe extern "C" fn cass_statement_set_tracing(
266
271
) -> CassError {
267
272
match & mut ptr_to_ref_mut ( statement_raw) . statement {
268
273
Statement :: Simple ( inner) => inner. query . set_tracing ( enabled != 0 ) ,
269
- Statement :: Prepared ( inner) => Arc :: make_mut ( inner) . set_tracing ( enabled != 0 ) ,
274
+ Statement :: Prepared ( inner) => Arc :: make_mut ( inner) . statement . set_tracing ( enabled != 0 ) ,
270
275
}
271
276
272
277
CassError :: CASS_OK
@@ -288,9 +293,9 @@ pub unsafe extern "C" fn cass_statement_set_retry_policy(
288
293
289
294
match & mut ptr_to_ref_mut ( statement) . statement {
290
295
Statement :: Simple ( inner) => inner. query . set_retry_policy ( maybe_arced_retry_policy) ,
291
- Statement :: Prepared ( inner) => {
292
- Arc :: make_mut ( inner ) . set_retry_policy ( maybe_arced_retry_policy )
293
- }
296
+ Statement :: Prepared ( inner) => Arc :: make_mut ( inner )
297
+ . statement
298
+ . set_retry_policy ( maybe_arced_retry_policy ) ,
294
299
}
295
300
296
301
CassError :: CASS_OK
@@ -317,9 +322,9 @@ pub unsafe extern "C" fn cass_statement_set_serial_consistency(
317
322
318
323
match & mut ptr_to_ref_mut ( statement) . statement {
319
324
Statement :: Simple ( inner) => inner. query . set_serial_consistency ( Some ( consistency) ) ,
320
- Statement :: Prepared ( inner) => {
321
- Arc :: make_mut ( inner ) . set_serial_consistency ( Some ( consistency ) )
322
- }
325
+ Statement :: Prepared ( inner) => Arc :: make_mut ( inner )
326
+ . statement
327
+ . set_serial_consistency ( Some ( consistency ) ) ,
323
328
}
324
329
325
330
CassError :: CASS_OK
@@ -349,7 +354,9 @@ pub unsafe extern "C" fn cass_statement_set_timestamp(
349
354
) -> CassError {
350
355
match & mut ptr_to_ref_mut ( statement) . statement {
351
356
Statement :: Simple ( inner) => inner. query . set_timestamp ( Some ( timestamp) ) ,
352
- Statement :: Prepared ( inner) => Arc :: make_mut ( inner) . set_timestamp ( Some ( timestamp) ) ,
357
+ Statement :: Prepared ( inner) => Arc :: make_mut ( inner)
358
+ . statement
359
+ . set_timestamp ( Some ( timestamp) ) ,
353
360
}
354
361
355
362
CassError :: CASS_OK
0 commit comments