Skip to content

Commit e7d1769

Browse files
committed
Tweaks.
1 parent 7f118ae commit e7d1769

2 files changed

Lines changed: 10 additions & 13 deletions

File tree

rust/experimental/query_engine/engine-columnar/src/primitives/dictionary/dictionary_transform.rs

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -65,20 +65,16 @@ impl<'a> Dictionary<'a> {
6565
length,
6666
value_index,
6767
} => {
68-
let (key_buffer, null_buffer) = match value_index {
68+
let (key_buffer, null_buffer) = match value_index
69+
.and_then(|value_index| transform(&values.get_value_at(value_index)))
70+
{
6971
None => (
7072
BooleanBuffer::new_unset(length),
7173
Some(NullBuffer::new_null(length)),
7274
),
73-
Some(value_index) => match transform(&values.get_value_at(value_index)) {
74-
None => (
75-
BooleanBuffer::new_unset(length),
76-
Some(NullBuffer::new_null(length)),
77-
),
78-
Some(v) => {
79-
return BooleanArrayOrValue::Value(v);
80-
}
81-
},
75+
Some(v) => {
76+
return BooleanArrayOrValue::Value(v);
77+
}
8278
};
8379

8480
BooleanArrayOrValue::Array(BooleanArray::new(key_buffer, null_buffer))

rust/experimental/query_engine/engine-columnar/src/primitives/resolved_value.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -237,9 +237,10 @@ pub enum ResolvedSingleOrDictionaryValue<'a> {
237237
impl<'a> ResolvedSingleOrDictionaryValue<'a> {
238238
pub fn into_dictionary(self, key_data_type: DataType, key_count: usize) -> Dictionary<'a> {
239239
match self {
240-
ResolvedSingleOrDictionaryValue::Single(v) => {
241-
Dictionary::new_scalar_with_data_type(key_data_type, key_count, v)
242-
}
240+
ResolvedSingleOrDictionaryValue::Single(v) => match v {
241+
ValueOrRef::Null => Dictionary::new_null_with_data_type(key_count, key_data_type),
242+
v => Dictionary::new_scalar_with_data_type(key_data_type, key_count, v),
243+
},
243244
ResolvedSingleOrDictionaryValue::Dictionary(d) => d,
244245
}
245246
}

0 commit comments

Comments
 (0)