Skip to content

Support COLUMNS(* EXLCUDE(col1, col2)) syntax #1972

@ryanschneider

Description

@ryanschneider

DuckDB supports excluding columns via this syntax:

SELECT COLUMNS(* EXCLUDE(col1, col2)) FROM tbl

Currently this format gives a syntax error:

Parse error: sql parser error: Expected: ), found: EXCLUDE at Line: 1, Column: 18

More details at: https://duckdb.org/docs/stable/sql/expressions/star.html#columns-expression

Note that other modifiers beyond EXCLUDE are supported, such as REPLACE, RENAME, LIKE etc, see the syntax diagram at https://duckdb.org/docs/stable/sql/query_syntax/select.html#syntax (click star-options on the digram to expand).

This highly suggests that the general solution for this would be to add a new Expr::Columns expression enum with parsing logic somewhat similiar to Expr::MatchAgainst, and then add logic in parse_select_item to support returning a SelectItem::UnnamedExpr(Expr::Columns).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions