From 3f61b3205f1a8bd27909be97341f002db8842093 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 31 May 2019 12:34:54 -0400 Subject: [PATCH] Fix C++ incompatibilities in plpgsql's header files. Rename some exposed parameters so that they don't conflict with C++ reserved words. Back-patch to all supported versions. George Tarasov Discussion: https://postgr.es/m/b517ec3918d645eb950505eac8dd434e@gaz-is.ru --- src/pl/plpgsql/src/pl_comp.c | 6 +++--- src/pl/plpgsql/src/pl_exec.c | 22 +++++++++++----------- src/pl/plpgsql/src/plpgsql.h | 5 +++-- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/pl/plpgsql/src/pl_comp.c b/src/pl/plpgsql/src/pl_comp.c index 6a3b2986a1..30c7e967df 100644 --- a/src/pl/plpgsql/src/pl_comp.c +++ b/src/pl/plpgsql/src/pl_comp.c @@ -2212,7 +2212,7 @@ plpgsql_start_datums(void) * ---------- */ void -plpgsql_adddatum(PLpgSQL_datum *new) +plpgsql_adddatum(PLpgSQL_datum *newdatum) { if (plpgsql_nDatums == datums_alloc) { @@ -2220,8 +2220,8 @@ plpgsql_adddatum(PLpgSQL_datum *new) plpgsql_Datums = repalloc(plpgsql_Datums, sizeof(PLpgSQL_datum *) * datums_alloc); } - new->dno = plpgsql_nDatums; - plpgsql_Datums[plpgsql_nDatums++] = new; + newdatum->dno = plpgsql_nDatums; + plpgsql_Datums[plpgsql_nDatums++] = newdatum; } /* ---------- diff --git a/src/pl/plpgsql/src/pl_exec.c b/src/pl/plpgsql/src/pl_exec.c index a5d1d1db3d..90a2257894 100644 --- a/src/pl/plpgsql/src/pl_exec.c +++ b/src/pl/plpgsql/src/pl_exec.c @@ -5583,7 +5583,7 @@ plpgsql_exec_get_datum_type(PLpgSQL_execstate *estate, void plpgsql_exec_get_datum_type_info(PLpgSQL_execstate *estate, PLpgSQL_datum *datum, - Oid *typeid, int32 *typmod, Oid *collation) + Oid *typeId, int32 *typMod, Oid *collation) { switch (datum->dtype) { @@ -5592,8 +5592,8 @@ plpgsql_exec_get_datum_type_info(PLpgSQL_execstate *estate, { PLpgSQL_var *var = (PLpgSQL_var *) datum; - *typeid = var->datatype->typoid; - *typmod = var->datatype->atttypmod; + *typeId = var->datatype->typoid; + *typMod = var->datatype->atttypmod; *collation = var->datatype->collation; break; } @@ -5605,15 +5605,15 @@ plpgsql_exec_get_datum_type_info(PLpgSQL_execstate *estate, if (rec->erh == NULL || rec->rectypeid != RECORDOID) { /* Report variable's declared type */ - *typeid = rec->rectypeid; - *typmod = -1; + *typeId = rec->rectypeid; + *typMod = -1; } else { /* Report record's actual type if declared RECORD */ - *typeid = rec->erh->er_typeid; + *typeId = rec->erh->er_typeid; /* do NOT return the mutable typmod of a RECORD variable */ - *typmod = -1; + *typMod = -1; } /* composite types are never collatable */ *collation = InvalidOid; @@ -5651,16 +5651,16 @@ plpgsql_exec_get_datum_type_info(PLpgSQL_execstate *estate, recfield->rectupledescid = rec->erh->er_tupdesc_id; } - *typeid = recfield->finfo.ftypeid; - *typmod = recfield->finfo.ftypmod; + *typeId = recfield->finfo.ftypeid; + *typMod = recfield->finfo.ftypmod; *collation = recfield->finfo.fcollation; break; } default: elog(ERROR, "unrecognized dtype: %d", datum->dtype); - *typeid = InvalidOid; /* keep compiler quiet */ - *typmod = -1; + *typeId = InvalidOid; /* keep compiler quiet */ + *typMod = -1; *collation = InvalidOid; break; } diff --git a/src/pl/plpgsql/src/plpgsql.h b/src/pl/plpgsql/src/plpgsql.h index 921ed72bdc..a5a5ef9de7 100644 --- a/src/pl/plpgsql/src/plpgsql.h +++ b/src/pl/plpgsql/src/plpgsql.h @@ -1239,7 +1239,7 @@ extern PLpgSQL_recfield *plpgsql_build_recfield(PLpgSQL_rec *rec, extern int plpgsql_recognize_err_condition(const char *condname, bool allow_sqlstate); extern PLpgSQL_condition *plpgsql_parse_err_condition(char *condname); -extern void plpgsql_adddatum(PLpgSQL_datum *new); +extern void plpgsql_adddatum(PLpgSQL_datum *newdatum); extern int plpgsql_add_initdatums(int **varnos); extern void plpgsql_HashTableInit(void); @@ -1266,7 +1266,8 @@ extern Oid plpgsql_exec_get_datum_type(PLpgSQL_execstate *estate, PLpgSQL_datum *datum); extern void plpgsql_exec_get_datum_type_info(PLpgSQL_execstate *estate, PLpgSQL_datum *datum, - Oid *typeid, int32 *typmod, Oid *collation); + Oid *typeId, int32 *typMod, + Oid *collation); /* * Functions for namespace handling in pl_funcs.c -- 2.40.0