aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2020-09-16 16:26:50 +0900
committerMichael Paquier <michael@paquier.xyz>2020-09-16 16:26:50 +0900
commit5423853feebd30772b7ff9b306885dcb02b79e76 (patch)
treec3781bd5aa8a7b0401b3abd76a437ea28e43a306 /src
parentc8aeaf3ab31edeedf1791e37c74bcedf61a916ed (diff)
downloadpostgresql-5423853feebd30772b7ff9b306885dcb02b79e76.tar.gz
postgresql-5423853feebd30772b7ff9b306885dcb02b79e76.zip
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
Diffstat (limited to 'src')
-rw-r--r--src/bin/pg_dump/pg_dump.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 784bceaec39..34063888721 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -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;