Skip to content
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

[Kernel][Data skipping] Add the STARTS_WITH expression and support data skipping for it #2539

Open
2 of 8 tasks
allisonport-db opened this issue Jan 18, 2024 · 5 comments
Open
2 of 8 tasks
Assignees
Labels
enhancement New feature or request good first issue Good for newcomers kernel
Milestone

Comments

@allisonport-db
Copy link
Collaborator

Feature request

Which Delta project/connector is this regarding?

  • Spark
  • Standalone
  • Flink
  • Kernel
  • Other (fill in here)

Overview

Currently Kernel supports a limited set of expressions. We should 1) add the STARTS_WITH expression and 2) use file statistics to prune files based on the expression.

Motivation

Better file pruning.

Further details

This means we should

  1. add STARTS_WITH to the Kernel Predicate and support it in the kernel-defaults project
  2. Generate a data skipping filter according to the same rules we use in delta-spark

Willingness to contribute

The Delta Lake Community encourages new feature contributions. Would you or another member of your organization be willing to contribute an implementation of this feature?

  • Yes. I can contribute this feature independently.
  • Yes. I would be willing to contribute this feature with guidance from the Delta Lake community.
  • No. I cannot contribute this feature at this time.
@allisonport-db allisonport-db added enhancement New feature or request kernel labels Jan 18, 2024
@vkorukanti vkorukanti added the good first issue Good for newcomers label Feb 19, 2024
@vkorukanti vkorukanti added this to the 3.2.0 milestone Feb 27, 2024
@vkorukanti vkorukanti modified the milestones: 3.2.0, 3.3.0 Apr 24, 2024
@krishnanravi
Copy link
Contributor

@allisonport-db @vkorukanti I would like to work on this.

@vkorukanti
Copy link
Collaborator

@krishnanravi Sounds good. I assigned the issue to you. Thank you!

@vkorukanti
Copy link
Collaborator

Here is an example PR that adds the IS_NULL expression. STARTS_WITH also requires similar changes. Feel free to ping us for any questions.

@krishnanravi
Copy link
Contributor

krishnanravi commented May 11, 2024

@vkorukanti qq - what data types do we want to support for starts with in kernel defaults?
I just finished an implementation that enforces left side data type and right are always string which otherwise would raise an unsupported operation exception. Is this enough for the kernel defaults?
in contrast, looking at support for starts with in spark, any expression of any data type is supported on both sides. do we want an implementation as comprehensive as spark?

vkorukanti pushed a commit that referenced this issue May 23, 2024
## Description
Add SQL `LIKE` expression support in Kernel list of supported expressions and a default implementation.

Addresses part of #2539 (where `STARTS_WITH` as `LIKE 'str%'`)

## How was this patch tested?
added unit tests

Signed-off-by: Krishnan Paranji Ravi <[email protected]>
longvu-db pushed a commit to longvu-db/delta that referenced this issue May 28, 2024
## Description
Add SQL `LIKE` expression support in Kernel list of supported expressions and a default implementation.

Addresses part of delta-io#2539 (where `STARTS_WITH` as `LIKE 'str%'`)

## How was this patch tested?
added unit tests

Signed-off-by: Krishnan Paranji Ravi <[email protected]>
@vkorukanti
Copy link
Collaborator

The LIKE expression is available. We can write the STARTS_WITH as LIKE 'str% and add the remaining data skipping part of the work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers kernel
Projects
None yet
Development

No branches or pull requests

3 participants