chore: add optional for datatype, rename data_type to datatype (#258)

This commit is contained in:
fys
2022-09-14 18:07:22 +08:00
committed by GitHub
parent 0dce8946d4
commit ef40b12749
8 changed files with 48 additions and 37 deletions
+10 -5
View File
@@ -23,7 +23,8 @@ use snafu::{ensure, OptionExt, ResultExt};
use crate::error;
use crate::{
error::DatanodeSnafu, error::DecodeSelectSnafu, error::EncodePhysicalSnafu, Client, Result,
error::DatanodeSnafu, error::DecodeSelectSnafu, error::EncodePhysicalSnafu,
error::MissingFieldSnafu, Client, Result,
};
pub const PROTOCOL_VERSION: u32 = 1;
@@ -214,8 +215,12 @@ impl TryFrom<ObjectResult> for Output {
}
fn column_to_vector(column: &Column, rows: u32) -> Result<VectorRef> {
let wrapper =
ColumnDataTypeWrapper::try_new(column.datatype).context(error::ColumnDataTypeSnafu)?;
let wrapper = ColumnDataTypeWrapper::try_new(
column
.datatype
.context(MissingFieldSnafu { field: "datatype" })?,
)
.context(error::ColumnDataTypeSnafu)?;
let column_datatype = wrapper.datatype();
let rows = rows as usize;
@@ -318,7 +323,7 @@ mod tests {
#[test]
fn test_column_to_vector() {
let mut column = create_test_column(Arc::new(BooleanVector::from(vec![true])));
column.datatype = -100;
column.datatype = Some(-100);
let result = column_to_vector(&column, 1);
assert!(result.is_err());
assert_eq!(
@@ -396,7 +401,7 @@ mod tests {
semantic_type: 1,
values: Some(values(&[array.clone()]).unwrap()),
null_mask: null_mask(&vec![array], vector.len()),
datatype: wrapper.datatype() as i32,
datatype: Some(wrapper.datatype() as i32),
}
}
}
+5 -1
View File
@@ -76,6 +76,9 @@ pub enum Error {
err_msg: String,
backtrace: Backtrace,
},
#[snafu(display("Missing required field in protobuf, field: {}", field))]
MissingField { field: String, backtrace: Backtrace },
}
pub type Result<T> = std::result::Result<T, Error>;
@@ -92,7 +95,8 @@ impl ErrorExt for Error {
| Error::EncodePhysical { .. }
| Error::MutateFailure { .. }
| Error::InvalidColumnProto { .. }
| Error::ColumnDataType { .. } => StatusCode::Internal,
| Error::ColumnDataType { .. }
| Error::MissingField { .. } => StatusCode::Internal,
Error::CreateVector { source } => source.status_code(),
Error::CreateRecordBatches { source } => source.status_code(),
Error::IllegalGrpcClientState { .. } => StatusCode::Unexpected,