On Mon, Jul 28, 2025 at 9:22 AM torikoshia <torikoshia@oss.nttdata.com> wrote:
>
> I think the behavior for materialized views can be described along with
> that for partitioned tables. For example:
>
> <command>COPY TO</command> can be used with plain
> tables, populated materialized views and partitioned tables.
> For example, if <replaceable class="parameter">table</replaceable>
> is a plain table,
> <literal>COPY <replaceable class="parameter">table</replaceable>
> TO</literal> copies the same rows as
> <literal>SELECT * FROM ONLY <replaceable
> class="parameter">table</replaceable></literal>.
>
> If <replaceable class="parameter">table</replaceable> is a
> partitioned table or a materialized view,
> <literal>COPY <replaceable class="parameter">table</replaceable>
> TO</literal>
> copies the same rows as <literal>SELECT * FROM <replaceable
> class="parameter">table</replaceable></literal>.
>
Your description seems ok to me.
Let's see if anyone else has a different take.
> + List *children = NIL;
> ...
> + {
> + children = find_all_inheritors(RelationGetRelid(rel),
>
> Since 'children' is only used inside the else if block, I think we don't
> need the separate "List *children = NIL;" declaration.
> Instead, it could just be "List *children = find_all_inheritors(...)".
>
you are right.
""List *children = find_all_inheritors(...)"." should be ok.