BUG #18327: Column naming inconsistency for boolean literals in ELSE clauses of CASE expressions.
От | PG Bug reporting form |
---|---|
Тема | BUG #18327: Column naming inconsistency for boolean literals in ELSE clauses of CASE expressions. |
Дата | |
Msg-id | 18327-f25f77a50d104716@postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #18327: Column naming inconsistency for boolean literals in ELSE clauses of CASE expressions.
|
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 18327 Logged by: Michael Bondarenko Email address: work.michael.2956@gmail.com PostgreSQL version: 14.10 Operating system: MacOS Sonoma 14.1.1 (23B81) Description: I'm running my queries on the TPC-H schema, which can be found at: https://github.com/dimitri/tpch-citus/blob/master/schema/tpch-schema.sql I found the following inconsistency: ``` tpch=# select case when true then true else true end; case ------ t (1 row) tpch=# select case when true then true else (select true) end; bool ------ t (1 row) ``` As you can see, the auto-generated aliases do not correspond. The expected behaviour was for the first query to also name the column 'bool'. I base my expectations on: 1) This query naming the result 'bool': ``` tpch=# select true; bool ------ t (1 row) ``` 2) These queries propagating the column name from the else clause of the case expression: 2.1) Propagation of the aggregate function name ``` tpch=# select case when true then true else bool_or(true) end; bool_or --------- t (1 row) ``` 2.2) Propagation of the [compound] column identifier: ``` tpch=# select case when true then 1 else t1.n_nationkey end from nation as t1 limit 1; n_nationkey ------------- 1 (1 row) ``` 2.3) Propagation of the simple column identifier: ``` tpch=# select case when true then 1 else n_nationkey end from nation limit 1; n_nationkey ------------- 1 (1 row) ``` 2.4) And even nested case expressions: ``` tpch=# select case when true then 1 else ( case when true then 1 else t1.n_nationkey end ) end from nation as t1 limit 1; n_nationkey ------------- 1 (1 row) ```
В списке pgsql-bugs по дате отправления: