Skip to content

ESQL: Enable nullify and fail unmapped resolution in tech-preview#140528

Merged
GalLalouche merged 16 commits intoelastic:mainfrom
GalLalouche:feat/set_unmapped_nullify_keyword_tp
Jan 14, 2026
Merged

ESQL: Enable nullify and fail unmapped resolution in tech-preview#140528
GalLalouche merged 16 commits intoelastic:mainfrom
GalLalouche:feat/set_unmapped_nullify_keyword_tp

Conversation

@GalLalouche
Copy link
Contributor

@GalLalouche GalLalouche commented Jan 12, 2026

This PR removes the snapshot protection of FAIL and NULLIFY options for unmapped fields (only LOAD remains protected under snapshot).

Follow up to #140463.
Related: #138888.

@GalLalouche GalLalouche added >feature Team:Analytics Meta label for analytical engine team (ESQL/Aggs/Geo) auto-backport Automatically create backport pull requests when merged :Analytics/ES|QL AKA ESQL v9.3.0 v9.4.0 labels Jan 12, 2026
@elasticsearchmachine
Copy link
Collaborator

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

@elasticsearchmachine
Copy link
Collaborator

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


public void testSet() {
assumeTrue("SET command available in snapshot only", EsqlCapabilities.Cap.SET_COMMAND.isEnabled());
assumeTrue("SET command required", EsqlCapabilities.Cap.SET_COMMAND.isEnabled());
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Apparently, SET no longer requires snapshot, so I've updated these comments in this file.

@github-actions
Copy link
Contributor

ℹ️ Important: Docs version tagging

👋 Thanks for updating the docs! Just a friendly reminder that our docs are now cumulative. This means all 9.x versions are documented on the same page and published off of the main branch, instead of creating separate pages for each minor version.

We use applies_to tags to mark version-specific features and changes.

Expand for a quick overview

When to use applies_to tags:

✅ At the page level to indicate which products/deployments the content applies to (mandatory)
✅ When features change state (e.g. preview, ga) in a specific version
✅ When availability differs across deployments and environments

What NOT to do:

❌ Don't remove or replace information that applies to an older version
��� Don't add new information that applies to a specific version without an applies_to tag
❌ Don't forget that applies_to tags can be used at the page, section, and inline level

🤔 Need help?

Copy link
Contributor

@ivancea ivancea left a comment

Choose a reason for hiding this comment

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

LGTM

Comment on lines 103 to 104
} catch (ParsingException pe) {
throw pe;
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this needed?

Copy link
Contributor Author

@GalLalouche GalLalouche Jan 12, 2026

Choose a reason for hiding this comment

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

Yes, since otherwise it would be swallowed up by the catch (Exception e) below it, which would lead to a very confusing error message :) In theory, we can probably do better than try/catch to begin with, but I didn't want to change whatever underlying logic existed, other than invalidating LOAD.

verifySetUnmappedFields(List.of("FAIL", "NULLIFY"));

try {
statement("SET unmapped_fields=\"" + randomizeCase(UnmappedResolution.LOAD.name()) + "\"; row a = 1");
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: assertThrows()?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

@GalLalouche GalLalouche added the test-release Trigger CI checks against release build label Jan 12, 2026
Copy link
Contributor

@alex-spies alex-spies left a comment

Choose a reason for hiding this comment

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

LGTM with minor comments only

@alex-spies alex-spies added the auto-merge-without-approval Automatically merge pull request when CI checks pass (NB doesn't wait for reviews!) label Jan 14, 2026
@GalLalouche GalLalouche enabled auto-merge (squash) January 14, 2026 13:44
@GalLalouche GalLalouche merged commit e0a15c4 into elastic:main Jan 14, 2026
37 checks passed
@GalLalouche GalLalouche deleted the feat/set_unmapped_nullify_keyword_tp branch January 14, 2026 13:49
@elasticsearchmachine
Copy link
Collaborator

💔 Backport failed

Status Branch Result
9.3 Commit could not be cherrypicked due to conflicts

You can use sqren/backport to manually backport by running backport --upstream elastic/elasticsearch --pr 140528

GalLalouche added a commit to GalLalouche/elasticsearch that referenced this pull request Jan 14, 2026
…astic#140528)

This PR removes the snapshot protection of FAIL and NULLIFY options for unmapped fields (only LOAD remains protected under snapshot).

Follow up to elastic#140463.
Related: elastic#138888.
elasticsearchmachine pushed a commit that referenced this pull request Jan 15, 2026
…ew (#140528) (#140657)

* ESQL: Enable nullify and fail unmapped resolution in tech-preview (#140528)

This PR removes the snapshot protection of FAIL and NULLIFY options for unmapped fields (only LOAD remains protected under snapshot).

Follow up to #140463.
Related: #138888.

* Fix statsAggs tests

---------

Co-authored-by: Alexander Spies <alexander.spies@elastic.co>
spinscale pushed a commit to spinscale/elasticsearch that referenced this pull request Jan 21, 2026
…astic#140528)

This PR removes the snapshot protection of FAIL and NULLIFY options for unmapped fields (only LOAD remains protected under snapshot).

Follow up to elastic#140463.
Related: elastic#138888.
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-backport Automatically create backport pull requests when merged auto-merge-without-approval Automatically merge pull request when CI checks pass (NB doesn't wait for reviews!) >feature Team:Analytics Meta label for analytical engine team (ESQL/Aggs/Geo) test-release Trigger CI checks against release build v9.3.0 v9.4.0

4 participants