Thread: BUG #11884: pg_dump / restore mangles IS DISTINCT FROM expressions

BUG #11884: pg_dump / restore mangles IS DISTINCT FROM expressions

From
nickbarnes01@gmail.com
Date:
The following bug has been logged on the website:

Bug reference:      11884
Logged by:          Nick Barnes
Email address:      nickbarnes01@gmail.com
PostgreSQL version: 9.3.5
Operating system:   CentOS 6.5
Description:

IS DISTINCT FROM expressions are not dumped/restored correctly if the
comparison operator is outside the search path. e.g.:

psql <<EOF
  CREATE DATABASE test1;
  CREATE DATABASE test2;
  \c test1;
  CREATE SCHEMA s;
  CREATE EXTENSION citext SCHEMA s;
  SET search_path TO public, s;
  CREATE TABLE t (x citext CHECK (x IS DISTINCT FROM ''));
EOF
pg_dump -d test1 | psql -d test2
psql -d test2 -c '\d t'

The check constraint is restored as (x::text IS DISTINCT FROM
''::s.citext::text), i.e. using the <>(text,text) operator instead of
<>(citext,citext).

Re: BUG #11884: pg_dump / restore mangles IS DISTINCT FROM expressions

From
Tom Lane
Date:
nickbarnes01@gmail.com writes:
> IS DISTINCT FROM expressions are not dumped/restored correctly if the
> comparison operator is outside the search path. e.g.:

Yeah, this is already under discussion in connection with bug #11617:
http://www.postgresql.org/message-id/flat/20141009200031.25464.53769@wrigleys.postgresql.org

            regards, tom lane