Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit6c3c7b5

Browse files
committed
Allow generic record arguments to plperl functions
1 parenta3d40e9 commit6c3c7b5

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

‎src/pl/plperl/plperl.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1371,7 +1371,8 @@ plperl_validator(PG_FUNCTION_ARGS)
13711371
&argtypes,&argnames,&argmodes);
13721372
for (i=0;i<numargs;i++)
13731373
{
1374-
if (get_typtype(argtypes[i])==TYPTYPE_PSEUDO)
1374+
if (get_typtype(argtypes[i])==TYPTYPE_PSEUDO&&
1375+
argtypes[i]!=RECORDOID)
13751376
ereport(ERROR,
13761377
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
13771378
errmsg("PL/Perl functions cannot accept type %s",
@@ -2105,7 +2106,8 @@ compile_plperl_function(Oid fn_oid, bool is_trigger)
21052106
typeStruct= (Form_pg_type)GETSTRUCT(typeTup);
21062107

21072108
/* Disallow pseudotype argument */
2108-
if (typeStruct->typtype==TYPTYPE_PSEUDO)
2109+
if (typeStruct->typtype==TYPTYPE_PSEUDO&&
2110+
procStruct->proargtypes.values[i]!=RECORDOID)
21092111
{
21102112
free(prodesc->proname);
21112113
free(prodesc);
@@ -2115,7 +2117,8 @@ compile_plperl_function(Oid fn_oid, bool is_trigger)
21152117
format_type_be(procStruct->proargtypes.values[i]))));
21162118
}
21172119

2118-
if (typeStruct->typtype==TYPTYPE_COMPOSITE)
2120+
if (typeStruct->typtype==TYPTYPE_COMPOSITE||
2121+
procStruct->proargtypes.values[i]==RECORDOID)
21192122
prodesc->arg_is_rowtype[i]= true;
21202123
else
21212124
{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp