Minimal portability fix for commit e1551f96e.
authorTom Lane <[email protected]>
Wed, 18 Dec 2019 15:22:50 +0000 (10:22 -0500)
committerTom Lane <[email protected]>
Wed, 18 Dec 2019 15:22:50 +0000 (10:22 -0500)
Older gcc versions are not happy with having multiple declarations
for the same typedef name (not struct name).  I'm a bit dubious
as to how well-thought-out that patch was at all, but for the moment
just fix it enough so I can get some work done today.

Discussion: https://postgr.es/m/20191218101338[email protected]

src/include/parser/parse_utilcmd.h
src/include/rewrite/rewriteManip.h

index 08dd0ce4ca7fcf4d373b3877f2c37a246d33a691..ba3f42b04e87a77dac24562fd215bd7fa1e109b9 100644 (file)
@@ -16,7 +16,8 @@
 
 #include "parser/parse_node.h"
 
-typedef struct AttrMap AttrMap;
+struct AttrMap;                                        /* avoid including attmap.h here */
+
 
 extern List *transformCreateStmt(CreateStmt *stmt, const char *queryString);
 extern List *transformAlterTableStmt(Oid relid, AlterTableStmt *stmt,
@@ -30,7 +31,7 @@ extern PartitionBoundSpec *transformPartitionBound(ParseState *pstate, Relation
                                                                                                   PartitionBoundSpec *spec);
 extern IndexStmt *generateClonedIndexStmt(RangeVar *heapRel,
                                                                                  Relation source_idx,
-                                                                                 const AttrMap *attmap,
+                                                                                 const struct AttrMap *attmap,
                                                                                  Oid *constraintOid);
 
 #endif                                                 /* PARSE_UTILCMD_H */
index 634cdc235dae163776ed8cfb3d3505f215c07906..eb9ec65793af8728101264cfa28d80d9a2c08ccd 100644 (file)
@@ -16,8 +16,9 @@
 
 #include "nodes/parsenodes.h"
 
+struct AttrMap;                                        /* avoid including attmap.h here */
+
 
-typedef struct AttrMap AttrMap;
 typedef struct replace_rte_variables_context replace_rte_variables_context;
 
 typedef Node *(*replace_rte_variables_callback) (Var *var,
@@ -72,7 +73,7 @@ extern Node *replace_rte_variables_mutator(Node *node,
 
 extern Node *map_variable_attnos(Node *node,
                                                                 int target_varno, int sublevels_up,
-                                                                const AttrMap *attno_map,
+                                                                const struct AttrMap *attno_map,
                                                                 Oid to_rowtype, bool *found_whole_row);
 
 extern Node *ReplaceVarsFromTargetList(Node *node,