Skip to content

Support unnest for struct data type #10264

@duongcongtoai

Description

@duongcongtoai

Is your feature request related to a problem or challenge?

Support unnest for struct data type, an example of such feature in Duckdb

D CREATE TABLE t1 (s STRUCT(v VARCHAR, i INTEGER));
D INSERT INTO t1 VALUES (ROW('a', 42)),(ROW('b', 43));
D select unnest(s) from t1;
┌─────────┬───────┐
│    v    │   i   │
│ varchar │ int32 │
├─────────┼───────┤
│ a       │    42 │
│ b       │    43 │
└─────────┴───────┘

Describe the solution you'd like

We already have UnnestExec that support unnest on list data type, where each item in a list value will result into a new row into the output.
But unnest for struct does almost different thing, where number of output row is expected to stay the same as the input, and only the number of output columns increase. Maybe we should add a new executor for this type of operation like "StructUnnestExec"

Describe alternatives you've considered

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions