Hi hackers, PFA patches to remove unused function parameters in contrib (more patches will come for non contrib).
The patches are split by modules to ease the review. For 0005 (collid not used in internal_citext_pattern_cmp()) I think that the unused column should be used (as done in 0005) due to an oversight in commit f2464997644c. This has been done with the help of a coccinelle script. It needs more polishing, so will share later. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com
>From 149641ccd2c40e585b9e63254c5330b1393274f4 Mon Sep 17 00:00:00 2001 From: Bertrand Drouvot <[email protected]> Date: Thu, 27 Nov 2025 07:01:02 +0000 Subject: [PATCH v1 1/5] Removing unused function parameters in btree_gist A few parameters are not used, let's remove them. --- contrib/btree_gist/btree_utils_var.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 100.0% contrib/btree_gist/ diff --git a/contrib/btree_gist/btree_utils_var.c b/contrib/btree_gist/btree_utils_var.c index fb466e5aa32..f908929ab44 100644 --- a/contrib/btree_gist/btree_utils_var.c +++ b/contrib/btree_gist/btree_utils_var.c @@ -166,7 +166,7 @@ gbt_var_node_cp_len(const GBT_VARKEY *node, const gbtree_vinfo *tinfo) * returns true, if query matches prefix ( common prefix ) */ static bool -gbt_bytea_pf_match(const bytea *pf, const bytea *query, const gbtree_vinfo *tinfo) +gbt_bytea_pf_match(const bytea *pf, const bytea *query) { bool out = false; int32 qlen = VARSIZE(query) - VARHDRSZ; @@ -191,8 +191,8 @@ static bool gbt_var_node_pf_match(const GBT_VARKEY_R *node, const bytea *query, const gbtree_vinfo *tinfo) { return (tinfo->trnc && - (gbt_bytea_pf_match(node->lower, query, tinfo) || - gbt_bytea_pf_match(node->upper, query, tinfo))); + (gbt_bytea_pf_match(node->lower, query) || + gbt_bytea_pf_match(node->upper, query))); } @@ -399,9 +399,9 @@ gbt_var_penalty(float *res, const GISTENTRY *o, const GISTENTRY *n, if ((VARSIZE(ok.lower) - VARHDRSZ) == 0 && (VARSIZE(ok.upper) - VARHDRSZ) == 0) *res = 0.0; else if (!((tinfo->f_cmp(nk.lower, ok.lower, collation, flinfo) >= 0 || - gbt_bytea_pf_match(ok.lower, nk.lower, tinfo)) && + gbt_bytea_pf_match(ok.lower, nk.lower)) && (tinfo->f_cmp(nk.upper, ok.upper, collation, flinfo) <= 0 || - gbt_bytea_pf_match(ok.upper, nk.upper, tinfo)))) + gbt_bytea_pf_match(ok.upper, nk.upper)))) { Datum d = PointerGetDatum(0); double dres; -- 2.34.1
>From 2f70da3892599c3342d1fe0bf4c9d9498b55c074 Mon Sep 17 00:00:00 2001 From: Bertrand Drouvot <[email protected]> Date: Thu, 27 Nov 2025 07:19:20 +0000 Subject: [PATCH v1 2/5] Removing unused function parameters in pgcrypto A few parameters are not used, let's remove them. --- contrib/pgcrypto/pgcrypto.c | 19 ++++++++----------- contrib/pgcrypto/pgp-pgsql.c | 4 ++-- 2 files changed, 10 insertions(+), 13 deletions(-) 100.0% contrib/pgcrypto/ diff --git a/contrib/pgcrypto/pgcrypto.c b/contrib/pgcrypto/pgcrypto.c index 9ecbbd2e2f8..5b762107e2e 100644 --- a/contrib/pgcrypto/pgcrypto.c +++ b/contrib/pgcrypto/pgcrypto.c @@ -56,8 +56,7 @@ static const struct config_enum_entry builtin_crypto_options[] = { }; typedef int (*PFN) (const char *name, void **res); -static void *find_provider(text *name, PFN provider_lookup, const char *desc, - int silent); +static void *find_provider(text *name, PFN provider_lookup, int silent); int builtin_crypto_enabled = BC_ON; @@ -98,7 +97,7 @@ pg_digest(PG_FUNCTION_ARGS) name = PG_GETARG_TEXT_PP(1); /* will give error if fails */ - md = find_provider(name, (PFN) px_find_digest, "Digest", 0); + md = find_provider(name, (PFN) px_find_digest, 0); hlen = px_md_result_size(md); @@ -136,7 +135,7 @@ pg_hmac(PG_FUNCTION_ARGS) name = PG_GETARG_TEXT_PP(2); /* will give error if fails */ - h = find_provider(name, (PFN) px_find_hmac, "HMAC", 0); + h = find_provider(name, (PFN) px_find_hmac, 0); hlen = px_hmac_result_size(h); @@ -262,7 +261,7 @@ pg_encrypt(PG_FUNCTION_ARGS) rlen; type = PG_GETARG_TEXT_PP(2); - c = find_provider(type, (PFN) px_find_combo, "Cipher", 0); + c = find_provider(type, (PFN) px_find_combo, 0); data = PG_GETARG_BYTEA_PP(0); key = PG_GETARG_BYTEA_PP(1); @@ -311,7 +310,7 @@ pg_decrypt(PG_FUNCTION_ARGS) rlen; type = PG_GETARG_TEXT_PP(2); - c = find_provider(type, (PFN) px_find_combo, "Cipher", 0); + c = find_provider(type, (PFN) px_find_combo, 0); data = PG_GETARG_BYTEA_PP(0); key = PG_GETARG_BYTEA_PP(1); @@ -361,7 +360,7 @@ pg_encrypt_iv(PG_FUNCTION_ARGS) rlen; type = PG_GETARG_TEXT_PP(3); - c = find_provider(type, (PFN) px_find_combo, "Cipher", 0); + c = find_provider(type, (PFN) px_find_combo, 0); data = PG_GETARG_BYTEA_PP(0); key = PG_GETARG_BYTEA_PP(1); @@ -415,7 +414,7 @@ pg_decrypt_iv(PG_FUNCTION_ARGS) ivlen; type = PG_GETARG_TEXT_PP(3); - c = find_provider(type, (PFN) px_find_combo, "Cipher", 0); + c = find_provider(type, (PFN) px_find_combo, 0); data = PG_GETARG_BYTEA_PP(0); key = PG_GETARG_BYTEA_PP(1); @@ -493,9 +492,7 @@ pg_check_fipsmode(PG_FUNCTION_ARGS) } static void * -find_provider(text *name, - PFN provider_lookup, - const char *desc, int silent) +find_provider(text *name, PFN provider_lookup, int silent) { void *res; char *buf; diff --git a/contrib/pgcrypto/pgp-pgsql.c b/contrib/pgcrypto/pgp-pgsql.c index 7c9f4c7b39b..583d4ae17d2 100644 --- a/contrib/pgcrypto/pgp-pgsql.c +++ b/contrib/pgcrypto/pgp-pgsql.c @@ -119,7 +119,7 @@ struct debug_expect }; static void -fill_expect(struct debug_expect *ex, int text_mode) +fill_expect(struct debug_expect *ex) { ex->debug = 0; ex->expect = 0; @@ -353,7 +353,7 @@ init_work(PGP_Context **ctx_p, int is_text, { int err = pgp_init(ctx_p); - fill_expect(ex, is_text); + fill_expect(ex); if (err == 0 && args != NULL) err = parse_args(*ctx_p, (uint8 *) VARDATA_ANY(args), -- 2.34.1
>From 8f5eebc2e9942a702ce500cb7db30147279c6a86 Mon Sep 17 00:00:00 2001 From: Bertrand Drouvot <[email protected]> Date: Thu, 27 Nov 2025 07:22:10 +0000 Subject: [PATCH v1 3/5] Removing unused function parameters in file_fdw A few parameters are not used, let's remove them. --- contrib/file_fdw/file_fdw.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) 100.0% contrib/file_fdw/ diff --git a/contrib/file_fdw/file_fdw.c b/contrib/file_fdw/file_fdw.c index 70564a68b13..7638bce6262 100644 --- a/contrib/file_fdw/file_fdw.c +++ b/contrib/file_fdw/file_fdw.c @@ -166,8 +166,7 @@ static bool check_selective_binary_conversion(RelOptInfo *baserel, List **columns); static void estimate_size(PlannerInfo *root, RelOptInfo *baserel, FileFdwPlanState *fdw_private); -static void estimate_costs(PlannerInfo *root, RelOptInfo *baserel, - FileFdwPlanState *fdw_private, +static void estimate_costs(RelOptInfo *baserel, FileFdwPlanState *fdw_private, Cost *startup_cost, Cost *total_cost); static int file_acquire_sample_rows(Relation onerel, int elevel, HeapTuple *rows, int targrows, @@ -569,8 +568,7 @@ fileGetForeignPaths(PlannerInfo *root, (Node *) columns, -1)); /* Estimate costs */ - estimate_costs(root, baserel, fdw_private, - &startup_cost, &total_cost); + estimate_costs(baserel, fdw_private, &startup_cost, &total_cost); /* * Create a ForeignPath node and add it as only possible path. We use the @@ -1139,7 +1137,7 @@ estimate_size(PlannerInfo *root, RelOptInfo *baserel, * Results are returned in *startup_cost and *total_cost. */ static void -estimate_costs(PlannerInfo *root, RelOptInfo *baserel, +estimate_costs(RelOptInfo *baserel, FileFdwPlanState *fdw_private, Cost *startup_cost, Cost *total_cost) { -- 2.34.1
>From fac37ea9a8ac1f3a47b418255db9dceb19e77ee4 Mon Sep 17 00:00:00 2001 From: Bertrand Drouvot <[email protected]> Date: Thu, 27 Nov 2025 07:35:29 +0000 Subject: [PATCH v1 4/5] Removing unused function parameters in postgres_fdw A few parameters are not used, let's remove them. --- contrib/postgres_fdw/postgres_fdw.c | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) 100.0% contrib/postgres_fdw/ diff --git a/contrib/postgres_fdw/postgres_fdw.c b/contrib/postgres_fdw/postgres_fdw.c index 06b52c65300..5b03639a77c 100644 --- a/contrib/postgres_fdw/postgres_fdw.c +++ b/contrib/postgres_fdw/postgres_fdw.c @@ -444,7 +444,6 @@ static void adjust_foreign_grouping_path_cost(PlannerInfo *root, double retrieved_rows, double width, double limit_tuples, - int *p_disabled_nodes, Cost *p_startup_cost, Cost *p_run_cost); static bool ec_member_matches_foreign(PlannerInfo *root, RelOptInfo *rel, @@ -464,8 +463,7 @@ static PgFdwModifyState *create_foreign_modify(EState *estate, int values_end, bool has_returning, List *retrieved_attrs); -static TupleTableSlot **execute_foreign_modify(EState *estate, - ResultRelInfo *resultRelInfo, +static TupleTableSlot **execute_foreign_modify(ResultRelInfo *resultRelInfo, CmdType operation, TupleTableSlot **slots, TupleTableSlot **planSlots, @@ -1984,7 +1982,7 @@ postgresExecForeignInsert(EState *estate, */ if (fmstate->aux_fmstate) resultRelInfo->ri_FdwState = fmstate->aux_fmstate; - rslot = execute_foreign_modify(estate, resultRelInfo, CMD_INSERT, + rslot = execute_foreign_modify(resultRelInfo, CMD_INSERT, &slot, &planSlot, &numSlots); /* Revert that change */ if (fmstate->aux_fmstate) @@ -2013,7 +2011,7 @@ postgresExecForeignBatchInsert(EState *estate, */ if (fmstate->aux_fmstate) resultRelInfo->ri_FdwState = fmstate->aux_fmstate; - rslot = execute_foreign_modify(estate, resultRelInfo, CMD_INSERT, + rslot = execute_foreign_modify(resultRelInfo, CMD_INSERT, slots, planSlots, numSlots); /* Revert that change */ if (fmstate->aux_fmstate) @@ -2106,7 +2104,7 @@ postgresExecForeignUpdate(EState *estate, TupleTableSlot **rslot; int numSlots = 1; - rslot = execute_foreign_modify(estate, resultRelInfo, CMD_UPDATE, + rslot = execute_foreign_modify(resultRelInfo, CMD_UPDATE, &slot, &planSlot, &numSlots); return rslot ? rslot[0] : NULL; @@ -2125,7 +2123,7 @@ postgresExecForeignDelete(EState *estate, TupleTableSlot **rslot; int numSlots = 1; - rslot = execute_foreign_modify(estate, resultRelInfo, CMD_DELETE, + rslot = execute_foreign_modify(resultRelInfo, CMD_DELETE, &slot, &planSlot, &numSlots); return rslot ? rslot[0] : NULL; @@ -2385,10 +2383,7 @@ postgresRecheckForeignScan(ForeignScanState *node, TupleTableSlot *slot) * error condition, we just abandon trying to do the update directly. */ static ForeignScan * -find_modifytable_subplan(PlannerInfo *root, - ModifyTable *plan, - Index rtindex, - int subplan_index) +find_modifytable_subplan(ModifyTable *plan, Index rtindex, int subplan_index) { Plan *subplan = outerPlan(plan); @@ -2477,7 +2472,7 @@ postgresPlanDirectModify(PlannerInfo *root, /* * Try to locate the ForeignScan subplan that's scanning resultRelation. */ - fscan = find_modifytable_subplan(root, plan, resultRelation, subplan_index); + fscan = find_modifytable_subplan(plan, resultRelation, subplan_index); if (!fscan) return false; @@ -3495,7 +3490,6 @@ estimate_path_cost_size(PlannerInfo *root, adjust_foreign_grouping_path_cost(root, pathkeys, retrieved_rows, width, fpextra->limit_tuples, - &disabled_nodes, &startup_cost, &run_cost); } else @@ -3642,7 +3636,6 @@ adjust_foreign_grouping_path_cost(PlannerInfo *root, double retrieved_rows, double width, double limit_tuples, - int *p_disabled_nodes, Cost *p_startup_cost, Cost *p_run_cost) { @@ -4074,8 +4067,7 @@ create_foreign_modify(EState *estate, * postgresExecForeignDelete.) */ static TupleTableSlot ** -execute_foreign_modify(EState *estate, - ResultRelInfo *resultRelInfo, +execute_foreign_modify(ResultRelInfo *resultRelInfo, CmdType operation, TupleTableSlot **slots, TupleTableSlot **planSlots, @@ -5657,7 +5649,7 @@ postgresImportForeignSchema(ImportForeignSchemaStmt *stmt, Oid serverOid) * outer rel. */ static bool -semijoin_target_ok(PlannerInfo *root, RelOptInfo *joinrel, RelOptInfo *outerrel, RelOptInfo *innerrel) +semijoin_target_ok(RelOptInfo *joinrel, RelOptInfo *outerrel, RelOptInfo *innerrel) { List *vars; ListCell *lc; @@ -5719,7 +5711,7 @@ foreign_join_ok(PlannerInfo *root, RelOptInfo *joinrel, JoinType jointype, /* * We can't push down semi-join if its reltarget is not safe */ - if ((jointype == JOIN_SEMI) && !semijoin_target_ok(root, joinrel, outerrel, innerrel)) + if ((jointype == JOIN_SEMI) && !semijoin_target_ok(joinrel, outerrel, innerrel)) return false; /* -- 2.34.1
>From cd25426a69a600f01d87be8f0798bfc68ad5eb80 Mon Sep 17 00:00:00 2001 From: Bertrand Drouvot <[email protected]> Date: Thu, 27 Nov 2025 07:42:28 +0000 Subject: [PATCH v1 5/5] collid not used in internal_citext_pattern_cmp() Make use of it, oversight in commit f2464997644c. --- contrib/citext/citext.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 100.0% contrib/citext/ diff --git a/contrib/citext/citext.c b/contrib/citext/citext.c index a15ce5db829..d1d41b85ea7 100644 --- a/contrib/citext/citext.c +++ b/contrib/citext/citext.c @@ -77,8 +77,8 @@ internal_citext_pattern_cmp(text *left, text *right, Oid collid) rlen; int32 result; - lcstr = str_tolower(VARDATA_ANY(left), VARSIZE_ANY_EXHDR(left), DEFAULT_COLLATION_OID); - rcstr = str_tolower(VARDATA_ANY(right), VARSIZE_ANY_EXHDR(right), DEFAULT_COLLATION_OID); + lcstr = str_tolower(VARDATA_ANY(left), VARSIZE_ANY_EXHDR(left), collid); + rcstr = str_tolower(VARDATA_ANY(right), VARSIZE_ANY_EXHDR(right), collid); llen = strlen(lcstr); rlen = strlen(rcstr); -- 2.34.1
