[ 
https://issues.apache.org/jira/browse/CALCITE-7523?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yu Xu updated CALCITE-7523:
---------------------------
    Description: 
ClickHouse/Doris/StarRocks/Databend/BigQuery/Hive/Spark support * REPLACE(expr 
as column);
eg,we can refer 
ClickHouse:[https://clickhouse.com/docs/zh/sql-reference/statements/select/replace-modifier]

The benefits of introducing this syntax are:

1. Eliminates verbose column enumeration — When a table has dozens of columns 
and you only need to transform one or two, `REPLACE` lets you keep the wildcard 
while overriding just the columns that matter, avoiding long, error-prone 
select lists.

2. Preserves schema stability — Unlike manually listing columns, `REPLACE` 
maintains the original column names and their positional order. Adding a new 
column to the table later won't break the query.

3. Complements `EXCLUDE` for full star-modification coverage — With both 
`EXCLUDE` (remove columns) and `REPLACE` (overwrite columns), Calcite now 
supports the complete set of ClickHouse-style star modifiers, making the Babel 
dialect more feature-complete.

4. Reduces maintenance burden — Queries like `SELECT * REPLACE(UPPER(name) AS 
name)` are self-documenting and easier to maintain than repeating every column 
name just to apply a single expression.

5. ClickHouse compatibility — This syntax is natively supported by ClickHouse, 
so adding it improves interoperability for users migrating or federating 
queries from that system.

  was:
ClickHouse, Doris, StarRocks, Databend, BigQuery, Hive/Spark support * 
REPLACE(expr as column);
eg,we can refer 
ClickHouse:https://clickhouse.com/docs/zh/sql-reference/statements/select/replace-modifier

The benefits of introducing this syntax are:

1. Eliminates verbose column enumeration — When a table has dozens of columns 
and you only need to transform one or two, `REPLACE` lets you keep the wildcard 
while overriding just the columns that matter, avoiding long, error-prone 
select lists.

2. Preserves schema stability — Unlike manually listing columns, `REPLACE` 
maintains the original column names and their positional order. Adding a new 
column to the table later won't break the query.

3. Complements `EXCLUDE` for full star-modification coverage — With both 
`EXCLUDE` (remove columns) and `REPLACE` (overwrite columns), Calcite now 
supports the complete set of ClickHouse-style star modifiers, making the Babel 
dialect more feature-complete.

4. Reduces maintenance burden — Queries like `SELECT * REPLACE(UPPER(name) AS 
name)` are self-documenting and easier to maintain than repeating every column 
name just to apply a single expression.

5. ClickHouse compatibility — This syntax is natively supported by ClickHouse, 
so adding it improves interoperability for users migrating or federating 
queries from that system.


> Support the syntax SELECT * REPLACE(expr as column)
> ---------------------------------------------------
>
>                 Key: CALCITE-7523
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7523
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 1.41.0
>            Reporter: Yu Xu
>            Assignee: Yu Xu
>            Priority: Minor
>             Fix For: 1.42.0
>
>
> ClickHouse/Doris/StarRocks/Databend/BigQuery/Hive/Spark support * 
> REPLACE(expr as column);
> eg,we can refer 
> ClickHouse:[https://clickhouse.com/docs/zh/sql-reference/statements/select/replace-modifier]
> The benefits of introducing this syntax are:
> 1. Eliminates verbose column enumeration — When a table has dozens of columns 
> and you only need to transform one or two, `REPLACE` lets you keep the 
> wildcard while overriding just the columns that matter, avoiding long, 
> error-prone select lists.
> 2. Preserves schema stability — Unlike manually listing columns, `REPLACE` 
> maintains the original column names and their positional order. Adding a new 
> column to the table later won't break the query.
> 3. Complements `EXCLUDE` for full star-modification coverage — With both 
> `EXCLUDE` (remove columns) and `REPLACE` (overwrite columns), Calcite now 
> supports the complete set of ClickHouse-style star modifiers, making the 
> Babel dialect more feature-complete.
> 4. Reduces maintenance burden — Queries like `SELECT * REPLACE(UPPER(name) AS 
> name)` are self-documenting and easier to maintain than repeating every 
> column name just to apply a single expression.
> 5. ClickHouse compatibility — This syntax is natively supported by 
> ClickHouse, so adding it improves interoperability for users migrating or 
> federating queries from that system.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to