Skip to content

[SPARK-54138][SQL] Enforce constant configuration parameter for Theta and HLL - #52836

Closed
cboumalh wants to merge 2 commits into
apache:masterfrom
cboumalh:hll-theta-check-foldable-param
Closed

[SPARK-54138][SQL] Enforce constant configuration parameter for Theta and HLL#52836
cboumalh wants to merge 2 commits into
apache:masterfrom
cboumalh:hll-theta-check-foldable-param

Conversation

@cboumalh

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

This PR enforces that the sketch configuration parameter (lgConfigK/lgNomEntries) in both HllSketchAgg and ThetaSketchAgg must be a constant value.
If the parameter expression (right) is not foldable, a QueryExecutionErrors.*MustBeConstantError(prettyName) is thrown.

This change ensures that the aggregation configuration is validated at analysis time rather than runtime, preventing inconsistent or invalid sketch behavior.

Why are the changes needed?

The configuration parameter determines the accuracy and memory footprint of the sketch.
Allowing it to vary dynamically at runtime could lead to nondeterministic aggregation results and incorrect computations.
By enforcing it as a constant expression, we ensure deterministic behavior, predictable memory use, and alignment with the expected semantics of sketch-based aggregations.

Does this PR introduce any user-facing change?

No

How was this patch tested?

Added tests in SQLQueryTestSuite

Was this patch authored or co-authored using generative AI tooling?

No

@cboumalh

Copy link
Copy Markdown
ContributorAuthor

cc @dtenedor

@dtenedor

Copy link
Copy Markdown
Contributor

Looks good, thanks for the fix!

@dtenedor

Copy link
Copy Markdown
Contributor

Merging to master and 4.1

dtenedor pushed a commit that referenced this pull request Nov 3, 2025
… and HLL
### What changes were proposed in this pull request?
This PR enforces that the sketch configuration parameter (lgConfigK/lgNomEntries) in both HllSketchAgg and ThetaSketchAgg must be a constant value.
If the parameter expression (right) is not foldable, a QueryExecutionErrors.*MustBeConstantError(prettyName) is thrown.
This change ensures that the aggregation configuration is validated at analysis time rather than runtime, preventing inconsistent or invalid sketch behavior.
### Why are the changes needed?
The configuration parameter determines the accuracy and memory footprint of the sketch.
Allowing it to vary dynamically at runtime could lead to nondeterministic aggregation results and incorrect computations.
By enforcing it as a constant expression, we ensure deterministic behavior, predictable memory use, and alignment with the expected semantics of sketch-based aggregations.
### Does this PR introduce _any_ user-facing change?
No
### How was this patch tested?
Added tests in SQLQueryTestSuite
### Was this patch authored or co-authored using generative AI tooling?
No
Closes#52836 from cboumalh/hll-theta-check-foldable-param.
Authored-by: Chris Boumalhab <cboumalh@amazon.com>
Signed-off-by: Daniel Tenedorio <daniel.tenedorio@databricks.com>
(cherry picked from commit be6ab9c)
Signed-off-by: Daniel Tenedorio <daniel.tenedorio@databricks.com>
huangxiaopingRD pushed a commit to huangxiaopingRD/spark that referenced this pull request Nov 25, 2025
… and HLL
### What changes were proposed in this pull request?
This PR enforces that the sketch configuration parameter (lgConfigK/lgNomEntries) in both HllSketchAgg and ThetaSketchAgg must be a constant value.
If the parameter expression (right) is not foldable, a QueryExecutionErrors.*MustBeConstantError(prettyName) is thrown.
This change ensures that the aggregation configuration is validated at analysis time rather than runtime, preventing inconsistent or invalid sketch behavior.
### Why are the changes needed?
The configuration parameter determines the accuracy and memory footprint of the sketch.
Allowing it to vary dynamically at runtime could lead to nondeterministic aggregation results and incorrect computations.
By enforcing it as a constant expression, we ensure deterministic behavior, predictable memory use, and alignment with the expected semantics of sketch-based aggregations.
### Does this PR introduce _any_ user-facing change?
No
### How was this patch tested?
Added tests in SQLQueryTestSuite
### Was this patch authored or co-authored using generative AI tooling?
No
Closesapache#52836 from cboumalh/hll-theta-check-foldable-param.
Authored-by: Chris Boumalhab <cboumalh@amazon.com>
Signed-off-by: Daniel Tenedorio <daniel.tenedorio@databricks.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@cboumalh@dtenedor