Allow "COPY table TO" command to copy rows from materialized views.
authorFujii Masao <fujii@postgresql.org>
Fri, 4 Apr 2025 10:32:00 +0000 (19:32 +0900)
committerFujii Masao <fujii@postgresql.org>
Fri, 4 Apr 2025 10:32:00 +0000 (19:32 +0900)
commit534874fac0b34535c9a5ab9257d6574f78423578
treec92b33bfbd8fa96270cf5215047fb02030c022a6
parent9ef1851685b718264de47bf543505cf3ec25aaea
Allow "COPY table TO" command to copy rows from materialized views.

Previously, "COPY table TO" command worked only with plain tables and
did not support materialized views, even when they were populated and
had physical storage. To copy rows from materialized views,
"COPY (query) TO" command had to be used, instead.

This commit extends "COPY table TO" to support populated materialized
views directly, improving usability and performance, as "COPY table TO"
is generally faster than "COPY (query) TO". Note that copying from
unpopulated materialized views will still result in an error.

Author: jian he <jian.universality@gmail.com>
Reviewed-by: Kirill Reshke <reshkekirill@gmail.com>
Reviewed-by: David G. Johnston <david.g.johnston@gmail.com>
Reviewed-by: Vignesh C <vignesh21@gmail.com>
Reviewed-by: Fujii Masao <masao.fujii@gmail.com>
Discussion: https://postgr.es/m/CACJufxHVxnyRYy67hiPePNCPwVBMzhTQ6FaL9_Te5On9udG=yg@mail.gmail.com
doc/src/sgml/ref/copy.sgml
src/backend/commands/copyto.c
src/test/regress/expected/copy.out
src/test/regress/sql/copy.sql