Re: pg_restore can't re-mat mat view that uses a function which depends on another mat view

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Wells Oliver <wells(dot)oliver(at)gmail(dot)com>
Cc: pgsql-admin <pgsql-admin(at)postgresql(dot)org>
Subject: Re: pg_restore can't re-mat mat view that uses a function which depends on another mat view
Date: 2021-06-14 06:00:44
Message-ID: 162829.1623650444@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Wells Oliver <wells(dot)oliver(at)gmail(dot)com> writes:
> Odd one here, but after restoring a database in parallel, I notice a few
> mat views are unmaterialized, e.g.
> ...
> The reason being is that vwm_ytd_p uses a function age() which queries from
> vwm_info, which has not yet been materialized. In fact, it is being
> materialized in parallel in another job, so not yet available.

Right.

> Anything to do here?

Not much we can do today. User-defined functions are black boxes,
so pg_dump can't see what their innards might reference.

v14 will have the ability to declare SQL functions in something
closer to SQL-spec syntax, in which the body of the function will
be parsed at definition time. With that style of function, pg_dump
*does* see the dependencies so this sort of thing should work.
That approach is not without some downsides, but it sounds like it'd
improve your case here.

regards, tom lane

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Peter Eisentraut 2021-06-14 07:53:08 Re: PostgreSQL SSL params
Previous Message pramod kg 2021-06-14 03:43:31 Re: PostgreSQL SSL params