@@ -143,118 +143,6 @@ fn execute_arithmetic_primitive(
143143 . ok_or_else ( || vortex_err ! ( "Arithmetic overflow/underflow or type mismatch" ) )
144144}
145145
146- // fn execute_scalar_scalar(
147- // lhs: &vortex_vector::Scalar,
148- // rhs: &vortex_vector::Scalar,
149- // op: Operator,
150- // ) -> VortexResult<Datum> {
151- // use vortex_vector::Scalar;
152- // use vortex_vector::ScalarOps;
153- //
154- // // Handle null propagation for non-kleene operators
155- // if !matches!(op, Operator::And | Operator::Or) && (!lhs.is_valid() || !rhs.is_valid()) {
156- // return match op {
157- // Operator::Add | Operator::Sub | Operator::Mul | Operator::Div => {
158- // // Return null primitive - we'd need to know the type
159- // // For now, bail
160- // vortex_bail!("Null scalar arithmetic not yet supported")
161- // }
162- // _ => Ok(Datum::Scalar(BoolScalar::new(None).into())),
163- // };
164- // }
165- //
166- // match (lhs, rhs) {
167- // (Scalar::Bool(l), Scalar::Bool(r)) => {
168- // let result: BoolScalar = match op {
169- // op if op.maybe_cmp_operator().is_some() => compare_op!(
170- // op,
171- // l,
172- // r,
173- // Operator::Eq,
174- // Operator::NotEq,
175- // Operator::Lt,
176- // Operator::Lte,
177- // Operator::Gt,
178- // Operator::Gte
179- // ),
180- // _ => vortex_bail!("Arithmetic not supported for bool scalars"),
181- // };
182- // Ok(Datum::Scalar(result.into()))
183- // }
184- // (Scalar::Primitive(l), Scalar::Primitive(r)) => execute_scalar_scalar_primitive(l, r, op),
185- // _ => vortex_bail!(
186- // "Binary operation not supported for scalar types {:?} and {:?}",
187- // lhs,
188- // rhs
189- // ),
190- // }
191- // }
192-
193- // fn execute_scalar_scalar_primitive(
194- // lhs: &PrimitiveScalar,
195- // rhs: &PrimitiveScalar,
196- // op: Operator,
197- // ) -> VortexResult<Datum> {
198- // if op.maybe_cmp_operator().is_some() {
199- // let result = compare_op!(
200- // op,
201- // lhs,
202- // rhs,
203- // Operator::Eq,
204- // Operator::NotEq,
205- // Operator::Lt,
206- // Operator::Lte,
207- // Operator::Gt,
208- // Operator::Gte
209- // );
210- // return Ok(Datum::Scalar(result.into()));
211- // }
212- //
213- // if op.is_arithmetic() {
214- // return execute_scalar_arithmetic_primitive(lhs, rhs, op);
215- // }
216- //
217- // vortex_bail!("Operation {:?} not supported for primitive scalars", op)
218- // }
219-
220- // fn execute_scalar_arithmetic_primitive(
221- // lhs: &PrimitiveScalar,
222- // rhs: &PrimitiveScalar,
223- // op: Operator,
224- // ) -> VortexResult<Datum> {
225- // // Float arithmetic - no overflow checking needed
226- // if lhs.ptype().is_float() && lhs.ptype() == rhs.ptype() {
227- // let result = arithmetic_op!(
228- // op,
229- // lhs,
230- // rhs,
231- // Operator::Add,
232- // Operator::Sub,
233- // Operator::Mul,
234- // Operator::Div
235- // );
236- // return Ok(Datum::Scalar(result.into()));
237- // }
238- //
239- // // Integer arithmetic - use checked operations
240- // let result: Option<PrimitiveScalar> = checked_arithmetic_op!(
241- // op,
242- // lhs,
243- // rhs,
244- // Operator::Add,
245- // Operator::Sub,
246- // Operator::Mul,
247- // Operator::Div
248- // );
249- //
250- // match result {
251- // Some(v) => Ok(Datum::Scalar(v.into())),
252- // None => Err(vortex_err!(
253- // "Arithmetic overflow/underflow or type mismatch"
254- // )),
255- // }
256- // }
257-
258146#[ cfg( test) ]
259147mod tests {
260148 use vortex_buffer:: buffer;
0 commit comments