Minimal portability fix for commit e1551f96e.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 18 Dec 2019 15:22:50 +0000 (10:22 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
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.GB325369@paquier.xyz

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,