BUG #18393: Bad multiple "inplace" insert into domain of complex type
The Post Office <noreply@postgresql.org>
From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: pashaharkov@yandex.ru
Date: 2024-03-14T06:21:16Z
Lists: pgsql-bugs
The following bug has been logged on the website:
Bug reference: 18393
Logged by: Pablo Kharo
Email address: pashaharkov@yandex.ru
PostgreSQL version: 16.2
Operating system: Mac OS 14.1
Description:
Hi, i have found strange thing when was using domain of complex type.
When i was using insert like this to domain of type:
```
CREATE TYPE user_tp AS (
uid TEXT,
email text,
timestamp TIMESTAMP
);
create domain user_domain as public.user_tp;
CREATE TABLE comps_tb (
id SERIAL PRIMARY KEY,
us user_domain NOT NULL
);
insert into public.comps_tb
(
us.uid,
us.email
)
values
(
'213'::TEXT,
'email'::TEXT
),
(
'321'::TEXT,
'email2'::TEXT
);
select
id,
(us).uid,
(us).email
from
public.comps_tb;
```
I have output like this:
id|uid |email |
--+-------+----------+
1|(213,,)|(,email,) |
2|(321,,)|(,email2,)|
But i expecting
id|uid |email |
--+-------+----------+
1|213|email |
2|321|email2|
So, it has created additional brackets in uid and email. BUT if i inserting
into this table only one element, it inserts without additional brackets.
Also additional brackets are not creating when i am using complex type
itself - not domain,
Commits
-
Make INSERT-from-multiple-VALUES-rows handle domain target columns.
- b4a71cf65d70 17.0 landed
- 82c87af7a0ac 12.19 landed
- 7c61d23422af 15.7 landed
- 52898c63e724 16.3 landed
- 3621ffd9f21b 14.12 landed
- 0200398dd39e 13.15 landed