David Kamholz <[EMAIL PROTECTED]> writes:
> *** plperl.c.orig     Sat Dec  4 02:09:24 2004
> --- plperl.c  Sat Dec  4 03:41:33 2004
> ***************
> *** 57,62 ****
> --- 57,63 ----
>   #include "utils/lsyscache.h"
>   #include "utils/syscache.h"
>   #include "utils/typcache.h"
> + #include "mb/pg_wchar.h"
  
>   /* perl stuff */
>   #include "EXTERN.h"
> ***************
> *** 803,814 ****
>               else
>               {
>                       char       *tmp;
  
>                       tmp = 
> DatumGetCString(FunctionCall3(&(desc->arg_out_func[i]),
>                                                                               
>                 fcinfo->arg[i],
>                                                                       
> ObjectIdGetDatum(desc->arg_typioparam[i]),
>                                                                               
>                 Int32GetDatum(-1)));
> !                     XPUSHs(sv_2mortal(newSVpv(tmp, 0)));
>                       pfree(tmp);
>               }
>       }
> --- 804,818 ----
>               else
>               {
>                       char       *tmp;
> +                     SV                      *sv;
  
>                       tmp = 
> DatumGetCString(FunctionCall3(&(desc->arg_out_func[i]),
>                                                                               
>                 fcinfo->arg[i],
>                                                                       
> ObjectIdGetDatum(desc->arg_typioparam[i]),
>                                                                               
>                 Int32GetDatum(-1)));
> !                     sv = newSVpv(tmp, 0);
> !                     if (GetDatabaseEncoding() == PG_UTF8) SvUTF8_on(sv);
> !                     XPUSHs(sv_2mortal(sv));
>                       pfree(tmp);
>               }
>       }
> ***************
> *** 1553,1558 ****
> --- 1557,1563 ----
>   {
>       int                     i;
>       HV                 *hv;
> +     SV                      *sv;
>       Datum           attr;
>       bool            isnull;
>       char       *attname;
> ***************
> *** 1601,1608 ****
>                                                                               
>                          attr,
>                                                                               
>         ObjectIdGetDatum(typioparam),
>                                                  
> Int32GetDatum(tupdesc->attrs[i]->atttypmod)));
> ! 
> !             hv_store(hv, attname, namelen, newSVpv(outputstr, 0), 0);
>       }
  
>       return sv_2mortal(newRV((SV *)hv));
> --- 1606,1614 ----
>                                                                               
>                          attr,
>                                                                               
>         ObjectIdGetDatum(typioparam),
>                                                  
> Int32GetDatum(tupdesc->attrs[i]->atttypmod)));
> !             sv = newSVpv(outputstr, 0);
> !             if (GetDatabaseEncoding() == PG_UTF8) SvUTF8_on(sv);
> !             hv_store(hv, attname, namelen, sv, 0);
>       }
  
>       return sv_2mortal(newRV((SV *)hv));

I don't think we can accept this patch as-is, mainly because it is going
to require some configuration checks (older Perls don't seem to have
SvUTF8_on()).  That means it's probably too late to consider it for 8.0.
I agree something like this should make its way into 8.1 though.

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

Reply via email to