-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for null values #67
Add support for null values #67
Conversation
…exed-columns-support # Conflicts: # core/src/main/scala/io/qbeast/core/transform/HashTransformer.scala # core/src/main/scala/io/qbeast/core/transform/LinearTransformer.scala # core/src/main/scala/io/qbeast/core/transform/Transformer.scala # core/src/test/scala/io/qbeast/core/transform/TransformerTest.scala
# Conflicts: # src/test/scala/io/qbeast/spark/index/SparkPointWeightIndexerTest.scala
core/src/main/scala/io/qbeast/core/transform/LinearTransformer.scala
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We are still missing the filtering push down for the null values, meaning that a query with x=null, should be converted to x>=randomNullValue and x<randomNullValue and executed using the index.
core/src/main/scala/io/qbeast/core/transform/HashTransformer.scala
Outdated
Show resolved
Hide resolved
core/src/main/scala/io/qbeast/core/transform/LinearTransformation.scala
Outdated
Show resolved
Hide resolved
core/src/main/scala/io/qbeast/core/transform/LinearTransformer.scala
Outdated
Show resolved
Hide resolved
core/src/main/scala/io/qbeast/core/transform/LinearTransformer.scala
Outdated
Show resolved
Hide resolved
…ith all null values Pending to change the problem of having all values at null
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a few comments, but generally looks good! :)
core/src/main/scala/io/qbeast/core/transform/HashTransformation.scala
Outdated
Show resolved
Hide resolved
core/src/test/scala/io/qbeast/core/transform/LinearTransformationTest.scala
Outdated
Show resolved
Hide resolved
core/src/main/scala/io/qbeast/core/transform/LinearTransformer.scala
Outdated
Show resolved
Hide resolved
core/src/main/scala/io/qbeast/core/transform/LinearTransformation.scala
Outdated
Show resolved
Hide resolved
I've seen some typos on the new |
Thank you, fixed! |
Hey! I think is ready to merge, changes are addressed and it's compatible with the current version in the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me! Great job :)
core/src/main/scala/io/qbeast/core/transform/Transformation.scala
Outdated
Show resolved
Hide resolved
core/src/main/scala/io/qbeast/core/transform/Transformation.scala
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perfect 👌🏻
This PR shows the current status on the solution for issue #10
The theory is to substitute/map null values in the indexed columns transformation with a Random number in the [min, max] range.
LinearTransformation
andHashTransformation
case classes to includenullValue
as part of the contained informationTransformer
which includes anoptionalNullValue
. If none is given, then a random is calculated internally with the min/max values