Hello Takahashi-san,

On Tue, 3 Aug 2021 10:15:42 +0000
"r.takahash...@fujitsu.com" <r.takahash...@fujitsu.com> wrote:

> Hi Nagata-san,
> 
> 
> I am interested in this patch since it is good feature.
> 
> I run some simple tests.
> I found the following problems.

Thank you for your interest for this patch!

> (1) 
> Failed to "make world".
> I think there are extra "<lineitem>" in 
> doc/src/sgml/ref/create_materialized_view.sgml
> (line 110 and 117)

Oops. I'll fix it. 

> (2)
> In the case of partition, it seems that IVM does not work well.
> I run as follows.
> 
> postgres=# create table parent (c int) partition by range (c);
> CREATE TABLE
> postgres=# create table child partition of parent for values from (1) to 
> (100);
> CREATE TABLE
> postgres=# create incremental materialized view ivm_parent as select c from 
> parent;
> NOTICE:  could not create an index on materialized view "ivm_parent" 
> automatically
> HINT:  Create an index on the materialized view for efficient incremental 
> maintenance.
> SELECT 0
> postgres=# create incremental materialized view ivm_child as select c from 
> child;
> NOTICE:  could not create an index on materialized view "ivm_child" 
> automatically
> HINT:  Create an index on the materialized view for efficient incremental 
> maintenance.
> SELECT 0
> postgres=# insert into parent values (1);
> INSERT 0 1
> postgres=# insert into child values (2);
> INSERT 0 1
> postgres=# select * from parent;
>  c
> ---
>  1
>  2
> (2 rows)
> 
> postgres=# select * from child;
>  c
> ---
>  1
>  2
> (2 rows)
> 
> postgres=# select * from ivm_parent;
>  c
> ---
>  1
> (1 row)
> 
> postgres=# select * from ivm_child;
>  c
> ---
>  2
> (1 row)
> 
> 
> I think ivm_parent and ivm_child should return 2 rows.

Good point!
I'll investigate this more, but we may have to prohibit views on partitioned
table and partitions.

> (3)
> I think IVM does not support foreign table, but try to make IVM.
> 
> postgres=# create incremental materialized view ivm_foreign as select c from 
> foreign_table;
> NOTICE:  could not create an index on materialized view "ivm_foreign" 
> automatically
> HINT:  Create an index on the materialized view for efficient incremental 
> maintenance.
> ERROR:  "foreign_table" is a foreign table
> DETAIL:  Triggers on foreign tables cannot have transition tables.
> 
> It finally failed to make IVM, but I think it should be checked more early.

You are right. We don't support foreign tables as long as we use triggers.

 I'll fix.

Regards,
Yugo Nagata

-- 
Yugo NAGATA <nag...@sraoss.co.jp>


Reply via email to