Thread: pg_restore and materialized view deps

pg_restore and materialized view deps

From
Wells Oliver
Date:
Not the end of the world but I notice when running pg_restore that I encounter a few errors where materialized views cannot be refreshed because they query other materialized views not yet refreshed.

Is this a fixable thing or just something one must live with, and refresh them after the restore?

--

Re: pg_restore and materialized view deps

From
Tom Lane
Date:
Wells Oliver <wells.oliver@gmail.com> writes:
> Not the end of the world but I notice when running pg_restore that I
> encounter a few errors where materialized views cannot be refreshed because
> they query other materialized views not yet refreshed.

Oh?  There are dependencies that are supposed to prevent that.
Can you provide a self-contained example of a schema where
that doesn't work?

            regards, tom lane



Re: pg_restore and materialized view deps

From
Wells Oliver
Date:
Ah, you know, a little deeper: it's an issue with a mat view unable to refresh because it uses a function, and within that function, there is a call to a mat view not yet materialized.

 

On Fri, Sep 6, 2024 at 6:33 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
Wells Oliver <wells.oliver@gmail.com> writes:
> Not the end of the world but I notice when running pg_restore that I
> encounter a few errors where materialized views cannot be refreshed because
> they query other materialized views not yet refreshed.

Oh?  There are dependencies that are supposed to prevent that.
Can you provide a self-contained example of a schema where
that doesn't work?

                        regards, tom lane


--

Re: pg_restore and materialized view deps

From
Tom Lane
Date:
Wells Oliver <wells.oliver@gmail.com> writes:
> Ah, you know, a little deeper: it's an issue with a mat view unable to
> refresh because it uses a function, and within that function, there is a
> call to a mat view not yet materialized.

Oh yes, pg_dump can't really see dependencies inside function bodies.

... Unless ... can you write the function as a new-style SQL
function (BEGIN ATOMIC instead of a string literal)?
Then I think it might work.

            regards, tom lane