Skip to content

Conversation

@bigplaice
Copy link
Collaborator

@bigplaice bigplaice commented Oct 15, 2025

Summary by CodeRabbit

  • New Features

    • None
  • Bug Fixes

    • Ensure correct memory context when updating package variables in CASE, improving stability.
  • Documentation

    • Widespread grammar and wording refinements across PL/SQL components and config comments for clearer messaging.
  • Tests

    • Updated PL/SQL regression scripts with clearer narratives and an added out-parameter scenario plus refinements for polymorphic types and naming overlaps.
  • Style / Chores

    • Minor formatting and whitespace cleanups; refined developer interfaces for subproc handling.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 15, 2025

Walkthrough

Wide-ranging comment, documentation, and formatting edits across backend, PL/PLiSQL, and tests. Functional changes: added a memory-context switch when updating package variables in PL/ISQL execution, removed the core yyscanner linkage from the PL/ISQL scanner global state, and expanded PLiSQL subproc-function header/API (new constant, ARGMODE variants, new/extended prototypes).

Changes

Cohort / File(s) Summary
PL/ISQL executor changes
src/pl/plisql/src/pl_exec.c
exec_stmt_case now saves/restores the prior memory context and switches to the function memory context when updating package variables; other edits are comment/whitespace.
PL/ISQL scanner state
src/pl/plisql/src/pl_scanner.c
Removed ora_core_yyscan_t yyscanner from PLiSQL_yylex_global_proper and removed saving/restoring of that core scanner pointer; related comments updated.
Subproc API / header refactor
src/pl/plisql/src/pl_subproc_function.h
Added FUNC_MAX_NEST_LEVEL, expanded ARGMODE to include OUT/INOUT, adjusted struct formatting/comments, extended/realigned several prototypes, and added plisql_assign_out_subprocfunc_globalvar.
PL/ISQL headers & implementation (cosmetic)
src/pl/plisql/src/plisql.h, src/pl/plisql/src/pl_funcs.c, src/pl/plisql/src/pl_comp.c, src/pl/plisql/src/pl_handler.c, src/pl/plisql/src/pl_gram.y, src/pl/plisql/src/pl_reserved_kwlist.h, src/pl/plisql/src/pl_unreserved_kwlist.h
Wording, comment, and formatting fixes; no behavior changes.
Backend / Oracle parser (cosmetic)
src/backend/commands/functioncmds.c, src/backend/oracle_parser/ora_gram.y, src/include/nodes/parsenodes.h, src/include/pg_config.h.in, src/oracle_fe_utils/ora_psqlscan.l
Comment/typo/wording fixes only.
Tests and SQL examples
src/oracle_test/regress/sql/ora_plisql.sql, src/pl/plisql/src/sql/plisql_nested_subproc.sql, src/pl/plisql/src/sql/plisql_nested_subproc2.sql
Comment and narrative refinements in tests; one script clarifies/adds an out-parameter scenario in examples; otherwise non-functional edits.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Caller
  participant Exec as PL/ISQL Executor
  participant FuncMC as Function MemoryContext
  participant OldMC as Previous MemoryContext
  participant PV as PackageVar

  Caller->>Exec: exec_stmt_case(...)
  Exec->>OldMC: save current context (oldctx)
  Exec->>FuncMC: switch to function memory context
  Exec->>PV: update package variable (value / datatype / typmod)
  Exec->>OldMC: restore oldctx
  Exec-->>Caller: continue execution
  note right of Exec: New explicit context switch for package var update
Loading
sequenceDiagram
  autonumber
  participant Parser
  participant PLScan as PL/ISQL Scanner
  participant CoreLex as Core Lexer

  Parser->>PLScan: save yylex global state
  note right of PLScan: core `yyscanner` pointer is no longer saved/restored
  Parser->>CoreLex: continue lexing (core-managed scanner)
  Parser->>PLScan: restore yylex global state (without core scanner pointer)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

  • refactor subproc_function #917 — Refactors PL/ISQL subproc-function structures and APIs; strongly related to the header/prototype changes in pl_subproc_function.h.
  • Support %rowtype and %type #864 — Modifies CompileFunction and related backend logic; overlaps with comment edits in src/backend/commands/functioncmds.c and related compilation behavior.

Suggested labels

Community

Suggested reviewers

  • OreoYang
  • jiaoshuntian
  • NotHimmel

Poem

twitchy nose, I tidy code and line,
I hop through headers, tidy commas fine.
contexts saved, the package vars feel snug,
scanner sheds a thread — one less little plug.
carrots for prototypes and docs redefined. 🥕

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title Check ❓ Inconclusive The current title is a vague noun phrase that does not clearly describe the primary changes of the pull request and lacks specificity regarding the major refinements made to PL/pgSQL subprocedure declarations and behavior. Please revise the title to clearly and concisely summarize the main changes, for example noting the removal of duplicate subprocedure function declarations and the new memory-context switch added in exec_stmt_case.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/pl/plisql/src/pl_exec.c (1)

5098-5102: Holdable flag must be applied before opening the cursor

This new block only ORs CURSOR_OPT_HOLD into portal->cursorOptions after SPI_cursor_open_with_paramlist returns. By that point SPI_cursor_open_with_paramlist has already decided whether to call PersistHoldablePortal, so the portal remains bound to the current resource owner and will still be closed at subtransaction/transaction end. In other words, package-level cursors are still non-holdable despite this change.

To actually make these cursors holdable, we need to ensure the CURSOR_OPT_HOLD bit is present in the options passed into SPI before the portal is created (e.g. by OR-ing it into curvar->cursor_options/stmt->cursor_options and ultimately the cursorOptions argument of SPI_cursor_open_with_paramlist). That allows SPI to persist the portal correctly. Applying the flag afterwards is too late and leaves the functionality broken.

🧹 Nitpick comments (1)
src/pl/plisql/src/pl_subproc_function.h (1)

224-258: Deduplicate the repeated prototypes.

plisql_assign_out_subprocfunc_globalvar and plisql_subprocfunc_ref (plus their argument lists) are declared twice back-to-back. Keeping two copies risks the signatures drifting in future edits and confuses readers. Trim the duplicates so each API is declared once.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e9e5808 and 02078bf.

⛔ Files ignored due to path filters (3)
  • src/oracle_test/regress/expected/ora_plisql.out is excluded by !**/*.out
  • src/pl/plisql/src/expected/plisql_nested_subproc.out is excluded by !**/*.out
  • src/pl/plisql/src/expected/plisql_nested_subproc2.out is excluded by !**/*.out
📒 Files selected for processing (18)
  • src/backend/commands/functioncmds.c (1 hunks)
  • src/backend/oracle_parser/ora_gram.y (2 hunks)
  • src/include/nodes/parsenodes.h (1 hunks)
  • src/include/pg_config.h.in (1 hunks)
  • src/oracle_fe_utils/ora_psqlscan.l (1 hunks)
  • src/oracle_test/regress/sql/ora_plisql.sql (3 hunks)
  • src/pl/plisql/src/pl_comp.c (67 hunks)
  • src/pl/plisql/src/pl_exec.c (12 hunks)
  • src/pl/plisql/src/pl_funcs.c (2 hunks)
  • src/pl/plisql/src/pl_gram.y (7 hunks)
  • src/pl/plisql/src/pl_handler.c (3 hunks)
  • src/pl/plisql/src/pl_reserved_kwlist.h (1 hunks)
  • src/pl/plisql/src/pl_scanner.c (3 hunks)
  • src/pl/plisql/src/pl_subproc_function.h (5 hunks)
  • src/pl/plisql/src/pl_unreserved_kwlist.h (1 hunks)
  • src/pl/plisql/src/plisql.h (7 hunks)
  • src/pl/plisql/src/sql/plisql_nested_subproc.sql (23 hunks)
  • src/pl/plisql/src/sql/plisql_nested_subproc2.sql (19 hunks)
🧰 Additional context used
🧬 Code graph analysis (2)
src/pl/plisql/src/pl_subproc_function.h (1)
src/pl/plisql/src/pl_subproc_function.c (16)
  • plisql_build_variable_from_funcargs (240-583)
  • plisql_set_subprocfunc_action (591-612)
  • plisql_check_subprocfunc_properties (617-718)
  • plisql_build_subproc_function (728-771)
  • plisql_add_subproc_function (776-788)
  • plisql_register_internal_func (795-816)
  • plisql_unregister_internal_func (822-826)
  • plisql_get_func_result_tupdesc (832-852)
  • get_subprocfunc_arg_info (857-880)
  • plisql_init_subprocfunc_globalvar (1136-1192)
  • plisql_assign_out_subprocfunc_globalvar (1198-1251)
  • plisql_subprocfunc_ref (2960-3039)
  • plisql_get_subprocfunc_detail (1280-1423)
  • get_subprocfunc_arg_info_from_arguments (2534-2571)
  • plisql_subprocfunc_HashTableLookup (2576-2590)
  • plisql_dynamic_compile_subproc (2695-2837)
src/pl/plisql/src/pl_comp.c (6)
src/backend/utils/fmgr/funcapi.c (2)
  • get_func_typename_info (1889-1933)
  • resolve_polymorphic_argtypes (1090-1343)
src/pl/plisql/src/pl_funcs.c (2)
  • plisql_ns_lookup (139-197)
  • plisql_ns_top (89-93)
src/include/postgres.h (1)
  • ObjectIdGetDatum (256-260)
src/backend/utils/cache/typcache.c (1)
  • lookup_type_cache (385-963)
src/backend/utils/cache/syscache.c (1)
  • SysCacheGetAttr (599-622)
src/backend/utils/fmgr/fmgr.c (1)
  • get_call_expr_argtype (1997-2035)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: oracle_regression (ubuntu-latest)
  • GitHub Check: oracle_pg_regression (ubuntu-latest)
  • GitHub Check: meson_build (ubuntu-latest)
  • GitHub Check: build (ubuntu-latest)
  • GitHub Check: contrib_regression
  • GitHub Check: pg_regression (ubuntu-latest)
🔇 Additional comments (5)
src/pl/plisql/src/pl_comp.c (1)

54-55: LGTM – All changes are cosmetic.

The modifications throughout this file consist entirely of:

  • Whitespace and indentation normalization
  • Comment wording improvements (e.g., "Build an execution tree" → "Build", "compiling for validation" → "compiling")
  • Parameter alignment in function calls
  • Minor formatting adjustments

No functional logic, control flow, or behavioral changes detected.

Also applies to: 83-83, 100-121, 126-262, 347-1479, 1799-1800, 1855-1913, 2032-2033, 2074-2317, 2338-2547, 2727-2871, 2876-2912, 2928-3093, 3105-3535, 3573-3630

src/oracle_test/regress/sql/ora_plisql.sql (1)

5-5: LGTM – Documentation improvements.

Three minor comment corrections:

  • Line 5: Grammar fix ("Can" → "can")
  • Line 937: Clarity improvement ("is only using get" → "is only used to get")
  • Line 1059: Formatting fix ("---" → " --") and terminology ("recursive" → "recursion")

No functional changes to test logic.

Also applies to: 937-937, 1059-1059

src/pl/plisql/src/plisql.h (1)

218-220: LGTM – Comment and formatting refinements.

All changes are cosmetic improvements to inline documentation:

  • Clarified field descriptions (notnull, pctrowtypname, info fields)
  • Improved comment grammar and wording
  • Adjusted formatting for consistency

No changes to type definitions, function signatures, or data structure layouts.

Also applies to: 357-358, 442-443, 973-973, 978-978, 1069-1074, 1168-1168, 1242-1242

src/pl/plisql/src/pl_scanner.c (2)

109-109: Minor grammar fix.

Comment improved from "The stuff the core lexer needs" to "The stuff that the core lexer needs".


148-174: Removal of yyscanner from saved state is safe
The Flex scanner handle is held in the static plisql_scanner (set once by ora_scanner_init) and is never reassigned during nested parses, so preserving only core_yy_extra fully restores lexer state.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
src/pl/plisql/src/pl_subproc_function.h (1)

240-258: Remove the duplicated prototypes.

plisql_assign_out_subprocfunc_globalvar and plisql_subprocfunc_ref are declared twice (Lines 224-238 and again here). The duplication adds noise and invites future drift between the copies. Drop the second block and keep a single declaration set.

Apply this diff to remove the redundant block:

-extern void plisql_assign_out_subprocfunc_globalvar(PLiSQL_execstate *estate,
-							FunctionCallInfo fcinfo);
-extern int plisql_subprocfunc_ref(ParseState *pstate, List *funcname,
-				List **fargs,	/* return value */
-				List *fargnames,
-				int nargs,
-				Oid *argtypes,
-				bool expand_variadic,
-				bool expand_defaults,
-				bool include_out_arguments,
-				Oid *funcid,	/* return value */
-				Oid *rettype,	/* return value */
-				bool *retset,	/* return value */
-				int *nvargs,	/* return value */
-				Oid *vatype,	/* return value */
-				Oid **true_typeids, /* return value */
-				List **argdefaults,	/* return value */
-				void **pfunc);	/* return value */
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 02078bf and 6f12501.

📒 Files selected for processing (1)
  • src/pl/plisql/src/pl_subproc_function.h (5 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
src/pl/plisql/src/pl_subproc_function.h (1)
src/pl/plisql/src/pl_subproc_function.c (16)
  • plisql_build_variable_from_funcargs (240-583)
  • plisql_set_subprocfunc_action (591-612)
  • plisql_check_subprocfunc_properties (617-718)
  • plisql_build_subproc_function (728-771)
  • plisql_add_subproc_function (776-788)
  • plisql_register_internal_func (795-816)
  • plisql_unregister_internal_func (822-826)
  • plisql_get_func_result_tupdesc (832-852)
  • get_subprocfunc_arg_info (857-880)
  • plisql_init_subprocfunc_globalvar (1136-1192)
  • plisql_assign_out_subprocfunc_globalvar (1198-1251)
  • plisql_subprocfunc_ref (2960-3039)
  • plisql_get_subprocfunc_detail (1280-1423)
  • get_subprocfunc_arg_info_from_arguments (2534-2571)
  • plisql_subprocfunc_HashTableLookup (2576-2590)
  • plisql_dynamic_compile_subproc (2695-2837)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: meson_build (ubuntu-latest)
  • GitHub Check: pg_regression (ubuntu-latest)
  • GitHub Check: oracle_pg_regression (ubuntu-latest)
  • GitHub Check: build (ubuntu-latest)
  • GitHub Check: oracle_regression (ubuntu-latest)
  • GitHub Check: contrib_regression

@OreoYang
Copy link
Collaborator

from @coderabbitai comments

src/pl/plisql/src/pl_subproc_function.h (1)
224-258: Deduplicate the repeated prototypes.

plisql_assign_out_subprocfunc_globalvar and plisql_subprocfunc_ref (plus their argument lists) are declared twice back-to-back. Keeping two copies risks the signatures drifting in future edits and confuses readers. Trim the duplicates so each API is declared once.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 15, 2025

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# View the file around lines 224-258 to see the duplicate declarations
sed -n '220,260p' src/pl/plisql/src/pl_subproc_function.h

Length of output: 1616


@OreoYang, you're correct! There are duplicate declarations of both functions. Here's the corrected version with the duplicates removed:

extern void plisql_init_subprocfunc_globalvar(PLiSQL_execstate *estate,
							FunctionCallInfo fcinfo);

extern void plisql_assign_out_subprocfunc_globalvar(PLiSQL_execstate *estate,
							FunctionCallInfo fcinfo);
extern int plisql_subprocfunc_ref(ParseState *pstate, List *funcname,
				List **fargs,	/* return value */
				List *fargnames,
				int nargs,
				Oid *argtypes,
				bool expand_variadic,
				bool expand_defaults,
				bool include_out_arguments,
				Oid *funcid,	/* return value */
				Oid *rettype,	/* return value */
				bool *retset,	/* return value */
				int *nvargs,	/* return value */
				Oid *vatype,	/* return value */
				Oid **true_typeids, /* return value */
				List **argdefaults,	/* return value */
				void **pfunc);	/* return value */

extern FuncDetailCode plisql_get_subprocfunc_detail(ParseState *pstate,
							PLiSQL_function *pfunc,

I've kept the second version of each declaration since it has better formatting with arguments on separate lines, making it more readable.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
src/pl/plisql/src/pl_subproc_function.h (1)

38-38: Consider removing extra blank lines for consistency.

The blank lines at lines 38 and 41 add unnecessary whitespace. C headers typically group related declarations without extra spacing unless separating major sections.

Also applies to: 41-41

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6f12501 and b933906.

📒 Files selected for processing (1)
  • src/pl/plisql/src/pl_subproc_function.h (4 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
src/pl/plisql/src/pl_subproc_function.h (1)
src/pl/plisql/src/pl_subproc_function.c (16)
  • plisql_build_variable_from_funcargs (240-583)
  • plisql_set_subprocfunc_action (591-612)
  • plisql_check_subprocfunc_properties (617-718)
  • plisql_build_subproc_function (728-771)
  • plisql_add_subproc_function (776-788)
  • plisql_register_internal_func (795-816)
  • plisql_unregister_internal_func (822-826)
  • plisql_get_func_result_tupdesc (832-852)
  • get_subprocfunc_arg_info (857-880)
  • plisql_init_subprocfunc_globalvar (1136-1192)
  • plisql_assign_out_subprocfunc_globalvar (1198-1251)
  • plisql_subprocfunc_ref (2960-3039)
  • plisql_get_subprocfunc_detail (1280-1423)
  • get_subprocfunc_arg_info_from_arguments (2534-2571)
  • plisql_subprocfunc_HashTableLookup (2576-2590)
  • plisql_dynamic_compile_subproc (2695-2837)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: oracle_regression (ubuntu-latest)
  • GitHub Check: pg_regression (ubuntu-latest)
  • GitHub Check: oracle_pg_regression (ubuntu-latest)
  • GitHub Check: contrib_regression
  • GitHub Check: meson_build (ubuntu-latest)
  • GitHub Check: build (ubuntu-latest)
🔇 Additional comments (5)
src/pl/plisql/src/pl_subproc_function.h (5)

42-47: LGTM!

The ARGMODE enum expansion to include OUT and INOUT parameter modes is correct and necessary for handling different parameter passing semantics in PL/ISQL.


142-162: LGTM!

The inline comment updates and comprehensive documentation block (lines 89-140) significantly improve the clarity of the struct's purpose and field semantics.


193-202: LGTM!

The formatting and alignment improvements enhance readability while preserving correct function signatures that match the implementations.

Also applies to: 206-207, 221-225


243-264: LGTM!

All function prototypes are correctly declared and match their implementations in pl_subproc_function.c. The expanded parameter lists for plisql_get_subprocfunc_detail properly reflect the enhanced API.


266-266: LGTM!

The include guard is correctly closed with a single #endif, as confirmed by the past review feedback being addressed in commit 6f12501.

Comment on lines +226 to +241
extern int plisql_subprocfunc_ref(ParseState *pstate, List *funcname,
List **fargs, /* return value */
List *fargnames,
int nargs,
Oid *argtypes,
bool expand_variadic,
bool expand_defaults,
bool include_out_arguments,
Oid *funcid, /* return value */
Oid *rettype, /* return value */
bool *retset, /* return value */
int *nvargs, /* return value */
Oid *vatype, /* return value */
Oid **true_typeids, /* return value */
List **argdefaults, /* return value */
void **pfunc); /* return value */
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Critical: Parameter name mismatch between header and implementation.

The header declares the 9th parameter as include_out_arguments (line 233), but the implementation in pl_subproc_function.c (lines 2959-3038) names it proc_call. This mismatch creates confusion about the parameter's purpose and can lead to incorrect usage.

Apply this diff to align the parameter name with the implementation:

 extern int plisql_subprocfunc_ref(ParseState *pstate, List *funcname,
 				List **fargs,	/* return value */
 				List *fargnames,
 				int nargs,
 				Oid *argtypes,
 				bool expand_variadic,
 				bool expand_defaults,
-				bool include_out_arguments,
+				bool proc_call,
 				Oid *funcid,	/* return value */
 				Oid *rettype,	/* return value */
 				bool *retset,	/* return value */
 				int *nvargs,	/* return value */
 				Oid *vatype,	/* return value */
 				Oid **true_typeids, /* return value */
 				List **argdefaults,	/* return value */
 				void **pfunc);	/* return value */
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
extern int plisql_subprocfunc_ref(ParseState *pstate, List *funcname,
List **fargs, /* return value */
List *fargnames,
int nargs,
Oid *argtypes,
bool expand_variadic,
bool expand_defaults,
bool include_out_arguments,
Oid *funcid, /* return value */
Oid *rettype, /* return value */
bool *retset, /* return value */
int *nvargs, /* return value */
Oid *vatype, /* return value */
Oid **true_typeids, /* return value */
List **argdefaults, /* return value */
void **pfunc); /* return value */
extern int plisql_subprocfunc_ref(ParseState *pstate, List *funcname,
List **fargs, /* return value */
List *fargnames,
int nargs,
Oid *argtypes,
bool expand_variadic,
bool expand_defaults,
bool proc_call,
Oid *funcid, /* return value */
Oid *rettype, /* return value */
bool *retset, /* return value */
int *nvargs, /* return value */
Oid *vatype, /* return value */
Oid **true_typeids, /* return value */
List **argdefaults, /* return value */
void **pfunc); /* return value */
🤖 Prompt for AI Agents
In src/pl/plisql/src/pl_subproc_function.h around lines 226 to 241, the 9th
parameter is declared as include_out_arguments but the implementation in
pl_subproc_function.c uses the name proc_call; update the header to match the
implementation by renaming the 9th parameter in this function prototype to
proc_call (and ensure any related comments/usage nearby reflect the same name)
so the declaration and definition use the same parameter identifier.

@gaoxueyu gaoxueyu merged commit a34f415 into IvorySQL:master Oct 16, 2025
6 checks passed
This was referenced Oct 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants