OSDN Git Service

Suppress compiler warnings in recent plperl patch. Avoid uselessly expensive
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 1 Dec 2007 17:58:42 +0000 (17:58 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 1 Dec 2007 17:58:42 +0000 (17:58 +0000)
lookup of the well-known OID of textout().

src/pl/plperl/plperl.c

index 5f4677c..70d90b6 100644 (file)
@@ -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);
                }
        }