mirror of
https://github.com/postgres/postgres.git
synced 2025-04-24 10:47:04 +03:00
Suppress compiler warnings in recent plperl patch. Avoid uselessly expensive
lookup of the well-known OID of textout().
This commit is contained in:
parent
b8f28759d4
commit
ba9da684b5
@ -1,7 +1,7 @@
|
|||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* plperl.c - perl as a procedural language for PostgreSQL
|
* 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 "miscadmin.h"
|
||||||
#include "nodes/makefuncs.h"
|
#include "nodes/makefuncs.h"
|
||||||
#include "parser/parse_type.h"
|
#include "parser/parse_type.h"
|
||||||
|
#include "utils/fmgroids.h"
|
||||||
#include "utils/guc.h"
|
#include "utils/guc.h"
|
||||||
#include "utils/lsyscache.h"
|
#include "utils/lsyscache.h"
|
||||||
#include "utils/memutils.h"
|
#include "utils/memutils.h"
|
||||||
@ -508,7 +509,6 @@ plperl_safe_init(void)
|
|||||||
eval_pv(SAFE_OK, FALSE);
|
eval_pv(SAFE_OK, FALSE);
|
||||||
if (GetDatabaseEncoding() == PG_UTF8)
|
if (GetDatabaseEncoding() == PG_UTF8)
|
||||||
{
|
{
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fill in just enough information to set up this perl
|
* Fill in just enough information to set up this perl
|
||||||
* function in the safe container and call it.
|
* 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
|
* can arise from the regex code later trying to load
|
||||||
* utf8 modules.
|
* utf8 modules.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
plperl_proc_desc desc;
|
plperl_proc_desc desc;
|
||||||
FunctionCallInfoData fcinfo;
|
FunctionCallInfoData fcinfo;
|
||||||
FmgrInfo outfunc;
|
|
||||||
HeapTuple typeTup;
|
|
||||||
Form_pg_type typeStruct;
|
|
||||||
SV *ret;
|
SV *ret;
|
||||||
SV *func;
|
SV *func;
|
||||||
|
|
||||||
@ -529,26 +525,18 @@ plperl_safe_init(void)
|
|||||||
plperl_safe_init_done = true;
|
plperl_safe_init_done = true;
|
||||||
|
|
||||||
/* compile the function */
|
/* compile the function */
|
||||||
func = plperl_create_sub(
|
func = plperl_create_sub("utf8fix",
|
||||||
"utf8fix",
|
|
||||||
"return shift =~ /\\xa9/i ? 'true' : 'false' ;",
|
"return shift =~ /\\xa9/i ? 'true' : 'false' ;",
|
||||||
true);
|
true);
|
||||||
|
|
||||||
|
|
||||||
/* set up to call the function with a single text argument 'a' */
|
/* set up to call the function with a single text argument 'a' */
|
||||||
desc.reference = func;
|
desc.reference = func;
|
||||||
desc.nargs = 1;
|
desc.nargs = 1;
|
||||||
desc.arg_is_rowtype[0] = false;
|
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.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 */
|
/* and make the call */
|
||||||
ret = plperl_call_perl_func(&desc, &fcinfo);
|
ret = plperl_call_perl_func(&desc, &fcinfo);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user