Skip to content
Snippets Groups Projects
Commit ba9da684 authored by Tom Lane's avatar Tom Lane
Browse files

Suppress compiler warnings in recent plperl patch. Avoid uselessly expensive

lookup of the well-known OID of textout().
parent b8f28759
No related branches found
No related tags found
No related merge requests found
/**********************************************************************
* 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);
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment