Lists: | pgsql-bugs |
---|
From: | shaunc(at)factfiber(dot)com |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | BUG #8655: pg_restore problems with materialized views |
Date: | 2013-12-04 07:12:09 |
Message-ID: | E1Vo6cz-0004Pf-DN@wrigleys.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-bugs |
The following bug has been logged on the website:
Bug reference: 8655
Logged by: Shaun Cutts
Email address: shaunc(at)factfiber(dot)com
PostgreSQL version: 9.3.1
Operating system: mac os 10.8.5
Description:
I have a large database (100s of millions of rows) in which there are many
"chained" materialized views -- that is: some depend on others, etc...
When I back up and then restore, only the "first layer" of views are
refreshed. I can then go back and manually restore missing views with "-t"
-- though if I do too many at once the same thing happens.
I have tried to generate a small test case, but with no luck. I suspect that
pg_restore needs to issue "refresh" before it creates successive views, and
in "small" cases it gets that right -- but there is some arbitrariness in
the order that trips it up in sufficiently complex cases.
I also have indexes defined on the materialized views. I don't know if that
matters -- an extra sequencing problem for restore though.
From: | Kevin Grittner <kgrittn(at)ymail(dot)com> |
---|---|
To: | "shaunc(at)factfiber(dot)com" <shaunc(at)factfiber(dot)com>, "pgsql-bugs(at)postgresql(dot)org" <pgsql-bugs(at)postgresql(dot)org> |
Subject: | Re: BUG #8655: pg_restore problems with materialized views |
Date: | 2013-12-04 19:25:38 |
Message-ID: | 1386185138.72693.YahooMailNeo@web162901.mail.bf1.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-bugs |
"shaunc(at)factfiber(dot)com" <shaunc(at)factfiber(dot)com> wrote:
> I have a large database (100s of millions of rows) in which there
> are many "chained" materialized views -- that is: some depend on
> others, etc...
>
> When I back up and then restore, only the "first layer" of views
> are refreshed. I can then go back and manually restore missing
> views with "-t"
> -- though if I do too many at once the same thing happens.
>
> I have tried to generate a small test case, but with no luck.
Yeah, it should work, and I have run a lot of test cases without
seeing this. The one case that is a little weird is when you
populate a materialized view "b" which references materialized view
"a", REFRESH MATERIALIZED VIEW "a" WITH NO DATA, and then dump.
> I suspect that pg_restore needs to issue "refresh" before it
> creates successive views, and in "small" cases it gets that right
> -- but there is some arbitrariness in the order that trips it up
> in sufficiently complex cases.
That does sound likely, but without a failing case, it is going to
be hard to diagnose.
> I also have indexes defined on the materialized views. I don't
> know if that matters -- an extra sequencing problem for restore
> though.
Those are all supposed to be handled, but if there is an
unidentified bug, who knows what matters?
Have you tried restoring a schema-only dump and populating it with
minimal data, and seeing whether you can replicate it that way?
--
Kevin Grittner
EDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company