On Sun, Jan 24, 2021, at 11:21, Mark Rofail wrote: >This seems to be a type casting problem indeed. The coercion part of the patch >found in "ruleutils.c:11438-11491" is the culprit, is there a cleaner way to >achieve this? >I am aware of the problem and will try to fix it, but I assume this is because >of "Array-containselem-gin-v1.patch" can you give the v13 patch a try alone? >I will work on a fix and send it soon.
Actually, the error occurred without the "Array-containselem-gin-v1.patch". However, I also had the "v3-0001-Add-primary-keys-and-unique-constraints-to-system.patch", to get PKs on the oids. So, I've retested to ensure it didn't cause this problem, this time only 7e57255f6189380d545e1df6a6b38827b213e3da + "Array-ELEMENT-foreign-key-v13.patch", but I still get the same error though. Exact steps to reproduce error from a clean installation: $ cd postgresql $ git checkout 7e57255f6189380d545e1df6a6b38827b213e3da $ patch -p1 < ~/Array-ELEMENT-foreign-key-v13.patch $ ./configure --prefix=~/pg-head $ make -j16 $ make install $ initdb -D ~/pghead $ pg_ctl -D ~/pghead -l /tmp/logfile start $ createdb $USER $ psql CREATE SCHEMA catalog_clone; CREATE TABLE catalog_clone.pg_proc AS SELECT * FROM pg_catalog.pg_proc; CREATE TABLE catalog_clone.pg_type AS SELECT * FROM pg_catalog.pg_type; ALTER TABLE catalog_clone.pg_type ADD PRIMARY KEY (oid); ALTER TABLE catalog_clone.pg_proc ADD FOREIGN KEY (EACH ELEMENT OF proargtypes) REFERENCES catalog_clone.pg_type (oid); UPDATE catalog_clone.pg_proc SET proargtypes = '19 25 12345'::oidvector WHERE oid = 79; ERROR: operator does not exist: oidvector pg_catalog.@> oid[] LINE 1: ... 1 FROM ONLY "catalog_clone"."pg_type" x WHERE $1 OPERATOR(p... ^ HINT: No operator matches the given name and argument types. You might need to add explicit type casts. QUERY: SELECT 1 WHERE (SELECT pg_catalog.count(DISTINCT y) FROM pg_catalog.unnest($1) y) OPERATOR(pg_catalog.=) (SELECT pg_catalog.count(*) FROM (SELECT 1 FROM ONLY "catalog_clone"."pg_type" x WHERE $1 OPERATOR(pg_catalog. @>) ARRAY["oid"] FOR KEY SHARE OF x) z) /Joel