Skip to content

Commit e90d632

Browse files
committed
Push down cast
Signed-off-by: Nicholas Gates <[email protected]>
1 parent ea5fcc6 commit e90d632

File tree

1 file changed

+15
-6
lines changed
  • vortex-array/src/arrays/chunked/vtable

1 file changed

+15
-6
lines changed

vortex-array/src/arrays/chunked/vtable/rules.rs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,14 @@ use crate::arrays::ChunkedVTable;
1313
use crate::arrays::ConstantArray;
1414
use crate::arrays::ConstantVTable;
1515
use crate::arrays::ScalarFnArray;
16+
use crate::optimizer::ArrayOptimizer;
1617
use crate::optimizer::rules::ArrayParentReduceRule;
1718
use crate::optimizer::rules::ParentRuleSet;
1819

19-
pub(super) const PARENT_RULES: ParentRuleSet<ChunkedVTable> =
20-
ParentRuleSet::new(&[ParentRuleSet::lift(&ChunkedUnaryScalarFnPushDownRule)]);
20+
pub(super) const PARENT_RULES: ParentRuleSet<ChunkedVTable> = ParentRuleSet::new(&[
21+
ParentRuleSet::lift(&ChunkedUnaryScalarFnPushDownRule),
22+
ParentRuleSet::lift(&ChunkedConstantScalarFnPushDownRule),
23+
]);
2124

2225
/// Push down any unary scalar function through chunked arrays.
2326
#[derive(Debug)]
@@ -43,8 +46,13 @@ impl ArrayParentReduceRule<ChunkedVTable> for ChunkedUnaryScalarFnPushDownRule {
4346
.chunks
4447
.iter()
4548
.map(|chunk| {
46-
ScalarFnArray::try_new(parent.scalar_fn().clone(), vec![chunk.clone()], chunk.len())
47-
.map(|a| a.into_array())
49+
ScalarFnArray::try_new(
50+
parent.scalar_fn().clone(),
51+
vec![chunk.clone()],
52+
chunk.len(),
53+
)?
54+
.into_array()
55+
.optimize()
4856
})
4957
.try_collect()?;
5058

@@ -100,8 +108,9 @@ impl ArrayParentReduceRule<ChunkedVTable> for ChunkedConstantScalarFnPushDownRul
100108
})
101109
.collect();
102110

103-
ScalarFnArray::try_new(parent.scalar_fn().clone(), new_children, chunk.len())
104-
.map(|a| a.into_array())
111+
ScalarFnArray::try_new(parent.scalar_fn().clone(), new_children, chunk.len())?
112+
.into_array()
113+
.optimize()
105114
})
106115
.try_collect()?;
107116

0 commit comments

Comments
 (0)