Skip to content

Commit 41f93ee

Browse files
marvinlanhenkeshaeqahmed
authored andcommitted
feat: Project transform (apache#309)
* add project bucket_unary * add project bucket_binary * add project bucket_set * add project identity * add project truncate * fixed array boundary * add project void * add project unknown * add docs + none projections * docs * docs * remove trait + impl boundary on Datum * fix: clippy * fix: test Transform::Unknown * add: transform_literal_result * add: transform_literal_result * remove: whitespace * move `boundary` to transform.rs * add check if transform can be applied to data_type * add check * add: java-testsuite Transform::Bucket * fix: clippy * add: timestamps to boundary * change: return bool from can_transform * fix: clippy * refactor: fn project match structure * add: java-testsuite Transform::Truncate * add: java-testsuite Transform::Dates + refactor * fix: doc * add: timestamp test + refactor * refactor: simplify projected_boundary * add: java-testsuite Transform::Timestamp * refactor tests * fix: timestamp conversion * fix: temporal test_result * basic fix * change to Result<i32> * use try_unary * add: java-testsuite Transform::Timestamp Hours * refactor: split and move tests * refactor: move transform tests * remove self * refactor: structure fn project + helpers * fix: clippy * fix: typo * fix: naming + generics
1 parent 6085fd4 commit 41f93ee

File tree

8 files changed

+3633
-508
lines changed

8 files changed

+3633
-508
lines changed

crates/iceberg/src/expr/predicate.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,9 @@ impl<T> UnaryExpression<T> {
116116
debug_assert!(op.is_unary());
117117
Self { op, term }
118118
}
119+
pub(crate) fn op(&self) -> PredicateOperator {
120+
self.op
121+
}
119122
}
120123

121124
/// Binary predicate, for example, `a > 10`.
@@ -144,6 +147,12 @@ impl<T> BinaryExpression<T> {
144147
debug_assert!(op.is_binary());
145148
Self { op, term, literal }
146149
}
150+
pub(crate) fn op(&self) -> PredicateOperator {
151+
self.op
152+
}
153+
pub(crate) fn literal(&self) -> &Datum {
154+
&self.literal
155+
}
147156
}
148157

149158
impl<T: Display> Display for BinaryExpression<T> {
@@ -191,6 +200,12 @@ impl<T> SetExpression<T> {
191200
debug_assert!(op.is_set());
192201
Self { op, term, literals }
193202
}
203+
pub(crate) fn op(&self) -> PredicateOperator {
204+
self.op
205+
}
206+
pub(crate) fn literals(&self) -> &FnvHashSet<Datum> {
207+
&self.literals
208+
}
194209
}
195210

196211
impl<T: Bind> Bind for SetExpression<T> {

0 commit comments

Comments
 (0)