agora inbox for [email protected]
help / color / mirror / Atom feedFrom: Peter Eisentraut <[email protected]>
Subject: [PATCH] pg_dump: Fix some schema issues when dumping sequences
Date: Tue, 24 Jan 2017 10:03:25 -0500
In the new code for selecting sequence data from pg_sequence, set the
schema to pg_catalog instead of the sequences own schema, and refer to
the sequence by OID instead of name, which was missing a schema
qualification.
Reported-by: Stephen Frost <[email protected]>
---
src/bin/pg_dump/pg_dump.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index e3cca62bf7..b28b7e42d4 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -15873,14 +15873,14 @@ dumpSequence(Archive *fout, TableInfo *tbinfo)
PQExpBuffer delqry = createPQExpBuffer();
PQExpBuffer labelq = createPQExpBuffer();
- /* Make sure we are in proper schema */
- selectSourceSchema(fout, tbinfo->dobj.namespace->dobj.name);
-
snprintf(bufm, sizeof(bufm), INT64_FORMAT, PG_INT64_MIN);
snprintf(bufx, sizeof(bufx), INT64_FORMAT, PG_INT64_MAX);
if (fout->remoteVersion >= 100000)
{
+ /* Make sure we are in proper schema */
+ selectSourceSchema(fout, "pg_catalog");
+
appendPQExpBuffer(query,
"SELECT seqstart, seqincrement, "
"CASE WHEN seqincrement > 0 AND seqmax = %s THEN NULL "
@@ -15894,12 +15894,15 @@ dumpSequence(Archive *fout, TableInfo *tbinfo)
"seqcache, seqcycle "
"FROM pg_class c "
"JOIN pg_sequence s ON (s.seqrelid = c.oid) "
- "WHERE relname = ",
- bufx, bufm);
- appendStringLiteralAH(query, tbinfo->dobj.name, fout);
+ "WHERE c.oid = '%u'::oid",
+ bufx, bufm,
+ tbinfo->dobj.catId.oid);
}
else if (fout->remoteVersion >= 80400)
{
+ /* Make sure we are in proper schema */
+ selectSourceSchema(fout, tbinfo->dobj.namespace->dobj.name);
+
appendPQExpBuffer(query,
"SELECT start_value, increment_by, "
"CASE WHEN increment_by > 0 AND max_value = %s THEN NULL "
@@ -15916,6 +15919,9 @@ dumpSequence(Archive *fout, TableInfo *tbinfo)
}
else
{
+ /* Make sure we are in proper schema */
+ selectSourceSchema(fout, tbinfo->dobj.namespace->dobj.name);
+
appendPQExpBuffer(query,
"SELECT 0 AS start_value, increment_by, "
"CASE WHEN increment_by > 0 AND max_value = %s THEN NULL "
--
2.11.0
--------------2C647D954D59A34BF9262EFF
Content-Type: text/plain
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
--------------2C647D954D59A34BF9262EFF--
view thread (2+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected]
Subject: Re: [PATCH] pg_dump: Fix some schema issues when dumping sequences
In-Reply-To: <no-message-id-277729@localhost>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox