Search Postgresql Archives

Re: pl/perl and recent perl versions - failing to load internal modules

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Alex,
your example (chr(0x100) =~ /\\xa9/) works on my instance (pg 9.3.4, plperl 5.18)
However the following code fails:
=>  do $$ "\N{U+263A}" =~ /[[:punct:]]/$$ language plperl;
ERROR:  Unable to load utf8.pm into plperl at line 1.
BEGIN failed--compilation aborted.
CONTEXT:  PL/Perl anonymous code block

Oddly, even if I add utf8 to plperl.oninit, I then get an error about being unable to load the 're' (regex) module. I don't understand how the example you gave does manage to work!

----- Original Message -----
> From: "Alex Hunsaker" <badalex@xxxxxxxxx>
> To: "Toby Corkindale" <toby.corkindale@xxxxxxxxxxxxxxxxxxxx>
> Cc: "pgsql-general" <pgsql-general@xxxxxxxxxxxxxx>
> Sent: Wednesday, 2 July, 2014 9:28:52 AM
> Subject: Re: [GENERAL] pl/perl and recent perl versions - failing to load internal modules
> 
> On Mon, Jun 30, 2014 at 7:47 PM, Toby Corkindale
> <toby.corkindale@xxxxxxxxxxxxxxxxxxxx> wrote:
> > Hi,
> > I've been trying out PostgreSQL 9.3 with pl/perl built against Ubuntu 14.04
> > LTS' Perl 5.18
> > (Sourced from apt.postgresql.org)
> >
> > Maybe I'm doing something wrong, but it appears that plperl has become
> > completely useless, as it can't load any new modules, but modern Perl
> > versions have refactored the language into lots of small modules that are
> > automatically loaded as required. Except they can't be loaded as required.
> >
> > For instance, a fairly simple regex will try to load the modules: utf8,
> > utf8_heavy & re
> > Since it is forbidden from loading anything, it will fail.
> 
> pl/perl should be preloading those modules via "my $a=chr(0x100);
> return $a =~ /\\xa9/i". Do you have some example pl/perl code that is
> broke? It seems to work for me (I only have 5.20 installed, on this
> machine, but I've used 5.18 on 9.2 and 9.3):
> 
> $ perl -v
> 
> This is perl 5, version 20, subversion 0 (v5.20.0) built for
> x86_64-linux-thread-multi
> ...
> 
> $ psql ...
> baroque=> select version();
>                                                  version
> ─────────────────────────────────────────────────────────────────────────────────────────────────────────
>  PostgreSQL 9.3.4 on x86_64-unknown-linux-gnu, compiled by gcc (GCC)
> 4.9.0 20140604 (prerelease), 64-bit
> (1 row)
> 
> Time: 1.033 ms
> 
> baroque=> do $$my $a=chr(0x100); return $a =~ /\\xa9/i$$ language plperl;
> DO
> Time: 1.161 ms
>



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux