From: Tom Lane Date: Sat, 6 Aug 2011 18:53:59 +0000 (-0400) Subject: Clean up ill-advised attempt to invent a private set of Node tags. X-Git-Tag: REL9_1_RC1~39 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=af0eca1a80e3e3a6fa0ee00df4a7883e4f228d0b;p=postgresql Clean up ill-advised attempt to invent a private set of Node tags. Somebody thought it'd be cute to invent a set of Node tag numbers that were defined independently of, and indeed conflicting with, the main tag-number list. While this accidentally failed to fail so far, it would certainly lead to trouble as soon as anyone wanted to, say, apply copyObject to these node types. Clang was already complaining about the use of makeNode on these tags, and I think quite rightly so. Fix by pushing these node definitions into the mainstream, including putting replnodes.h where it belongs. --- diff --git a/src/backend/replication/repl_gram.y b/src/backend/replication/repl_gram.y index 4930ad1d09..d99708ca8e 100644 --- a/src/backend/replication/repl_gram.y +++ b/src/backend/replication/repl_gram.y @@ -16,10 +16,10 @@ #include "postgres.h" #include "nodes/makefuncs.h" -#include "nodes/parsenodes.h" -#include "replication/replnodes.h" +#include "nodes/replnodes.h" #include "replication/walsender.h" + /* Result of the parsing is returned here */ Node *replication_parse_result; diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c index 63952e73f1..7ed13c7e22 100644 --- a/src/backend/replication/walsender.c +++ b/src/backend/replication/walsender.c @@ -37,16 +37,16 @@ #include #include -#include "funcapi.h" -#include "access/xlog_internal.h" #include "access/transam.h" +#include "access/xlog_internal.h" #include "catalog/pg_type.h" +#include "funcapi.h" #include "libpq/libpq.h" #include "libpq/pqformat.h" #include "libpq/pqsignal.h" #include "miscadmin.h" +#include "nodes/replnodes.h" #include "replication/basebackup.h" -#include "replication/replnodes.h" #include "replication/walprotocol.h" #include "replication/walsender.h" #include "storage/fd.h" diff --git a/src/include/nodes/nodes.h b/src/include/nodes/nodes.h index d8bc6b8214..ecf62b335b 100644 --- a/src/include/nodes/nodes.h +++ b/src/include/nodes/nodes.h @@ -402,6 +402,13 @@ typedef enum NodeTag T_WithClause, T_CommonTableExpr, + /* + * TAGS FOR REPLICATION GRAMMAR PARSE NODES (replnodes.h) + */ + T_IdentifySystemCmd, + T_BaseBackupCmd, + T_StartReplicationCmd, + /* * TAGS FOR RANDOM OTHER STUFF * diff --git a/src/include/replication/replnodes.h b/src/include/nodes/replnodes.h similarity index 80% rename from src/include/replication/replnodes.h rename to src/include/nodes/replnodes.h index e027f9203b..8cbd18a24c 100644 --- a/src/include/replication/replnodes.h +++ b/src/include/nodes/replnodes.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2011, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * src/include/replication/replnodes.h + * src/include/nodes/replnodes.h * *------------------------------------------------------------------------- */ @@ -15,18 +15,8 @@ #define REPLNODES_H #include "access/xlogdefs.h" -#include "nodes/primnodes.h" -#include "nodes/value.h" +#include "nodes/pg_list.h" -/* - * NodeTags for replication parser - */ -typedef enum ReplNodeTag -{ - T_IdentifySystemCmd = 10, - T_BaseBackupCmd, - T_StartReplicationCmd -} ReplNodeTag; /* ---------------------- * IDENTIFY_SYSTEM command diff --git a/src/include/replication/basebackup.h b/src/include/replication/basebackup.h index 831c33fb4a..7ce1f38372 100644 --- a/src/include/replication/basebackup.h +++ b/src/include/replication/basebackup.h @@ -5,14 +5,14 @@ * * Portions Copyright (c) 2010-2011, PostgreSQL Global Development Group * - * src/include/replication/walsender.h + * src/include/replication/basebackup.h * *------------------------------------------------------------------------- */ #ifndef _BASEBACKUP_H #define _BASEBACKUP_H -#include "replication/replnodes.h" +#include "nodes/replnodes.h" extern void SendBaseBackup(BaseBackupCmd *cmd);