|
1 | 1 | use crate::argconv::*; |
2 | 2 | use crate::batch::CassBatch; |
3 | 3 | use crate::cass_error::*; |
4 | | -use crate::cass_types::{get_column_type, CassDataType, UDTDataType}; |
| 4 | +use crate::cass_types::{CassDataType, UDTDataType}; |
5 | 5 | use crate::cluster::build_session_builder; |
6 | 6 | use crate::cluster::CassCluster; |
7 | 7 | use crate::exec_profile::{CassExecProfile, ExecProfileName, PerStatementExecProfile}; |
@@ -204,11 +204,7 @@ pub unsafe extern "C" fn cass_session_execute_batch( |
204 | 204 | match query_res { |
205 | 205 | Ok(_result) => Ok(CassResultValue::QueryResult(Arc::new(CassResult { |
206 | 206 | rows: None, |
207 | | - metadata: Arc::new(CassResultData { |
208 | | - paging_state: None, |
209 | | - col_specs: vec![], |
210 | | - tracing_id: None, |
211 | | - }), |
| 207 | + metadata: Arc::new(CassResultData::from_result_payload(None, vec![], None)), |
212 | 208 | }))), |
213 | 209 | Err(err) => Ok(CassResultValue::QueryError(Arc::new(err))), |
214 | 210 | } |
@@ -289,11 +285,11 @@ pub unsafe extern "C" fn cass_session_execute( |
289 | 285 |
|
290 | 286 | match query_res { |
291 | 287 | Ok(result) => { |
292 | | - let metadata = Arc::new(CassResultData { |
293 | | - paging_state: result.paging_state, |
294 | | - col_specs: result.col_specs, |
295 | | - tracing_id: result.tracing_id, |
296 | | - }); |
| 288 | + let metadata = Arc::new(CassResultData::from_result_payload( |
| 289 | + result.paging_state, |
| 290 | + result.col_specs, |
| 291 | + result.tracing_id, |
| 292 | + )); |
297 | 293 | let cass_rows = create_cass_rows_from_rows(result.rows, &metadata); |
298 | 294 | let cass_result = Arc::new(CassResult { |
299 | 295 | rows: cass_rows, |
@@ -333,9 +329,9 @@ fn create_cass_rows_from_rows( |
333 | 329 | fn create_cass_row_columns(row: Row, metadata: &Arc<CassResultData>) -> Vec<CassValue> { |
334 | 330 | row.columns |
335 | 331 | .into_iter() |
336 | | - .zip(metadata.col_specs.iter()) |
337 | | - .map(|(val, col)| { |
338 | | - let column_type = Arc::new(get_column_type(&col.typ)); |
| 332 | + .zip(metadata.col_data_types.iter()) |
| 333 | + .map(|(val, col_data_type)| { |
| 334 | + let column_type = Arc::clone(col_data_type); |
339 | 335 | CassValue { |
340 | 336 | value: val.map(|col_val| get_column_value(col_val, &column_type)), |
341 | 337 | value_type: column_type, |
|
0 commit comments