postgres.git / summary / log / commit / refs

commit    b72b4fafb962c5cc1c3d2311b2971a299497202b
Author:   Peter Eisentraut <peter_e@gmx.net>
Date:     Fri Nov 09 08:17:25 2018 +0000
First released in: 12.0, 11.2

    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 <derek@pipelinedb.com>


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 8dd19159989..7d533666352 100644 --- a/src/bin/pg_dump/pg_backup_archiver.h +++ b/src/bin/pg_dump/pg_backup_archiver.h @@ -346,7 +346,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; [parent: f43e679b533c]