Sorry I omitted the output. It is as follows:
DROP TABLE
DROP TYPE
CREATE TYPE
CREATE TABLE
INSERT 0 1
column1
---------
(0)
(1 row)
psql:test.sql:14: ERROR: input of anonymous composite types is not implemented
LINE 1: SELECT * FROM table1 WHERE column1 = '(0)';
^
column1
---------
(0)
(1 row)
psql:test.sql:20: ERROR: input of anonymous composite types is not implemented
LINE 1: SELECT * FROM table1 WHERE column1 IN ('(0)');
The following bug has been logged on the website:
Bug reference: 17101
Logged by: Andrew Kiellor
Email address: akiellor@gmail.com
PostgreSQL version: 13.3
Operating system: Debian (docker)
Description:
I've observed some inconsistent behaviour when querying with anonymous
composite types. The following queries illustrate the observations:
-- cleanup
DROP TABLE IF EXISTS table1;
DROP TYPE IF EXISTS type1;
-- scenario
CREATE TYPE type1 AS (x int);
CREATE TABLE table1 (column1 type1);
INSERT INTO table1 (column1) VALUES ('(0)');
-- passing scenario - equality with typed composite type
SELECT * FROM table1 WHERE column1 = '(0)'::type1;
-- failing scenario - equality with anonymous composite type
SELECT * FROM table1 WHERE column1 = '(0)';
-- passing scenario - IN query with multiple anonymous composite types
SELECT * FROM table1 WHERE column1 IN ('(0)', '(0)');
-- failing scenario - IN query with single anonymous composite type
SELECT * FROM table1 WHERE column1 IN ('(0)');