cannot restore schema with is not distinct from on hstore since PG9.6.8
От | Marc Cousin |
---|---|
Тема | cannot restore schema with is not distinct from on hstore since PG9.6.8 |
Дата | |
Msg-id | ffefc172-a487-aa87-a0e7-472bf29735c8@gmail.com обсуждение исходный текст |
Ответы |
Re: cannot restore schema with is not distinct from on hstore since PG 9.6.8
Re: cannot restore schema with is not distinct from on hstore since PG 9.6.8 |
Список | pgsql-bugs |
Hi, This is a really simple test case, I think it's an unintended consequence of CVE-2018-1058: demo=# create extension hstore; CREATE EXTENSION demo=# create table test (a hstore); CREATE TABLE demo=# create index idx_test_not_distinct on test(a) where a is not distinct from ''; CREATE INDEX Then dump this database with a simple pg_dump and try to restore it in another database: 9.6.9/0 [marc@marco-portable pg_dump]$ psql -e demo2 -f /tmp/demo_dump SET statement_timeout = 0; SET SET lock_timeout = 0; SET SET idle_in_transaction_session_timeout = 0; SET SET client_encoding = 'UTF8'; SET SET standard_conforming_strings = on; SET SELECT pg_catalog.set_config('search_path', '', false); set_config ------------ (1 row) SET check_function_bodies = false; SET SET client_min_messages = warning; SET SET row_security = off; SET CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; CREATE EXTENSION COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'; COMMENT CREATE EXTENSION IF NOT EXISTS hstore WITH SCHEMA public; CREATE EXTENSION COMMENT ON EXTENSION hstore IS 'data type for storing sets of (key, value) pairs'; COMMENT SET default_tablespace = ''; SET SET default_with_oids = false; SET CREATE TABLE public.test ( a public.hstore ); CREATE TABLE ALTER TABLE public.test OWNER TO marc; ALTER TABLE COPY public.test (a) FROM stdin; COPY 0 CREATE INDEX idx_test_not_distinct ON public.test USING btree (a) WHERE (NOT (a IS DISTINCT FROM ''::public.hstore)); psql:/tmp/demo_bug:73: ERROR: operator does not exist: public.hstore = public.hstore LINE 1: ...inct ON public.test USING btree (a) WHERE (NOT (a IS DISTINC... ^ HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. As we are working on the 9.6 branch, it appeared after upgrading to 9.6.8 and 9.6.9 following CVE-2018-1058 I presume. Removing the set_config fixes it (but removes the security fix...) Of course, my use case is not this simple example, it's failing on a trigger WHEN ( old.hstorecol is distinct from new.hstorecol ) Regards Marc
Вложения
В списке pgsql-bugs по дате отправления: