Skip to content

sql: tuples not properly preserved during serialization #26624

@knz

Description

@knz

Found while investigating #26621.
The expression ROW(x) gets serialized after normalization (format with FmtParsable) to (x) which has a completely different meaning. This causes the following error when distribution is enabled, but not with local execution:

> select row(1) in (row(2), row(1), row(v)) from kv;
pq: (1:::INT) IN ((2:::INT), (1:::INT), ROW("$0")): unsupported comparison operator: (1:::INT) IN ((2:::INT), (1:::INT), ROW("$0")): expected ROW("$0") to be of type int, found type tuple{int}

Also all the labeled tuples lose their labels during serialization. This likely breaks distribution of queries with labeled tuples.

Metadata

Metadata

Assignees

Labels

A-sql-semanticsC-bugCode not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions