Fail analysis if window function uses partitioning on non orderable column#28355
Open
losipiuk wants to merge 1 commit intotrinodb:masterfrom
Open
Fail analysis if window function uses partitioning on non orderable column#28355losipiuk wants to merge 1 commit intotrinodb:masterfrom
losipiuk wants to merge 1 commit intotrinodb:masterfrom
Conversation
findepi
approved these changes
Feb 18, 2026
Comment on lines
+286
to
+288
| assertFails("SELECT row_number() OVER (PARTITION BY t.x) FROM (VALUES(MAP(ARRAY['key1', 'key2', 'key3' ], ARRAY[2373, 3463, 45837])) )AS t(x)") | ||
| .hasErrorCode(TYPE_MISMATCH) | ||
| .hasMessage("line 1:40: map(varchar(4), integer) is not orderable, and therefore cannot be used in window function PARTITION BY"); |
Member
There was a problem hiding this comment.
What was the failure before the fix?
Member
Author
There was a problem hiding this comment.
no failure in alaysis. We got com.google.common.util.concurrent.UncheckedExecutionException: java.lang.UnsupportedOperationException: map(varchar, varchar) is not orderable code: 65536, name: GENERIC_INTERNAL_ERROR at runtime
core/trino-main/src/main/java/io/trino/sql/analyzer/ExpressionAnalyzer.java
Show resolved
Hide resolved
…olumn Currently execution requires symbols used for window function partitioning to be orderable (not just comparable). We use PagesIndex and iterating over it in order to determine partition boundaries. This commit fixes logic of determining invalid queries.
839491b to
7d11364
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Currently execution requires symbols used for window function partitioning to be orderable (not just comparable). We use PagesIndex and iterating over it in order to determine partition boundaries.
This commit fixes logic of determining invalid queries.
Regarding release notes: I do not think those are required - given the queries failed also previously and we just improve user experience making failure more understandable.
Release notes
(x) This is not user-visible or is docs only, and no release notes are required.
( ) Release notes are required. Please propose a release note for me.
( ) Release notes are required, with the following suggested text: