Description
#29299 recognizes List evaluation over scalar values when inner expression preserves number of List items. ARRAY_UNIQUE([1, 1, 2]) remains excluded because removing duplicates changes item count, even though result is still one scalar List and does not depend on DataFrame rows.
ARRAY_UNIQUE([1, 1, 2]) should be classified as scalar, while ARRAY_UNIQUE(values) must remain dependent on column values. Shared classification is needed by #29272 and SQL planning for constant WHERE, JOIN, and IN expressions.
Scope
- Recognize
unique inside List evaluation over scalar expressions
- Support ordered and unordered unique operations
- Keep other operations that change List length excluded
- Keep source columns and other frame-dependent expressions excluded
- Preserve evaluation errors
Description
#29299 recognizes List evaluation over scalar values when inner expression preserves number of List items.
ARRAY_UNIQUE([1, 1, 2])remains excluded because removing duplicates changes item count, even though result is still one scalar List and does not depend on DataFrame rows.ARRAY_UNIQUE([1, 1, 2])should be classified as scalar, whileARRAY_UNIQUE(values)must remain dependent on column values. Shared classification is needed by #29272 and SQL planning for constantWHERE,JOIN, andINexpressions.Scope
uniqueinside List evaluation over scalar expressions