Skip to content

ESQL: Fix conversion of a Lucene wildcard pattern to a regexp #128750

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

Merged

Conversation

bpintea
Copy link
Contributor

@bpintea bpintea commented Jun 2, 2025

This adds the reserved optional characters to the list that is escaped
during conversion. These characters are all enabled by the RegExp.ALL
flag in our use.

Closes #128676, closes #128677.

bpintea added 3 commits June 2, 2025 13:14
This adds the reserved optional characters to the list that is escaped
during conversion. These characters are all enabled by the RegExp.ALL
flag in our use.
@elasticsearchmachine elasticsearchmachine added the Team:Analytics Meta label for analytical engine team (ESQL/Aggs/Geo) label Jun 2, 2025
@elasticsearchmachine
Copy link
Collaborator

Pinging @elastic/es-analytical-engine (Team:Analytics)

@elasticsearchmachine
Copy link
Collaborator

Hi @bpintea, I've created a changelog YAML for you.

Copy link
Contributor

@astefan astefan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While testing this I find it difficult to come up with a test that proves this functionality. Would you mind adding a single IT test for this, please?

Needed to trigger filter pushdown.
@bpintea
Copy link
Contributor Author

bpintea commented Jun 3, 2025

Thanks Andrei and Nik!

@bpintea bpintea added the auto-merge-without-approval Automatically merge pull request when CI checks pass (NB doesn't wait for reviews!) label Jun 3, 2025
@elasticsearchmachine elasticsearchmachine merged commit 5eb54bf into elastic:main Jun 4, 2025
18 checks passed
@bpintea bpintea deleted the fix/luceneWildcardToRegExp branch June 4, 2025 07:28
bpintea added a commit to bpintea/elasticsearch that referenced this pull request Jun 4, 2025
…c#128750)

This adds the reserved optional characters to the list that is escaped
during conversion. These characters are all enabled by the `RegExp.ALL`
flag in our use.

Closes elastic#128676, closes elastic#128677.

(cherry picked from commit 5eb54bf)
elasticsearchmachine added a commit that referenced this pull request Jun 5, 2025
) (#128750) (#128753)  (#128919)

* ESQL: Pushdown constructs doing case-insensitive regexes (#128393)

This introduces an optimization to pushdown to Lucense those language constructs that aim at case-insensitive regular expression matching, used with `LIKE` and `RLIKE` operators, such as:
* `| WHERE TO_LOWER(field) LIKE "abc*"`
* `| WHERE TO_UPPER(field) RLIKE "ABC.*"`

These are now pushed as case-insensitive `wildcard` and `regexp` respectively queries down to Lucene.

Closes #127479

(cherry picked from commit 0a80916)

* ESQL: Fix conversion of a Lucene wildcard pattern to a regexp (#128750)

This adds the reserved optional characters to the list that is escaped
during conversion. These characters are all enabled by the `RegExp.ALL`
flag in our use.

Closes #128676, closes #128677.

(cherry picked from commit 5eb54bf)

* ESQL: Fix case-insensitive test generation with Unicodes (#128753)

This excludes from testing the strings containing Unicode chars that
change length when changing case.

Closes #128705 Closes #128706 Closes #128710 Closes #128711 Closes
Closes #128717 Closes #128789 Closes #128790 Closes #128791 Closes

(cherry picked from commit 092d4ba)

* [CI] Auto commit changes from spotless

* Java21 adaptations and automerge fixes

* [CI] Auto commit changes from spotless

* 8.x's Lucene/RegExp doesn't support case-insensitive matching

* [CI] Auto commit changes from spotless

* One more Lucene 9 fix

---------

Co-authored-by: elasticsearchmachine <[email protected]>
dnhatn added a commit to dnhatn/elasticsearch that referenced this pull request Jun 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
:Analytics/ES|QL AKA ESQL auto-merge-without-approval Automatically merge pull request when CI checks pass (NB doesn't wait for reviews!) backport pending >bug Team:Analytics Meta label for analytical engine team (ESQL/Aggs/Geo) v8.19.0 v9.1.0
Projects
None yet
5 participants