From: | Joe Van Dyk <joe(at)tanga(dot)com> |
---|---|
To: | gregburek(at)heroku(dot)com |
Cc: | "pgsql-bugs(at)postgresql(dot)org" <pgsql-bugs(at)postgresql(dot)org> |
Subject: | Re: BUG #13457: postgres_fdw, non-postgres user mapping, materialized view leads to failed pg_upgrade |
Date: | 2015-08-02 14:05:06 |
Message-ID: | CACfv+p+-gnC+hUj5wBaYsXcarMMbXh5SMfp0oVkWEfZU15DsjA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
I'm running into this same problem using pg_dumpall.
On Sun, Jun 21, 2015 at 9:20 PM, <gregburek(at)heroku(dot)com> wrote:
> The following bug has been logged on the website:
>
> Bug reference: 13457
> Logged by: Greg Burek
> Email address: gregburek(at)heroku(dot)com
> PostgreSQL version: 9.4.2
> Operating system: Linux
> Description:
>
> Hello,
>
> A customer has run into a strange interaction between the postgres_fdw
> extension, materialized view and pg_restore, as used by pg_upgrade.
>
> Reproduction schema:
>
> CREATE SERVER redshift_dw FOREIGN DATA WRAPPER postgres_fdw OPTIONS (
> dbname 'reporting',
> host 'example.com',
> port '5439',
> sslmode 'require'
> );
> ALTER SERVER redshift_dw OWNER TO u5cuus46hhtdfs;
> CREATE USER MAPPING FOR u5cuus46hhtdfs SERVER redshift_dw OPTIONS (
> password '',
> "user" 'user'
> );
>
> CREATE MATERIALIZED VIEW daily_stats_mv AS
> SELECT daily_stats_v.campaign_id,
> daily_stats_v.targeting_group_id,
> daily_stats_v.creative_id,
> daily_stats_v.date,
> daily_stats_v.impressions,
> daily_stats_v.clicks,
> daily_stats_v.media_cost,
> daily_stats_v.spend,
> daily_stats_v.serving_fees
> FROM daily_stats_v
> WITH NO DATA;
> ALTER TABLE public.daily_stats_mv OWNER TO u5cuus46hhtdfs;
>
> When running upgrading from postgres version 9.3.5 to 9.4.2, the pg_upgrade
> command fails with logs that include:
>
> pg_restore: creating MATERIALIZED VIEW daily_stats_mv
> pg_restore: [archiver (db)] Error while PROCESSING TOC:
> pg_restore: [archiver (db)] Error from TOC entry 354; 1259 266280
> MATERIALIZED VIEW daily_stats_mv u5cuus46hhtdfs
> pg_restore: [archiver (db)] could not execute query: ERROR: user mapping
> not found for "postgres"
> Command was:
> -- For binary upgrade, must preserve pg_type oid
> SELECT binary_upgrade.set_next_pg_type_oid('266282'::pg_catalog.oid);
>
> It appears that as part of the pg_upgrade script, the db is run through
> pg_dump and pg_restore. The schema generated by pg_dump appears to attempt
> to create the MATERIALIZED VIEW daily_stats_mv as user postgres and then
> change ownership to user u5cuus46hhtdfs. The table create fails because the
> postgres_fdw that the materialized view is based on has no user mapping for
> the postgres user, even though the correct user is set as the next
> statement.
>
> Should the schema be rendered by pg_dump so that the materialized view is
> created as the intended user to avoid a trip through the postgres user,
> which may or may not have a user mapping that dictates if the materialized
> view may be created?
>
> User worked around the issue by dropping the fdw and the materialized view
> before performing a dump and restore upgrade.
>
> Greg
>
>
> --
> Sent via pgsql-bugs mailing list (pgsql-bugs(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-bugs
>
From | Date | Subject | |
---|---|---|---|
Next Message | Heikki Linnakangas | 2015-08-02 16:57:37 | Re: BUG #13442: ISBN doesn't always roundtrip with text |
Previous Message | Noah Misch | 2015-08-02 02:54:37 | Re: Missing file versions for a bunch of dll/exe files in Windows builds |