Re: Implementing Incremental View Maintenance

From: Yugo NAGATA <nagata(at)sraoss(dot)co(dot)jp>
To: "r(dot)takahashi_2(at)fujitsu(dot)com" <r(dot)takahashi_2(at)fujitsu(dot)com>
Cc: 'Zhihong Yu' <zyu(at)yugabyte(dot)com>, vignesh C <vignesh21(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Andrew Dunstan <andrew(at)dunslane(dot)net>, Andy Fan <zhihui(dot)fan1213(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Tatsuo Ishii <ishii(at)sraoss(dot)co(dot)jp>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>
Subject: Re: Implementing Incremental View Maintenance
Date: 2021-09-22 10:12:27
Message-ID: 20210922191227.09a9891ec9da5ebe67475f1f@sraoss.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hello Takahashi-san,

On Mon, 6 Sep 2021 10:06:37 +0000
"r(dot)takahashi_2(at)fujitsu(dot)com" <r(dot)takahashi_2(at)fujitsu(dot)com> wrote:

> Hi Nagata-san,
>
>
> I'm still reading the patch.
> I have additional comments.

Thank you for your comments!

>
> (1)
> In v23-0001-Add-a-syntax-to-create-Incrementally-Maintainabl.patch, ivm member is added to IntoClause struct.
> I think it is necessary to modify _copyIntoClause() and _equalIntoClause() functions.

Ok. I'll fix _copyIntoClause() and _equalIntoClause() as well as _readIntoClause() and _outIntoClause().

> (2)
> By executing pg_dump with v23-0005-Add-Incremental-View-Maintenance-support-to-pg_d.patch,
> the constraint which is automatically created during "CREATE INCREMENTAL MATERIALIZED VIEW" is also dumped.
> This cause error during recovery as follows.
>
> ivm=# create table t (c1 int, c2 int);
> CREATE TABLE
> ivm=# create incremental materialized view ivm_t as select distinct c1 from t;
> NOTICE: created index "ivm_t_index" on materialized view "ivm_t"
> SELECT 0
>
> Then I executed pg_dump.
>
> In the dump, the following SQLs appear.
>
> CREATE INCREMENTAL MATERIALIZED VIEW public.ivm_t AS
> SELECT DISTINCT t.c1
> FROM public.t
> WITH NO DATA;
>
> ALTER TABLE ONLY public.ivm_t
> ADD CONSTRAINT ivm_t_index UNIQUE (c1);
>
> If I execute psql with the result of pg_dump, following error occurs.
>
> ERROR: ALTER action ADD CONSTRAINT cannot be performed on relation "ivm_t"
> DETAIL: This operation is not supported for materialized views.

Good catch! It was my mistake creating unique constraints on IMMV in spite of
we cannot defined them via SQL. I'll fix it to use unique indexes instead of
constraints.

Regards,
Yugo Nagata

--
Yugo NAGATA <nagata(at)sraoss(dot)co(dot)jp>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Yugo NAGATA 2021-09-22 10:17:12 Re: Implementing Incremental View Maintenance
Previous Message Yugo NAGATA 2021-09-22 09:53:43 Re: Implementing Incremental View Maintenance