Skip to content

Commit

Permalink
handle null value as sepcial case in struct display
Browse files Browse the repository at this point in the history
  • Loading branch information
houqp committed Jul 23, 2021
1 parent 119c013 commit da79ba9
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 11 deletions.
21 changes: 13 additions & 8 deletions arrow/src/util/display.rs
Original file line number Diff line number Diff line change
Expand Up @@ -214,14 +214,19 @@ fn append_struct_field_string(
target.push('"');
target.push_str(name);
target.push_str("\": ");
match field_col.data_type() {
DataType::Utf8 | DataType::LargeUtf8 => {
target.push('"');
target.push_str(array_value_to_string(field_col, row)?.as_str());
target.push('"');
}
_ => {
target.push_str(array_value_to_string(field_col, row)?.as_str());

if field_col.is_null(row) {
target.push_str("null");
} else {
match field_col.data_type() {
DataType::Utf8 | DataType::LargeUtf8 => {
target.push('"');
target.push_str(array_value_to_string(field_col, row)?.as_str());
target.push('"');
}
_ => {
target.push_str(array_value_to_string(field_col, row)?.as_str());
}
}
}

Expand Down
6 changes: 3 additions & 3 deletions arrow/src/util/pretty.rs
Original file line number Diff line number Diff line change
Expand Up @@ -106,9 +106,9 @@ mod tests {
use crate::{
array::{
self, new_null_array, Array, Date32Array, Date64Array, PrimitiveBuilder,
StringBuilder, StringDictionaryBuilder, Time32MillisecondArray,
Time32SecondArray, Time64MicrosecondArray, Time64NanosecondArray,
TimestampMicrosecondArray, TimestampMillisecondArray,
StringArray, StringBuilder, StringDictionaryBuilder, StructArray,
Time32MillisecondArray, Time32SecondArray, Time64MicrosecondArray,
Time64NanosecondArray, TimestampMicrosecondArray, TimestampMillisecondArray,
TimestampNanosecondArray, TimestampSecondArray,
},
datatypes::{DataType, Field, Int32Type, Schema},
Expand Down

0 comments on commit da79ba9

Please sign in to comment.