BUG #18962: Type Conversion incorrect when performing UNION of queries.

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: "sundar(at)mudupalli(dot)com" <sundar(at)mudupalli(dot)com>, "pgsql-bugs(at)lists(dot)postgresql(dot)org" <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: BUG #18962: Type Conversion incorrect when performing UNION of queries.
Date: 2025-06-19 15:46:52
Message-ID: CAKFQuwaGuUtTBOd4BiGYmuj+sq8d7T4_SVoKhDbpBCV7ubNJTg@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Thursday, June 19, 2025, PG Bug reporting form <noreply(at)postgresql(dot)org>
wrote:

> The following bug has been logged on the website:
>
> Bug reference: 18962
> Logged by: Sundar Mudupalli
> Email address: sundar(at)mudupalli(dot)com
> PostgreSQL version: 17.5
> Operating system: Ubuntu I believe (using a Cloud SQL instance in GC
> Description:
>
> Take the following table definitions:
> ```
> create table public.test_table_1 as
> SELECT
> 'AA'::character(2) AS text_type
> UNION ALL
> SELECT
> 'BB'::character(2) AS text_type
> UNION ALL
> SELECT
> 'CC'::TEXT AS text_type
> ;
> create table public.test_table_2 (
> char_fixed character,
> char_fixed_len character(5),
> char_var character varying(5),
> text_column text );
> ```
> Based on the [type conversion rules for
> Union](https://www.postgresql.org/docs/current/typeconv-union-case.html),
> the column `text_type` in `test_table_1` should resolve to the postgres
> data
> type `TEXT`.

We typically choose to suggest just avoiding “character” instead of trying
to document why the observed behavior is correct…

In short, "character no length restriction" is actually the documented type
"bpchar".
"character length restricted" is effectively a domain over "bpchar" - rule 2
"text" implicitly converts to "bpchar" - rule 5 vice-versa exception
Thus the final result is "bpchar".

David J.

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Junwang Zhao 2025-06-19 15:53:20 Re: BUG #18959: Name collisions of expression indexes during parallel Index creations on a pratitioned table.
Previous Message Tom Lane 2025-06-19 15:44:03 Re: BUG #18962: Type Conversion incorrect when performing UNION of queries.