From 54487d1560619a0027e0651d1b8d715ca8fc388c Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Fri, 24 May 2019 08:19:21 +0900 Subject: [PATCH] Fix table dump in pg_dump[all] with backends older than 9.5 The access method name "amname" can be dumped as of 3b925e90, but queries for backends older than 9.5 forgot to map it to a dummy NULL value, causing the column to not be mapped to a number. As a result, pg_dump was throwing some spurious errors in its stderr output coming from libpq: pg_dump: column number -1 is out of range 0..36 Fix this issue by adding a mapping of "amname" to NULL to all the older queries. Discussion: https://postgr.es/m/20190522083038.GA16837@paquier.xyz Author: Michael Paquier Reviewed-by: Dmitry Dolgov, Andres Freund, Tom Lane --- src/bin/pg_dump/pg_dump.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index c11cab70d8..9f59cc74ee 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -6113,6 +6113,7 @@ getTables(Archive *fout, int *numTables) "tc.relminmxid AS tminmxid, " "c.relpersistence, c.relispopulated, " "c.relreplident, c.relpages, " + "NULL AS amname, " "CASE WHEN c.reloftype <> 0 THEN c.reloftype::pg_catalog.regtype ELSE NULL END AS reloftype, " "d.refobjid AS owning_tab, " "d.refobjsubid AS owning_col, " @@ -6162,6 +6163,7 @@ getTables(Archive *fout, int *numTables) "tc.relminmxid AS tminmxid, " "c.relpersistence, c.relispopulated, " "c.relreplident, c.relpages, " + "NULL AS amname, " "CASE WHEN c.reloftype <> 0 THEN c.reloftype::pg_catalog.regtype ELSE NULL END AS reloftype, " "d.refobjid AS owning_tab, " "d.refobjsubid AS owning_col, " @@ -6211,6 +6213,7 @@ getTables(Archive *fout, int *numTables) "tc.relminmxid AS tminmxid, " "c.relpersistence, c.relispopulated, " "'d' AS relreplident, c.relpages, " + "NULL AS amname, " "CASE WHEN c.reloftype <> 0 THEN c.reloftype::pg_catalog.regtype ELSE NULL END AS reloftype, " "d.refobjid AS owning_tab, " "d.refobjsubid AS owning_col, " @@ -6260,6 +6263,7 @@ getTables(Archive *fout, int *numTables) "0 AS tminmxid, " "c.relpersistence, 't' as relispopulated, " "'d' AS relreplident, c.relpages, " + "NULL AS amname, " "CASE WHEN c.reloftype <> 0 THEN c.reloftype::pg_catalog.regtype ELSE NULL END AS reloftype, " "d.refobjid AS owning_tab, " "d.refobjsubid AS owning_col, " @@ -6307,6 +6311,7 @@ getTables(Archive *fout, int *numTables) "0 AS tminmxid, " "'p' AS relpersistence, 't' as relispopulated, " "'d' AS relreplident, c.relpages, " + "NULL AS amname, " "CASE WHEN c.reloftype <> 0 THEN c.reloftype::pg_catalog.regtype ELSE NULL END AS reloftype, " "d.refobjid AS owning_tab, " "d.refobjsubid AS owning_col, " @@ -6353,6 +6358,7 @@ getTables(Archive *fout, int *numTables) "0 AS tminmxid, " "'p' AS relpersistence, 't' as relispopulated, " "'d' AS relreplident, c.relpages, " + "NULL AS amname, " "NULL AS reloftype, " "d.refobjid AS owning_tab, " "d.refobjsubid AS owning_col, " @@ -6399,6 +6405,7 @@ getTables(Archive *fout, int *numTables) "0 AS tminmxid, " "'p' AS relpersistence, 't' as relispopulated, " "'d' AS relreplident, c.relpages, " + "NULL AS amname, " "NULL AS reloftype, " "d.refobjid AS owning_tab, " "d.refobjsubid AS owning_col, " @@ -6444,6 +6451,7 @@ getTables(Archive *fout, int *numTables) "0 AS tfrozenxid, 0 AS tminmxid," "'p' AS relpersistence, 't' as relispopulated, " "'d' AS relreplident, relpages, " + "NULL AS amname, " "NULL AS reloftype, " "d.refobjid AS owning_tab, " "d.refobjsubid AS owning_col, " -- 2.39.5