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

[Maintenance] Merge Calcite feature branch to main #3394

Open
5 of 6 tasks
LantaoJin opened this issue Mar 7, 2025 · 4 comments
Open
5 of 6 tasks

[Maintenance] Merge Calcite feature branch to main #3394

LantaoJin opened this issue Mar 7, 2025 · 4 comments
Labels
calcite calcite migration releated maintenance Improves code quality, but not the product Priority-High v3.0.0

Comments

@LantaoJin
Copy link
Member

LantaoJin commented Mar 7, 2025

Our target is releasing the Calcite execution engine of PPL on OpenSearch in v3.0.0.
On this first release, it will include:

  • 1. Leverage Apache Calcite query planner as the PPL query optimizer
  • 2. Leverage Apache Calcite linq4j enumerator as the PPL query execution backend (in coordinator node)
  • 3. Support new PPL commands including Join/Lookup/Subsearch on OpenSearch.
  • 4. Support pushdown Filter, Project, and partial Aggregation operator to OpenSearch cluster.
  • 5. Support almost existed functions and core data types.
  • 6. Automatically fallback to V2 engine when a query is unsupported in new engine.

Check its parent issue for details and status of all open issues.

This issue is for addressing the current gaps before merging to main branch:

  1. Resolve all blocker issues (will list in comment).
  2. Resolve all conflicts with main branch. The merging action MUST use rebase only.
  3. Improve necessary code coverage, disabled for now.
  4. Migrate all existing ITs to new engine.
  5. Create issues for all unsupported usages/cases.
  6. Identify those bug fixes which made in dev branch and backport them to 2.x. (for example [BUG] Issues in PPL grammar #3391 (comment))
  7. Provide docs for new functionality (may open a new issue after release code freeze)
@LantaoJin LantaoJin added calcite calcite migration releated maintenance Improves code quality, but not the product and removed untriaged labels Mar 7, 2025
@LantaoJin
Copy link
Member Author

@penghuo @dai-chen , let me know if anything I miss

@LantaoJin
Copy link
Member Author

LantaoJin commented Mar 7, 2025

v3.0.0-beta blockers(not tech blocker):

commands:
#3358
#3347
#3407

expressions:
#3354
#3333
#3420
#3432
#3439
#3452

functions:
#3398
#3399
#3400
#3401
#3417

types:
Would #3322 and its children be treated as blockers?

@penghuo
Copy link
Collaborator

penghuo commented Mar 7, 2025

  1. Automatically fallback to V2 engine when a query is unsupported in new engine.

I would like to know which types of commands or functions trigger the fallback. We have observed that the current V2 engine fallback approach results in a poor user experience. My suggestion is to create clear documentation that outlines the limitations for each command and function will fallback.

@penghuo
Copy link
Collaborator

penghuo commented Mar 7, 2025

Also consider benchmark V2 and V3 engine and publish results.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
calcite calcite migration releated maintenance Improves code quality, but not the product Priority-High v3.0.0
Projects
None yet
Development

No branches or pull requests

2 participants