Avoid retrieval of CHECK constraints and DEFAULT exprs in data-only dump

Those extra queries are not necessary when doing a data-only dump.  With
this change, this means that the dependencies between CHECK/DEFAULT and
the parent table are not tracked anymore for a data-only dump.  However,
these dependencies are only used for the schema generation and we have
never guaranteed that a dump can be reloaded if a CHECK constraint uses
a custom function whose behavior changes when loading the data, like
when using cross-table references in the CHECK function.

Author: Julien Rouhaud
Reviewed-by: Daniel Gustafsson, Michael Paquier
Discussion: https://postgr.es/m/20200712054850.GA92357@nol
This commit is contained in:
Michael Paquier 2020-09-16 16:26:50 +09:00
parent c8aeaf3ab3
commit 5423853fee
1 changed files with 6 additions and 4 deletions

View File

@ -8644,9 +8644,10 @@ getTableAttrs(Archive *fout, TableInfo *tblinfo, int numTables)
PQclear(res);
/*
* Get info about column defaults
* Get info about column defaults. This is skipped for a data-only
* dump, as it is only needed for table schemas.
*/
if (hasdefaults)
if (!dopt->dataOnly && hasdefaults)
{
AttrDefInfo *attrdefs;
int numDefaults;
@ -8731,9 +8732,10 @@ getTableAttrs(Archive *fout, TableInfo *tblinfo, int numTables)
}
/*
* Get info about table CHECK constraints
* Get info about table CHECK constraints. This is skipped for a
* data-only dump, as it is only needed for table schemas.
*/
if (tbinfo->ncheck > 0)
if (!dopt->dataOnly && tbinfo->ncheck > 0)
{
ConstraintInfo *constrs;
int numConstrs;