mirror of
https://github.com/postgres/postgres.git
synced 2025-04-20 00:42:27 +03:00
pg_dump: Add --sequence-data.
This new option instructs pg_dump to dump sequence data when the --no-data, --schema-only, or --statistics-only option is specified. This was originally considered for commit a7e5457db8, but it was left out at that time because there was no known use-case. A follow-up commit will use this to optimize pg_upgrade's file transfer step. Reviewed-by: Robert Haas <robertmhaas@gmail.com> Discussion: https://postgr.es/m/Zyvop-LxLXBLrZil%40nathan
This commit is contained in:
parent
cf131fa942
commit
9c49f0e8cd
@ -1298,6 +1298,17 @@ PostgreSQL documentation
|
|||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>--sequence-data</option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Include sequence data in the dump. This is the default behavior except
|
||||||
|
when <option>--no-data</option>, <option>--schema-only</option>, or
|
||||||
|
<option>--statistics-only</option> is specified.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><option>--serializable-deferrable</option></term>
|
<term><option>--serializable-deferrable</option></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -518,6 +518,7 @@ main(int argc, char **argv)
|
|||||||
{"sync-method", required_argument, NULL, 15},
|
{"sync-method", required_argument, NULL, 15},
|
||||||
{"filter", required_argument, NULL, 16},
|
{"filter", required_argument, NULL, 16},
|
||||||
{"exclude-extension", required_argument, NULL, 17},
|
{"exclude-extension", required_argument, NULL, 17},
|
||||||
|
{"sequence-data", no_argument, &dopt.sequence_data, 1},
|
||||||
|
|
||||||
{NULL, 0, NULL, 0}
|
{NULL, 0, NULL, 0}
|
||||||
};
|
};
|
||||||
@ -801,14 +802,6 @@ main(int argc, char **argv)
|
|||||||
if (dopt.column_inserts && dopt.dump_inserts == 0)
|
if (dopt.column_inserts && dopt.dump_inserts == 0)
|
||||||
dopt.dump_inserts = DUMP_DEFAULT_ROWS_PER_INSERT;
|
dopt.dump_inserts = DUMP_DEFAULT_ROWS_PER_INSERT;
|
||||||
|
|
||||||
/*
|
|
||||||
* Binary upgrade mode implies dumping sequence data even in schema-only
|
|
||||||
* mode. This is not exposed as a separate option, but kept separate
|
|
||||||
* internally for clarity.
|
|
||||||
*/
|
|
||||||
if (dopt.binary_upgrade)
|
|
||||||
dopt.sequence_data = 1;
|
|
||||||
|
|
||||||
if (data_only && schema_only)
|
if (data_only && schema_only)
|
||||||
pg_fatal("options -s/--schema-only and -a/--data-only cannot be used together");
|
pg_fatal("options -s/--schema-only and -a/--data-only cannot be used together");
|
||||||
if (schema_only && statistics_only)
|
if (schema_only && statistics_only)
|
||||||
@ -1275,6 +1268,7 @@ help(const char *progname)
|
|||||||
printf(_(" --quote-all-identifiers quote all identifiers, even if not key words\n"));
|
printf(_(" --quote-all-identifiers quote all identifiers, even if not key words\n"));
|
||||||
printf(_(" --rows-per-insert=NROWS number of rows per INSERT; implies --inserts\n"));
|
printf(_(" --rows-per-insert=NROWS number of rows per INSERT; implies --inserts\n"));
|
||||||
printf(_(" --section=SECTION dump named section (pre-data, data, or post-data)\n"));
|
printf(_(" --section=SECTION dump named section (pre-data, data, or post-data)\n"));
|
||||||
|
printf(_(" --sequence-data include sequence data in dump\n"));
|
||||||
printf(_(" --serializable-deferrable wait until the dump can run without anomalies\n"));
|
printf(_(" --serializable-deferrable wait until the dump can run without anomalies\n"));
|
||||||
printf(_(" --snapshot=SNAPSHOT use given snapshot for the dump\n"));
|
printf(_(" --snapshot=SNAPSHOT use given snapshot for the dump\n"));
|
||||||
printf(_(" --statistics-only dump only the statistics, not schema or data\n"));
|
printf(_(" --statistics-only dump only the statistics, not schema or data\n"));
|
||||||
|
@ -66,6 +66,7 @@ my %pgdump_runs = (
|
|||||||
'--file' => "$tempdir/binary_upgrade.dump",
|
'--file' => "$tempdir/binary_upgrade.dump",
|
||||||
'--no-password',
|
'--no-password',
|
||||||
'--no-data',
|
'--no-data',
|
||||||
|
'--sequence-data',
|
||||||
'--binary-upgrade',
|
'--binary-upgrade',
|
||||||
'--dbname' => 'postgres', # alternative way to specify database
|
'--dbname' => 'postgres', # alternative way to specify database
|
||||||
],
|
],
|
||||||
|
@ -52,7 +52,7 @@ generate_old_dump(void)
|
|||||||
snprintf(log_file_name, sizeof(log_file_name), DB_DUMP_LOG_FILE_MASK, old_db->db_oid);
|
snprintf(log_file_name, sizeof(log_file_name), DB_DUMP_LOG_FILE_MASK, old_db->db_oid);
|
||||||
|
|
||||||
parallel_exec_prog(log_file_name, NULL,
|
parallel_exec_prog(log_file_name, NULL,
|
||||||
"\"%s/pg_dump\" %s --no-data %s --quote-all-identifiers "
|
"\"%s/pg_dump\" %s --no-data %s --sequence-data --quote-all-identifiers "
|
||||||
"--binary-upgrade --format=custom %s --no-sync --file=\"%s/%s\" %s",
|
"--binary-upgrade --format=custom %s --no-sync --file=\"%s/%s\" %s",
|
||||||
new_cluster.bindir, cluster_conn_opts(&old_cluster),
|
new_cluster.bindir, cluster_conn_opts(&old_cluster),
|
||||||
log_opts.verbose ? "--verbose" : "",
|
log_opts.verbose ? "--verbose" : "",
|
||||||
|
@ -48,7 +48,7 @@ my %pgdump_runs = (
|
|||||||
dump_cmd => [
|
dump_cmd => [
|
||||||
'pg_dump', '--no-sync',
|
'pg_dump', '--no-sync',
|
||||||
'--file' => "$tempdir/binary_upgrade.sql",
|
'--file' => "$tempdir/binary_upgrade.sql",
|
||||||
'--schema-only', '--binary-upgrade',
|
'--schema-only', '--sequence-data', '--binary-upgrade',
|
||||||
'--dbname' => 'postgres',
|
'--dbname' => 'postgres',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user