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:: { BufMut , Bytes , BytesMut } ;
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 ) ]
@@ -82,6 +82,7 @@ impl CassStatement {
82
82
match & self . statement {
83
83
Statement :: Prepared ( prepared) => {
84
84
let indices: Vec < usize > = prepared
85
+ . statement
85
86
. get_variable_col_specs ( )
86
87
. iter ( )
87
88
. enumerate ( )
@@ -179,7 +180,9 @@ pub unsafe extern "C" fn cass_statement_set_consistency(
179
180
if let Some ( consistency) = consistency_opt {
180
181
match & mut ptr_to_ref_mut ( statement) . statement {
181
182
Statement :: Simple ( inner) => inner. query . set_consistency ( consistency) ,
182
- Statement :: Prepared ( inner) => Arc :: make_mut ( inner) . set_consistency ( consistency) ,
183
+ Statement :: Prepared ( inner) => {
184
+ Arc :: make_mut ( inner) . statement . set_consistency ( consistency)
185
+ }
183
186
}
184
187
}
185
188
@@ -202,9 +205,9 @@ pub unsafe extern "C" fn cass_statement_set_paging_size(
202
205
}
203
206
Statement :: Prepared ( inner) => {
204
207
if page_size == -1 {
205
- Arc :: make_mut ( inner) . disable_paging ( )
208
+ Arc :: make_mut ( inner) . statement . disable_paging ( )
206
209
} else {
207
- Arc :: make_mut ( inner) . set_page_size ( page_size)
210
+ Arc :: make_mut ( inner) . statement . set_page_size ( page_size)
208
211
}
209
212
}
210
213
}
@@ -257,7 +260,9 @@ pub unsafe extern "C" fn cass_statement_set_is_idempotent(
257
260
) -> CassError {
258
261
match & mut ptr_to_ref_mut ( statement_raw) . statement {
259
262
Statement :: Simple ( inner) => inner. query . set_is_idempotent ( is_idempotent != 0 ) ,
260
- Statement :: Prepared ( inner) => Arc :: make_mut ( inner) . set_is_idempotent ( is_idempotent != 0 ) ,
263
+ Statement :: Prepared ( inner) => Arc :: make_mut ( inner)
264
+ . statement
265
+ . set_is_idempotent ( is_idempotent != 0 ) ,
261
266
}
262
267
263
268
CassError :: CASS_OK
@@ -270,7 +275,7 @@ pub unsafe extern "C" fn cass_statement_set_tracing(
270
275
) -> CassError {
271
276
match & mut ptr_to_ref_mut ( statement_raw) . statement {
272
277
Statement :: Simple ( inner) => inner. query . set_tracing ( enabled != 0 ) ,
273
- Statement :: Prepared ( inner) => Arc :: make_mut ( inner) . set_tracing ( enabled != 0 ) ,
278
+ Statement :: Prepared ( inner) => Arc :: make_mut ( inner) . statement . set_tracing ( enabled != 0 ) ,
274
279
}
275
280
276
281
CassError :: CASS_OK
@@ -292,9 +297,9 @@ pub unsafe extern "C" fn cass_statement_set_retry_policy(
292
297
293
298
match & mut ptr_to_ref_mut ( statement) . statement {
294
299
Statement :: Simple ( inner) => inner. query . set_retry_policy ( maybe_arced_retry_policy) ,
295
- Statement :: Prepared ( inner) => {
296
- Arc :: make_mut ( inner ) . set_retry_policy ( maybe_arced_retry_policy )
297
- }
300
+ Statement :: Prepared ( inner) => Arc :: make_mut ( inner )
301
+ . statement
302
+ . set_retry_policy ( maybe_arced_retry_policy ) ,
298
303
}
299
304
300
305
CassError :: CASS_OK
@@ -321,9 +326,9 @@ pub unsafe extern "C" fn cass_statement_set_serial_consistency(
321
326
322
327
match & mut ptr_to_ref_mut ( statement) . statement {
323
328
Statement :: Simple ( inner) => inner. query . set_serial_consistency ( Some ( consistency) ) ,
324
- Statement :: Prepared ( inner) => {
325
- Arc :: make_mut ( inner ) . set_serial_consistency ( Some ( consistency ) )
326
- }
329
+ Statement :: Prepared ( inner) => Arc :: make_mut ( inner )
330
+ . statement
331
+ . set_serial_consistency ( Some ( consistency ) ) ,
327
332
}
328
333
329
334
CassError :: CASS_OK
@@ -353,7 +358,9 @@ pub unsafe extern "C" fn cass_statement_set_timestamp(
353
358
) -> CassError {
354
359
match & mut ptr_to_ref_mut ( statement) . statement {
355
360
Statement :: Simple ( inner) => inner. query . set_timestamp ( Some ( timestamp) ) ,
356
- Statement :: Prepared ( inner) => Arc :: make_mut ( inner) . set_timestamp ( Some ( timestamp) ) ,
361
+ Statement :: Prepared ( inner) => Arc :: make_mut ( inner)
362
+ . statement
363
+ . set_timestamp ( Some ( timestamp) ) ,
357
364
}
358
365
359
366
CassError :: CASS_OK
0 commit comments