From: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> |
---|---|
To: | Lele Gaifax <lele(at)metapensiero(dot)it>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: Cannot restore dump when using IS DISTINCT FROM on a HSTORE column |
Date: | 2019-09-05 14:30:39 |
Message-ID: | e6284cec-7c2d-950d-33e2-cdf7d4e9d9bc@aklaver.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 9/5/19 7:16 AM, Lele Gaifax wrote:
> Hi all,
>
> I'm hitting a problem very similar to the one described here[1]: one of my
> databases have the following trigger
>
> CREATE TRIGGER trg_dn_customer_contents_950_reset_usable
> BEFORE UPDATE
> ON dn.customer_contents
> FOR EACH ROW
> WHEN (OLD.usable IS NOT NULL AND OLD.usable = NEW.usable
> AND (OLD.customer_content_category_id IS DISTINCT FROM NEW.customer_content_category_id
> OR OLD.title IS DISTINCT FROM NEW.title
> OR OLD.summary IS DISTINCT FROM NEW.summary
> OR OLD.description IS DISTINCT FROM NEW.description
> OR OLD.active IS DISTINCT FROM NEW.active
> OR OLD.languages IS DISTINCT FROM NEW.languages
> OR OLD.address_id IS DISTINCT FROM NEW.address_id
> OR OLD.schedule IS DISTINCT FROM NEW.schedule
> OR OLD.price IS DISTINCT FROM NEW.price))
> EXECUTE FUNCTION dn.reset_customer_content_usable()
>
> where several of those columns are HSTOREs. Trying to restore a dump I get the
> same error: "ERROR: operator does not exist: public.hstore = public.hstore".
> The source and target PG versions are the same, 11.5.
>
> I followed the link[2] and read the related thread: as it is more that one
> year old, I wonder if there is any news on this, or alternatively if there is
> a recommended workaround: as that is the only place where I'm using IS
> DISTINCT FROM against an HSTORE field, I could easily replace those
> expressions with the more verbose equivalent like
>
> (OLD.x IS NULL AND NEW.x IS NOT NULL)
> OR
> (OLD.x IS NOT NULL AND NEW.x IS NULL)
> OR
> (OLD.x <> NEW.x)
>
> lacking a better approach.
>
> What would you suggest?
I don't know if progress has been made on this or not.
Are you able to use a plain text dump?
If so you might try changing:
SELECT pg_catalog.set_config('search_path', '', false);
to something that covers the path where you installed hstore.
>
> Thanks in advance,
> ciao, lele.
>
> [1] https://www.postgresql-archive.org/BUG-15695-Failure-to-restore-a-dump-ERROR-operator-does-not-exist-public-hstore-public-hstore-td6077272.html
> [2] https://www.postgresql.org/message-id/flat/ffefc172-a487-aa87-a0e7-472bf29735c8%40gmail.com
>
--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2019-09-05 14:35:37 | Re: Cannot restore dump when using IS DISTINCT FROM on a HSTORE column |
Previous Message | Lele Gaifax | 2019-09-05 14:16:19 | Cannot restore dump when using IS DISTINCT FROM on a HSTORE column |