hi. generally COPY TO``COPY table`` is faster than ``COPY (select * from table)``.
in BeginCopyTo. we have """ else if (rel->rd_rel->relkind == RELKIND_MATVIEW) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("cannot copy from materialized view \"%s\"", RelationGetRelationName(rel)), errhint("Try the COPY (SELECT ...) TO variant."))); """ Since materialized views have physical storage, we can make materialized views also using COPY table_name, instead of COPY(query). Some simple tests show around %3.7 or 4.3% speed up.