From ba9da684b5dba9dc5daf05abd442f9b4a5a23979 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sat, 1 Dec 2007 17:58:42 +0000 Subject: [PATCH] Suppress compiler warnings in recent plperl patch. Avoid uselessly expensive lookup of the well-known OID of textout(). --- src/pl/plperl/plperl.c | 30 +++++++++--------------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c index 5f4677c360..70d90b63ff 100644 --- a/src/pl/plperl/plperl.c +++ b/src/pl/plperl/plperl.c @@ -1,7 +1,7 @@ /********************************************************************** * plperl.c - perl as a procedural language for PostgreSQL * - * $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.133 2007/12/01 15:20:34 adunstan Exp $ + * $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.134 2007/12/01 17:58:42 tgl Exp $ * **********************************************************************/ @@ -23,6 +23,7 @@ #include "miscadmin.h" #include "nodes/makefuncs.h" #include "parser/parse_type.h" +#include "utils/fmgroids.h" #include "utils/guc.h" #include "utils/lsyscache.h" #include "utils/memutils.h" @@ -508,7 +509,6 @@ plperl_safe_init(void) eval_pv(SAFE_OK, FALSE); if (GetDatabaseEncoding() == PG_UTF8) { - /* * Fill in just enough information to set up this perl * function in the safe container and call it. @@ -516,12 +516,8 @@ plperl_safe_init(void) * can arise from the regex code later trying to load * utf8 modules. */ - plperl_proc_desc desc; FunctionCallInfoData fcinfo; - FmgrInfo outfunc; - HeapTuple typeTup; - Form_pg_type typeStruct; SV *ret; SV *func; @@ -529,29 +525,21 @@ plperl_safe_init(void) plperl_safe_init_done = true; /* compile the function */ - func = plperl_create_sub( - "utf8fix", - "return shift =~ /\\xa9/i ? 'true' : 'false' ;", - true); - + func = plperl_create_sub("utf8fix", + "return shift =~ /\\xa9/i ? 'true' : 'false' ;", + true); /* set up to call the function with a single text argument 'a' */ desc.reference = func; desc.nargs = 1; desc.arg_is_rowtype[0] = false; + fmgr_info(F_TEXTOUT, &(desc.arg_out_func[0])); + + fcinfo.arg[0] = DirectFunctionCall1(textin, CStringGetDatum("a")); fcinfo.argnull[0] = false; - fcinfo.arg[0] = - DatumGetTextP(DirectFunctionCall1(textin, - CStringGetDatum("a"))); - typeTup = SearchSysCache(TYPEOID, - TEXTOID, - 0, 0, 0); - typeStruct = (Form_pg_type) GETSTRUCT(typeTup); - fmgr_info(typeStruct->typoutput,&(desc.arg_out_func[0])); - ReleaseSysCache(typeTup); /* and make the call */ - ret = plperl_call_perl_func(&desc,&fcinfo); + ret = plperl_call_perl_func(&desc, &fcinfo); } } -- 2.40.0