Hi Nagata-san,
I'm still reading the patch.
I have additional 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.
(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.
Regards,
Ryohei Takahashi