Skip to content

Commit 52c1272

Browse files
committed
move to same package structure as Spark
1 parent 7a47b9d commit 52c1272

File tree

2 files changed

+58
-30
lines changed

2 files changed

+58
-30
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one
3+
* or more contributor license agreements. See the NOTICE file
4+
* distributed with this work for additional information
5+
* regarding copyright ownership. The ASF licenses this file
6+
* to you under the Apache License, Version 2.0 (the
7+
* "License"); you may not use this file except in compliance
8+
* with the License. You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing,
13+
* software distributed under the License is distributed on an
14+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
* KIND, either express or implied. See the License for the
16+
* specific language governing permissions and limitations
17+
* under the License.
18+
*/
19+
20+
package org.apache.comet.serde
21+
22+
import org.apache.spark.sql.catalyst.expressions.{Attribute, BloomFilterMightContain}
23+
24+
import org.apache.comet.CometSparkSessionExtensions.withInfo
25+
import org.apache.comet.serde.QueryPlanSerde.exprToProtoInternal
26+
27+
object CometBloomFilterMightContain extends CometExpressionSerde[BloomFilterMightContain] {
28+
29+
override def convert(
30+
expr: BloomFilterMightContain,
31+
inputs: Seq[Attribute],
32+
binding: Boolean): Option[ExprOuterClass.Expr] = {
33+
34+
val bloomFilter = expr.left
35+
val value = expr.right
36+
val bloomFilterExpr = exprToProtoInternal(bloomFilter, inputs, binding)
37+
val valueExpr = exprToProtoInternal(value, inputs, binding)
38+
if (bloomFilterExpr.isDefined && valueExpr.isDefined) {
39+
val builder = ExprOuterClass.BloomFilterMightContain.newBuilder()
40+
builder.setBloomFilter(bloomFilterExpr.get)
41+
builder.setValue(valueExpr.get)
42+
Some(
43+
ExprOuterClass.Expr
44+
.newBuilder()
45+
.setBloomFilterMightContain(builder)
46+
.build())
47+
} else {
48+
withInfo(expr, bloomFilter, value)
49+
None
50+
}
51+
}
52+
}

spark/src/main/scala/org/apache/comet/serde/misc.scala renamed to spark/src/main/scala/org/apache/comet/serde/contraintExpressions.scala

Lines changed: 6 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,22 @@
1919

2020
package org.apache.comet.serde
2121

22-
import org.apache.spark.sql.catalyst.expressions.{Attribute, BloomFilterMightContain, KnownFloatingPointNormalized}
22+
import org.apache.spark.sql.catalyst.expressions.{Attribute, KnownFloatingPointNormalized}
2323
import org.apache.spark.sql.catalyst.optimizer.NormalizeNaNAndZero
2424

2525
import org.apache.comet.CometSparkSessionExtensions.withInfo
26-
import org.apache.comet.serde.QueryPlanSerde.{exprToProtoInternal, serializeDataType}
26+
import org.apache.comet.serde.QueryPlanSerde.{exprToProtoInternal, optExprWithInfo, serializeDataType}
2727

2828
object CometKnownFloatingPointNormalized
2929
extends CometExpressionSerde[KnownFloatingPointNormalized] {
3030

3131
override def getSupportLevel(expr: KnownFloatingPointNormalized): SupportLevel = {
3232
expr.child match {
3333
case _: NormalizeNaNAndZero => Compatible()
34-
case _ => Unsupported(Some("KnownFloatingPointNormalized only supports NormalizeNaNAndZero child expressions"))
34+
case _ =>
35+
Unsupported(
36+
Some(
37+
"KnownFloatingPointNormalized only supports NormalizeNaNAndZero child expressions"))
3538
}
3639
}
3740

@@ -58,30 +61,3 @@ object CometKnownFloatingPointNormalized
5861
optExprWithInfo(optExpr, expr, wrapped)
5962
}
6063
}
61-
62-
object CometBloomFilterMightContain extends CometExpressionSerde[BloomFilterMightContain] {
63-
64-
override def convert(
65-
expr: BloomFilterMightContain,
66-
inputs: Seq[Attribute],
67-
binding: Boolean): Option[ExprOuterClass.Expr] = {
68-
69-
val bloomFilter = expr.left
70-
val value = expr.right
71-
val bloomFilterExpr = exprToProtoInternal(bloomFilter, inputs, binding)
72-
val valueExpr = exprToProtoInternal(value, inputs, binding)
73-
if (bloomFilterExpr.isDefined && valueExpr.isDefined) {
74-
val builder = ExprOuterClass.BloomFilterMightContain.newBuilder()
75-
builder.setBloomFilter(bloomFilterExpr.get)
76-
builder.setValue(valueExpr.get)
77-
Some(
78-
ExprOuterClass.Expr
79-
.newBuilder()
80-
.setBloomFilterMightContain(builder)
81-
.build())
82-
} else {
83-
withInfo(expr, bloomFilter, value)
84-
None
85-
}
86-
}
87-
}

0 commit comments

Comments
 (0)