From 873a4086f1c2939e714743ec2c706bfdf0744855 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Fri, 9 Nov 2018 09:17:25 +0100 Subject: [PATCH] pg_dump: Fix dumping of WITH OIDS tables A table with OIDs that was the first in the dump output would not get dumped with OIDs enabled. Fix that. The reason was that the currWithOids flag was declared to be bool but actually also takes a -1 value for "don't know yet". But under stdbool.h semantics, that is coerced to true, so the required SET default_with_oids command is not output again. Change the variable type to char to fix that. Reported-by: Derek Nelson --- src/bin/pg_dump/pg_backup_archiver.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/pg_dump/pg_backup_archiver.h b/src/bin/pg_dump/pg_backup_archiver.h index 26dd0442e8..05e9de632f 100644 --- a/src/bin/pg_dump/pg_backup_archiver.h +++ b/src/bin/pg_dump/pg_backup_archiver.h @@ -347,7 +347,8 @@ struct _archiveHandle char *currUser; /* current username, or NULL if unknown */ char *currSchema; /* current schema, or NULL */ char *currTablespace; /* current tablespace, or NULL */ - bool currWithOids; /* current default_with_oids setting */ + char currWithOids; /* current default_with_oids setting: true, + * false, or -1 for unknown, forcing a SET */ void *lo_buf; size_t lo_buf_used; -- 2.19.1