diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ffddd94454f..526994736db 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,6 +19,9 @@ jobs: if: ${{ matrix.os == 'ubuntu-latest' }} run: | sudo apt-get update + sudo apt-get install -y gcc-14 g++-14 + sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 100 + sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 100 sudo apt-get install -y build-essential git lcov bison flex \ libkrb5-dev libssl-dev libldap-dev libpam-dev python3-dev \ tcl-dev libperl-dev gettext libxml2-dev libxslt-dev \ @@ -35,4 +38,4 @@ jobs: --with-ossp-uuid --with-libxml --with-libxslt --with-perl \ --with-icu --with-libnuma --enable-injection-points - name: compile - run: make + run: make CFLAGS="$CFLAGS -Wshadow=compatible-local -Werror=missing-variable-declarations -Werror=maybe-uninitialized -Werror=unused-value -Werror=unused-but-set-variable -Werror=missing-prototypes -Werror=unused-variable" diff --git a/contrib/gb18030_2022/utf8_and_gb18030_2022.c b/contrib/gb18030_2022/utf8_and_gb18030_2022.c index 9c1a0e355e4..49345a55781 100644 --- a/contrib/gb18030_2022/utf8_and_gb18030_2022.c +++ b/contrib/gb18030_2022/utf8_and_gb18030_2022.c @@ -22,8 +22,8 @@ PG_MODULE_MAGIC; -gb18030_2022_to_utf8_hook_type pre_gb18030_2022_to_utf8_hook = NULL; -utf8_to_gb18030_2022_hook_type pre_utf8_to_gb18030_2022_hook = NULL; +static gb18030_2022_to_utf8_hook_type pre_gb18030_2022_to_utf8_hook = NULL; +static utf8_to_gb18030_2022_hook_type pre_utf8_to_gb18030_2022_hook = NULL; int gb18030_2022_to_utf8(const unsigned char *iso, int len, unsigned char *utf, bool noError); diff --git a/contrib/ivorysql_ora/src/builtin_functions/datetime_datatype_functions.c b/contrib/ivorysql_ora/src/builtin_functions/datetime_datatype_functions.c index 4705c7c0d6a..96283d10cd8 100644 --- a/contrib/ivorysql_ora/src/builtin_functions/datetime_datatype_functions.c +++ b/contrib/ivorysql_ora/src/builtin_functions/datetime_datatype_functions.c @@ -153,7 +153,7 @@ static const int month_days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; -const char *const ora_days[] = {"Sunday", "Monday", "Tuesday", "Wednesday", +static const char *const ora_days[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", NULL}; #define CASE_fmt_YYYY case 0: case 1: case 2: case 3: case 4: case 5: case 6: @@ -169,7 +169,7 @@ const char *const ora_days[] = {"Sunday", "Monday", "Tuesday", "Wednesday", #define CASE_fmt_HH case 27: case 28: case 29: #define CASE_fmt_MI case 30: -const char *const date_fmt[] = +static const char *const date_fmt[] = { "Y", "Yy", "Yyy", "Yyyy", "Year", "Syyyy", "syear", "I", "Iy", "Iyy", "Iyyy", @@ -195,7 +195,7 @@ const char *const date_fmt[] = #define CASE_timezone_10 case 15: case 16: #define CASE_timezone_11 case 17: -const char *const date_timezone[] = +static const char *const date_timezone[] = { "GMT", "ADT", "NST", "AST", "EDT", "CDT", "EST", "CST", "MDT", "MST", "PDT", "PST", diff --git a/contrib/uuid-ossp/uuid-ossp.c b/contrib/uuid-ossp/uuid-ossp.c index 25b13437de6..8f71f235deb 100644 --- a/contrib/uuid-ossp/uuid-ossp.c +++ b/contrib/uuid-ossp/uuid-ossp.c @@ -565,6 +565,11 @@ ora_sys_guid(PG_FUNCTION_ARGS) #ifdef HAVE_UUID_OSSP uuid_t *uuid; uuid_rc_t rc; +#elif defined(HAVE_UUID_E2FS) + uuid_t uu; +#else /* BSD */ + int i; + unsigned char byte_array[SYS_GUID_LENGTH]; #endif result = (bytea *)palloc(VARHDRSZ + SYS_GUID_LENGTH); @@ -579,13 +584,10 @@ ora_sys_guid(PG_FUNCTION_ARGS) memcpy(VARDATA(result), (unsigned char *)uuid, SYS_GUID_LENGTH); #elif defined(HAVE_UUID_E2FS) - uuid_t uu; uuid_generate_random(uu); memcpy(VARDATA(result), uu, SYS_GUID_LENGTH); #else /* BSD */ - int i; - unsigned char byte_array[SYS_GUID_LENGTH]; for (i = 0; i < SYS_GUID_LENGTH; i++) { byte_array[i] = (unsigned char)arc4random(); } diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 4fddb74642e..d924f8e49dc 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -108,7 +108,7 @@ #include "utils/memutils.h" #endif -extern int bootstrap_database_mode; + /* timeline ID to be used when bootstrapping */ #define BootstrapTimeLineID 1 diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c index 446b1aa916e..f61f699e252 100644 --- a/src/backend/commands/sequence.c +++ b/src/backend/commands/sequence.c @@ -96,8 +96,8 @@ typedef struct SeqTableData typedef SeqTableData *SeqTable; static HTAB *seqhashtab = NULL; /* hash table for SeqTable items */ -int64 session_id = 0; -int32 scale_value = 0; +static int64 session_id = 0; +static int32 scale_value = 0; /* * last_used_seq is updated by nextval() to point to the last used @@ -2399,7 +2399,7 @@ process_owned_by(Relation seqrel, List *owned_by, bool for_identity) DependencyType deptype; int nnames; Relation tablerel; - AttrNumber attnum; + AttrNumber attnum = InvalidAttrNumber; char *seqname; deptype = for_identity ? DEPENDENCY_INTERNAL : DEPENDENCY_AUTO; diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index a5e8a478799..75db0571a4a 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -15642,7 +15642,7 @@ RememberAllDependentForRebuilding(AlteredTableInfo *tab, AlterTableType subtype, ScanKeyData key[3]; SysScanDesc scan; HeapTuple depTup; - ObjectFunOrPkg *dependentFuncPkgOids; + ObjectFunOrPkg *dependentFuncPkgOids = NULL; bool FuncPkgDepend = false; if(NULL != numDependentFuncPkgOids && @@ -15653,6 +15653,7 @@ RememberAllDependentForRebuilding(AlteredTableInfo *tab, AlterTableType subtype, dependentFuncPkgOids = *dependentFuncPkg; } + Assert(subtype == AT_AlterColumnType || subtype == AT_SetExpression); depRel = table_open(DependRelationId, RowExclusiveLock); diff --git a/src/backend/executor/execExpr.c b/src/backend/executor/execExpr.c index c99c47bd4ac..f521f99b447 100644 --- a/src/backend/executor/execExpr.c +++ b/src/backend/executor/execExpr.c @@ -5112,7 +5112,7 @@ ExecInitFuncWithOutParams(Expr *node, ExprState *state, { FuncExpr *funcexpr = (FuncExpr *) node; Oid funcOid = funcexpr->funcid; - HeapTuple func_tuple; + HeapTuple func_tuple = NULL; Oid *argtypes = NULL; char **argnames = NULL; char *argmodes = NULL; diff --git a/src/backend/oracle_parser/liboracle_parser.c b/src/backend/oracle_parser/liboracle_parser.c index 28d94ee4e01..41251fa155a 100644 --- a/src/backend/oracle_parser/liboracle_parser.c +++ b/src/backend/oracle_parser/liboracle_parser.c @@ -49,7 +49,7 @@ PG_MODULE_MAGIC_EXT( static raw_parser_hook_type prev_raw_parser = NULL; static get_keywords_hook_type prev_pg_get_keywords = NULL; static fill_in_constant_lengths_hook_type prev_fill_in_contant_lengths = NULL; -quote_identifier_hook_type prev_quote_identifier = NULL; +static quote_identifier_hook_type prev_quote_identifier = NULL; void _PG_init(void); void _PG_fini(void); diff --git a/src/backend/parser/parse_param.c b/src/backend/parser/parse_param.c index 84a4b141679..33e5772cd9b 100644 --- a/src/backend/parser/parse_param.c +++ b/src/backend/parser/parse_param.c @@ -71,8 +71,8 @@ typedef struct OraParamNumbers struct OraParamNumbers* prev; }OraParamNumbers; -OraParamNumbers *TopOraParamNode = NULL; -OraParamNumbers *CurrentOraParamNode = NULL; +static OraParamNumbers *TopOraParamNode = NULL; +static OraParamNumbers *CurrentOraParamNode = NULL; /* * dynamic sql stmt parse information diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index 629264da1d9..8e2188885f2 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -14410,7 +14410,6 @@ pg_get_function_arg_reference_typerowtype_internal(Tuplestorestate **tupstore, { RangeVar *rel = makeRangeVar(NULL, NULL, typeName->location); char *field = NULL; - Oid relid_1; AttrNumber attnum; /* deconstruct the name list */ @@ -14447,12 +14446,12 @@ pg_get_function_arg_reference_typerowtype_internal(Tuplestorestate **tupstore, break; } - relid_1 = RangeVarGetRelid(rel, NoLock, true); - attnum = get_attnum(relid_1, field); + relid = RangeVarGetRelid(rel, NoLock, true); + attnum = get_attnum(relid, field); if (attnum != InvalidAttrNumber) { - get_atttypetypmodcoll(relid_1, attnum, + get_atttypetypmodcoll(relid, attnum, &fieldTypeId, &fieldTypMod, &fieldCollation); /* this construct should never have an array indicator */ diff --git a/src/backend/utils/misc/ivy_guc.c b/src/backend/utils/misc/ivy_guc.c index ea4acf968c3..ee25d90eb78 100644 --- a/src/backend/utils/misc/ivy_guc.c +++ b/src/backend/utils/misc/ivy_guc.c @@ -34,9 +34,9 @@ int identifier_case_switch = INTERCHANGE; bool identifier_case_from_pg_dump = false; bool enable_case_switch = true; -char *nls_territory = "AMERICA"; -char *nls_currency = "$"; -char *nls_iso_currency = "AMERICA"; +static char *nls_territory = "AMERICA"; +static char *nls_currency = "$"; +static char *nls_iso_currency = "AMERICA"; bool enable_emptystring_to_NULL = false; diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index d1f81e35273..589460f0595 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -18970,7 +18970,7 @@ dumpSequence(Archive *fout, const TableInfo *tbinfo) default_minv = is_ascending ? 1 : PG_INT64_MIN; default_maxv = is_ascending ? PG_INT64_MAX : -1; } - else if (db_mode == DB_PG) + else { pg_fatal("unrecognized sequence type: %d", seq->seqtype); default_minv = default_maxv = 0; /* keep compiler quiet */ diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c index 9d8e595d8f2..024aff47208 100644 --- a/src/bin/psql/common.c +++ b/src/bin/psql/common.c @@ -3601,7 +3601,6 @@ get_hostvariables(const char *sql, bool *error) HostVariable *host = NULL; char *newsql = NULL; char *ptr = NULL; - int j = 0; *error = false; if (!sql) @@ -3610,12 +3609,13 @@ get_hostvariables(const char *sql, bool *error) /* double write quote */ newsql = pg_malloc0(strlen(sql) * 2); /* enough */ ptr = newsql; - while (sql[j] != '\0') + + while (*sql != '\0') { - if (sql[j] == '\'') - *ptr++ = sql[j]; - *ptr++ = sql[j]; - j++; + if (*sql == '\'') + *ptr++ = *sql; + *ptr++ = *sql; + sql++; } *ptr = '\0'; @@ -3695,7 +3695,6 @@ SendQuery_PBE(const char *query, HostVariable *hv) PGTransactionStatusType transaction_status; double elapsed_msec = 0; bool OK = false; - int i = 0; bool on_error_rollback_savepoint = false; static bool on_error_rollback_warning = false; @@ -3802,7 +3801,6 @@ SendQuery_PBE(const char *query, HostVariable *hv) struct _variable **bindvar; char *p = NULL; bool missing = false; - int j; instr_time before, after; @@ -3816,13 +3814,13 @@ SendQuery_PBE(const char *query, HostVariable *hv) * the order of detection in the Oracle error message is from the * back to the front. */ - for (j = hv->length; j > 0; j--) + for (int i = hv->length; i > 0; i--) { - p = hv->hostvars[j - 1].name; + p = hv->hostvars[i - 1].name; p++; /* skip colon */ - bindvar[j - 1] = BindVariableExist(pset.vars, p); + bindvar[i - 1] = BindVariableExist(pset.vars, p); - if (bindvar[j - 1] == NULL) + if (bindvar[i - 1] == NULL) { missing= true; break; @@ -4004,7 +4002,7 @@ SendQuery_PBE(const char *query, HostVariable *hv) /* reset \crosstabview trigger */ pset.crosstab_flag = false; - for (i = 0; i < lengthof(pset.ctv_args); i++) + for (int i = 0; i < lengthof(pset.ctv_args); i++) { pg_free(pset.ctv_args[i]); pset.ctv_args[i] = NULL; diff --git a/src/bin/psql/psqlplusscan.l b/src/bin/psql/psqlplusscan.l index 07213994350..55d7f39be61 100644 --- a/src/bin/psql/psqlplusscan.l +++ b/src/bin/psql/psqlplusscan.l @@ -47,7 +47,7 @@ static const PsqlScanKeyword psqlplus_keywords[] = { PSQL_KEYWORD("variable", K_VARIABLE, UNRESERVED_PSQL_KEYWORD) }; -const int NumKeywords = lengthof(psqlplus_keywords); +static const int NumKeywords = lengthof(psqlplus_keywords); /* * Set the type of YYSTYPE. diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c index fcc5aabef40..de8f3bc3e80 100644 --- a/src/bin/psql/startup.c +++ b/src/bin/psql/startup.c @@ -396,8 +396,8 @@ main(int argc, char *argv[]) } else if (cell->action == ACT_SINGLE_SLASH) { - PsqlScanState scan_state; - ConditionalStack cond_stack; + PsqlScanState scan_state = NULL; + ConditionalStack cond_stack = NULL; pg_logging_config(PG_LOG_FLAG_TERSE); diff --git a/src/include/utils/ora_compatible.h b/src/include/utils/ora_compatible.h index 9d4cfd35997..c94a1d991ce 100644 --- a/src/include/utils/ora_compatible.h +++ b/src/include/utils/ora_compatible.h @@ -58,5 +58,5 @@ typedef enum NLS_LENGTH_BYTE, NLS_LENGTH_CHAR } NlsLengthSemantics; - +extern int bootstrap_database_mode; #endif /* ORA_COMPATIBLE_H */ diff --git a/src/interfaces/libpq/ivy-exec.c b/src/interfaces/libpq/ivy-exec.c index 0ecad75ba1c..877088ef8da 100644 --- a/src/interfaces/libpq/ivy-exec.c +++ b/src/interfaces/libpq/ivy-exec.c @@ -3763,7 +3763,6 @@ Ivyreplacenamebindtoposition(Ivyconn *tconn, size_t size_error_buf, bool *iscallinto) { - int i = 0; Ivyresult *res; IvyBindOutNameInfo *tmp; @@ -3787,7 +3786,7 @@ Ivyreplacenamebindtoposition(Ivyconn *tconn, char *convertcall = NULL; char *newsql = NULL; char *ptr = NULL; - int j = 0; + const char *query_ptr = NULL; query_len = (stmtHandle->query_len * 2) + strlen("select * from get_parameter_description(") + 5; query = (char *) malloc(query_len); @@ -3800,12 +3799,14 @@ Ivyreplacenamebindtoposition(Ivyconn *tconn, newsql = malloc(stmtHandle->query_len * 2); /* enough */ ptr = newsql; - while (stmtHandle->query[j] != '\0') + query_ptr = stmtHandle->query; + + while (*query_ptr != '\0') { - if (stmtHandle->query[j] == '\'') - *ptr++ = stmtHandle->query[j]; - *ptr++ = stmtHandle->query[j]; - j++; + if (*query_ptr == '\'') + *ptr++ = *query_ptr; + *ptr++ = *query_ptr; + query_ptr++; } *ptr = '\0'; @@ -3965,14 +3966,14 @@ Ivyreplacenamebindtoposition(Ivyconn *tconn, stmtHandle->paramNames = (char **) malloc(sizeof(char *) * (n_tuples - 1)); memset(stmtHandle->paramNames, 0x00, sizeof(char *) * (n_tuples - 1)); - for (j = 1; j < n_tuples; j++) + for (int i = 1; i < n_tuples; i++) { int position; char *name; size_t name_len; - position = atoi(Ivygetvalue(res, j, 1)) - 1; - name = Ivygetvalue(res, j, 0); + position = atoi(Ivygetvalue(res, i, 1)) - 1; + name = Ivygetvalue(res, i, 0); if (stmtHandle->paramNames[position] != NULL) goto error_handle; @@ -4034,7 +4035,7 @@ Ivyreplacenamebindtoposition(Ivyconn *tconn, "get_parameter_description return failed"); Ivyclear(res); - for (i = 0; i < stmtHandle->nParams; i++) + for (int i = 0; i < stmtHandle->nParams; i++) { if (stmtHandle->paramNames[i] != NULL) free(stmtHandle->paramNames[i]); @@ -4057,7 +4058,7 @@ Ivyreplacenamebindtoposition2(Ivyconn *tconn, { Ivyresult *res; IvyBindNameInfo *tmp; - int i = 0; + if (stmtHandle->paramNames == NULL) { @@ -4072,7 +4073,7 @@ Ivyreplacenamebindtoposition2(Ivyconn *tconn, char *convertcall = NULL; char *newsql = NULL; char *ptr = NULL; - int j = 0; + const char *query_ptr = NULL; query_len = (strlen(stmtHandle->query) * 2) + strlen("select * from get_parameter_description(") + 5; query = (char *) malloc(query_len); @@ -4086,12 +4087,14 @@ Ivyreplacenamebindtoposition2(Ivyconn *tconn, newsql = malloc(strlen(stmtHandle->query) * 2); /* enough */ ptr = newsql; - while (stmtHandle->query[j] != '\0') + query_ptr = stmtHandle->query; + + while (*query_ptr != '\0') { - if (stmtHandle->query[j] == '\'') - *ptr++ = stmtHandle->query[j]; - *ptr++ = stmtHandle->query[j]; - j++; + if (*query_ptr == '\'') + *ptr++ = *query_ptr; + *ptr++ = *query_ptr; + query_ptr++; } *ptr = '\0'; @@ -4233,14 +4236,14 @@ Ivyreplacenamebindtoposition2(Ivyconn *tconn, stmtHandle->paramNames = (char **) malloc(sizeof(char *) * (n_tuples - 1)); stmtHandle->nParams = n_tuples - 1; memset(stmtHandle->paramNames, 0x00, sizeof(char *) * (n_tuples - 1)); - for (j = 1; j < n_tuples; j++) + for (int i = 1; i < n_tuples; i++) { int position; char *name; size_t name_len; - position = atoi(Ivygetvalue(res, j, 1)) - 1; - name = Ivygetvalue(res, j, 0); + position = atoi(Ivygetvalue(res, i, 1)) - 1; + name = Ivygetvalue(res, i, 0); if (stmtHandle->paramNames[position] != NULL) goto error_handle; @@ -4306,7 +4309,7 @@ Ivyreplacenamebindtoposition2(Ivyconn *tconn, "get_parameter_description return failed"); Ivyclear(res); - for (i = 0; i < stmtHandle->nParams; i++) + for (int i = 0; i < stmtHandle->nParams; i++) { if (stmtHandle->paramNames[i] != NULL) free(stmtHandle->paramNames[i]); diff --git a/src/oracle_test/isolation/isolation_main.c b/src/oracle_test/isolation/isolation_main.c index 20d85eff8fd..2004896998d 100644 --- a/src/oracle_test/isolation/isolation_main.c +++ b/src/oracle_test/isolation/isolation_main.c @@ -18,9 +18,9 @@ #include "lib/stringinfo.h" #include "pg_regress.h" -char saved_argv0[MAXPGPATH]; -char isolation_exec[MAXPGPATH]; -bool looked_up_isolation_exec = false; +static char saved_argv0[MAXPGPATH]; +static char isolation_exec[MAXPGPATH]; +static bool looked_up_isolation_exec = false; #define PG_ISOLATION_VERSIONSTR "isolationtester (PostgreSQL) " PG_VERSION "\n" diff --git a/src/oracle_test/isolation/specparse.y b/src/oracle_test/isolation/specparse.y index dafb5710010..3b840fbabd8 100644 --- a/src/oracle_test/isolation/specparse.y +++ b/src/oracle_test/isolation/specparse.y @@ -15,6 +15,8 @@ #include "isolationtester.h" +extern int spec_yychar; +extern int spec_yynerrs; TestSpec parseresult; /* result of parsing is left here */ diff --git a/src/pl/plisql/src/pl_gram.y b/src/pl/plisql/src/pl_gram.y index 2aa7a3fffec..8e82227f10d 100644 --- a/src/pl/plisql/src/pl_gram.y +++ b/src/pl/plisql/src/pl_gram.y @@ -821,9 +821,10 @@ decl_statement : decl_varname decl_const decl_datatype decl_collate decl_notnull } | decl_varname K_EXCEPTION ';' { - PLiSQL_exception_var *exc; + /* PLiSQL_exception_var *exc; - exc = plisql_build_exception($1.name, $1.lineno, true); + exc = */ + plisql_build_exception($1.name, $1.lineno, true); } | K_PRAGMA K_EXCEPTION_INIT '(' any_identifier ',' ICONST ')' ';' { diff --git a/src/pl/plisql/src/pl_package.c b/src/pl/plisql/src/pl_package.c index 7449e6ee412..6f410df1bae 100644 --- a/src/pl/plisql/src/pl_package.c +++ b/src/pl/plisql/src/pl_package.c @@ -2730,9 +2730,7 @@ static void plisql_remove_function_references(PLiSQL_function *func, PackageCacheItem *item) { PLiSQL_package *psource = (PLiSQL_package *) item->source; - int pre_len; - - pre_len = list_length(psource->source.funclist); + int pre_len = list_length(psource->source.funclist); psource->source.funclist = list_delete_ptr(psource->source.funclist, (void *) func); diff --git a/src/pl/plisql/src/pl_scanner.c b/src/pl/plisql/src/pl_scanner.c index 6aa01de5337..1aad9f724b4 100644 --- a/src/pl/plisql/src/pl_scanner.c +++ b/src/pl/plisql/src/pl_scanner.c @@ -118,7 +118,6 @@ static int plisql_yyleng; /* Current token's code (corresponds to plisql_yylval and plisql_yylloc) */ static int plisql_yytoken; -//static yyscan_t plisql_scanner; /* The semantic value of the lookahead symbol. */ static YYSTYPE plisql_yylval; @@ -140,7 +139,6 @@ static TokenAuxData pushback_auxdata[MAX_PUSHBACKS]; /* State for plisql_location_to_lineno() */ static const char *cur_line_start; static const char *cur_line_end; -//static int cur_line_num; /* * yylex used global variable in pl_scanner.c diff --git a/src/pl/plisql/src/pl_subproc_function.c b/src/pl/plisql/src/pl_subproc_function.c index bc961412967..a8e227ea227 100644 --- a/src/pl/plisql/src/pl_subproc_function.c +++ b/src/pl/plisql/src/pl_subproc_function.c @@ -411,7 +411,6 @@ plisql_build_variable_from_funcargs(PLiSQL_subproc_function * subprocfunc, bool { char buf[32]; PLiSQL_type *argdtype; - //PLiSQL_variable *argvariable; PLiSQL_nsitem_type argitemtype; Oid argtypeid = subprocfunc->rettype->typoid;