Thread: CREATE EXTENSION to load the language into the database
Hello team,
We are getting below issue while creating a function in Potsgres 11.2
nagios=# create or replace function diskf (filesystem text, warn int, err int) returns text as $BODY$
nagios$# use warnings;
nagios$# use strict;
nagios$# my $fs = $_[0];
nagios$# my $w = $_[1];
nagios$# my $e = $_[2];
nagios$# my $r = "WARNING";
nagios$# my $output = `df -kP $fs`;
nagios$# $output =~ /.*\s+(\d+)%.*/;
nagios$# $output = $1;
nagios$# if ($output > $w)
nagios$# { $r = "ERROR" if $output > $e;}
nagios$# else { $r = "OK";}
nagios$# return "$r $output";
nagios$# $BODY$ language plperlu;
ERROR: language "plperlu" does not exist
HINT: Use CREATE EXTENSION to load the language into the database.
nagios=# SELECT * FROM pg_language;
lanname | lanowner | lanispl | lanpltrusted | lanplcallfoid | laninline | lanvalidator | lanacl
----------+----------+---------+--------------+---------------+-----------+--------------+--------
internal | 10 | f | f | 0 | 0 | 2246 |
c | 10 | f | f | 0 | 0 | 2247 |
sql | 10 | f | t | 0 | 0 | 2248 |
plpgsql | 10 | t | t | 13075 | 13076 | 13077 |
(4 rows)
To solve this issue , I am getting the below warnings if creating extensions.
nagios=# CREATE EXTENSION plperl;
ERROR: could not open extension control file "/usr/local/share/postgresql/extension/plperl.control": No such file or directory
nagios=# CREATE LANGUAGE plperlu;
ERROR: could not load library "/usr/local/lib/postgresql/plperl.so": Error loading shared library libperl.so.5.20: No such file or directory (needed by /usr/local/lib/postgresql/plperl.so)
nagios=# CREATE LANGUAGE plperlu;
ERROR: could not load library "/usr/local/lib/postgresql/plperl.so": Error loading shared library libperl.so.5.20: No such file or directory (needed by /usr/local/lib/postgresql/plperl.so)
nagios=#
Regards,
Dault
On 5/3/19 8:56 AM, Daulat Ram wrote: > Hello team, > > We are getting below issue while creating a function in Potsgres 11.2 > > nagios=# create or replace function diskf (filesystem text, warn int, > err int) returns text as $BODY$ > > nagios$# use warnings; > > nagios$# use strict; > > nagios$# my $fs = $_[0]; > > nagios$# my $w = $_[1]; > > nagios$# my $e = $_[2]; > > nagios$# my $r = "WARNING"; > > nagios$# my $output = `df -kP $fs`; > > nagios$# $output =~ /.*\s+(\d+)%.*/; > > nagios$# $output = $1; > > nagios$# if ($output > $w) > > nagios$# { $r = "ERROR" if $output > $e;} > > nagios$# else { $r = "OK";} > > nagios$# return "$r $output"; > > nagios$# $BODY$ language plperlu; > > ERROR: language "plperlu" does not exist > > HINT: Use CREATE EXTENSION to load the language into the database. > > nagios=# SELECT * FROM pg_language; > > lanname | lanowner | lanispl | lanpltrusted | lanplcallfoid | laninline > | lanvalidator | lanacl > > ----------+----------+---------+--------------+---------------+-----------+--------------+-------- > > internal | 10 | f | f | 0 | 0 > | 2246 | > > c | 10 | f | f | 0 | 0 > | 2247 | > > sql | 10 | f | t | 0 | 0 > | 2248 | > > plpgsql | 10 | t | t | 13075 | 13076 > | 13077 | > > (4 rows) > > To solve this issue , I am getting the below warnings if creating > extensions. > > nagios=# CREATE EXTENSION plperl; > > ERROR: could not open extension control file > "/usr/local/share/postgresql/extension/plperl.control": No such file or > directory > > nagios=# CREATE LANGUAGE plperlu; > > ERROR: could not load library "/usr/local/lib/postgresql/plperl.so": > Error loading shared library libperl.so.5.20: No such file or directory > (needed by /usr/local/lib/postgresql/plperl.so) > > nagios=# CREATE LANGUAGE plperlu; > > ERROR: could not load library "/usr/local/lib/postgresql/plperl.so": > Error loading shared library libperl.so.5.20: No such file or directory > (needed by /usr/local/lib/postgresql/plperl.so) The plperl(u) extension has not been added to the Postgres installation. You need to do that. To help you with that we need to know: What OS(and version) are you using? How did you install Postgres? > > nagios=# > > Regards, > > Dault > -- Adrian Klaver adrian.klaver@aklaver.com
Hi Adrian, Please find the requested details. What OS(and version) are you using? Ans: bash-4.4$ cat /etc/os-release NAME="Alpine Linux" ID=alpine VERSION_ID=3.9.2 PRETTY_NAME="Alpine Linux v3.9" HOME_URL="https://alpinelinux.org/" BUG_REPORT_URL="https://bugs.alpinelinux.org/" bash-4.4$ bash-4.4$ uname -a Linux psql_primary_kbcn 3.10.0-514.16.1.el7.x86_64 #1 SMP Wed Apr 12 15:04:24 UTC 2017 x86_64 Linux bash-4.4$ How did you install Postgres? Ans: We did installation via customized docker image provided by our dev ops team. Regards, Daulat -----Original Message----- From: Adrian Klaver <adrian.klaver@aklaver.com> Sent: Friday, May 3, 2019 10:21 PM To: Daulat Ram <Daulat.Ram@exponential.com>; pgsql-general@lists.postgresql.org Subject: Re: CREATE EXTENSION to load the language into the database On 5/3/19 8:56 AM, Daulat Ram wrote: > Hello team, > > We are getting below issue while creating a function in Potsgres 11.2 > > nagios=# create or replace function diskf (filesystem text, warn int, > err int) returns text as $BODY$ > > nagios$# use warnings; > > nagios$# use strict; > > nagios$# my $fs = $_[0]; > > nagios$# my $w = $_[1]; > > nagios$# my $e = $_[2]; > > nagios$# my $r = "WARNING"; > > nagios$# my $output = `df -kP $fs`; > > nagios$# $output =~ /.*\s+(\d+)%.*/; > > nagios$# $output = $1; > > nagios$# if ($output > $w) > > nagios$# { $r = "ERROR" if $output > $e;} > > nagios$# else { $r = "OK";} > > nagios$# return "$r $output"; > > nagios$# $BODY$ language plperlu; > > ERROR: language "plperlu" does not exist > > HINT: Use CREATE EXTENSION to load the language into the database. > > nagios=# SELECT * FROM pg_language; > > lanname | lanowner | lanispl | lanpltrusted | lanplcallfoid | > laninline > | lanvalidator | lanacl > > ----------+----------+---------+--------------+---------------+-----------+--------------+-------- > > internal | 10 | f | f | 0 | > 0 > | 2246 | > > c | 10 | f | f | 0 | > 0 > | 2247 | > > sql | 10 | f | t | 0 | > 0 > | 2248 | > > plpgsql | 10 | t | t | 13075 | > 13076 > | 13077 | > > (4 rows) > > To solve this issue , I am getting the below warnings if creating > extensions. > > nagios=# CREATE EXTENSION plperl; > > ERROR: could not open extension control file > "/usr/local/share/postgresql/extension/plperl.control": No such file > or directory > > nagios=# CREATE LANGUAGE plperlu; > > ERROR: could not load library "/usr/local/lib/postgresql/plperl.so": > Error loading shared library libperl.so.5.20: No such file or > directory (needed by /usr/local/lib/postgresql/plperl.so) > > nagios=# CREATE LANGUAGE plperlu; > > ERROR: could not load library "/usr/local/lib/postgresql/plperl.so": > Error loading shared library libperl.so.5.20: No such file or > directory (needed by /usr/local/lib/postgresql/plperl.so) The plperl(u) extension has not been added to the Postgres installation. You need to do that. To help you with that we need to know: What OS(and version) are you using? How did you install Postgres? > > nagios=# > > Regards, > > Dault > -- Adrian Klaver adrian.klaver@aklaver.com
On 5/3/19 10:24 AM, Daulat Ram wrote: > Hi Adrian, > > Please find the requested details. > > What OS(and version) are you using? > Ans: > bash-4.4$ cat /etc/os-release > NAME="Alpine Linux" > ID=alpine > VERSION_ID=3.9.2 > PRETTY_NAME="Alpine Linux v3.9" > HOME_URL="https://alpinelinux.org/" > BUG_REPORT_URL="https://bugs.alpinelinux.org/" > bash-4.4$ > > > bash-4.4$ uname -a > Linux psql_primary_kbcn 3.10.0-514.16.1.el7.x86_64 #1 SMP Wed Apr 12 15:04:24 UTC 2017 x86_64 Linux > bash-4.4$ > > > How did you install Postgres? > > Ans: > > We did installation via customized docker image provided by our dev ops team. Well in the image they need to make the plperl language available. If they are building from source then it needs to be compiled with: https://www.postgresql.org/docs/11/install-procedure.html --with-perl Build the PL/Perl server-side language. If they are using packages then they will need to include the appropriate package. > > Regards, > Daulat > > > -----Original Message----- > From: Adrian Klaver <adrian.klaver@aklaver.com> > Sent: Friday, May 3, 2019 10:21 PM > To: Daulat Ram <Daulat.Ram@exponential.com>; pgsql-general@lists.postgresql.org > Subject: Re: CREATE EXTENSION to load the language into the database > > On 5/3/19 8:56 AM, Daulat Ram wrote: >> Hello team, >> >> We are getting below issue while creating a function in Potsgres 11.2 >> >> nagios=# create or replace function diskf (filesystem text, warn int, >> err int) returns text as $BODY$ >> >> nagios$# use warnings; >> >> nagios$# use strict; >> >> nagios$# my $fs = $_[0]; >> >> nagios$# my $w = $_[1]; >> >> nagios$# my $e = $_[2]; >> >> nagios$# my $r = "WARNING"; >> >> nagios$# my $output = `df -kP $fs`; >> >> nagios$# $output =~ /.*\s+(\d+)%.*/; >> >> nagios$# $output = $1; >> >> nagios$# if ($output > $w) >> >> nagios$# { $r = "ERROR" if $output > $e;} >> >> nagios$# else { $r = "OK";} >> >> nagios$# return "$r $output"; >> >> nagios$# $BODY$ language plperlu; >> >> ERROR: language "plperlu" does not exist >> >> HINT: Use CREATE EXTENSION to load the language into the database. >> >> nagios=# SELECT * FROM pg_language; >> >> lanname | lanowner | lanispl | lanpltrusted | lanplcallfoid | >> laninline >> | lanvalidator | lanacl >> >> ----------+----------+---------+--------------+---------------+-----------+--------------+-------- >> >> internal | 10 | f | f | 0 | >> 0 >> | 2246 | >> >> c | 10 | f | f | 0 | >> 0 >> | 2247 | >> >> sql | 10 | f | t | 0 | >> 0 >> | 2248 | >> >> plpgsql | 10 | t | t | 13075 | >> 13076 >> | 13077 | >> >> (4 rows) >> >> To solve this issue , I am getting the below warnings if creating >> extensions. >> >> nagios=# CREATE EXTENSION plperl; >> >> ERROR: could not open extension control file >> "/usr/local/share/postgresql/extension/plperl.control": No such file >> or directory >> >> nagios=# CREATE LANGUAGE plperlu; >> >> ERROR: could not load library "/usr/local/lib/postgresql/plperl.so": >> Error loading shared library libperl.so.5.20: No such file or >> directory (needed by /usr/local/lib/postgresql/plperl.so) >> >> nagios=# CREATE LANGUAGE plperlu; >> >> ERROR: could not load library "/usr/local/lib/postgresql/plperl.so": >> Error loading shared library libperl.so.5.20: No such file or >> directory (needed by /usr/local/lib/postgresql/plperl.so) > > The plperl(u) extension has not been added to the Postgres installation. > You need to do that. To help you with that we need to know: > > What OS(and version) are you using? > > How did you install Postgres? > >> >> nagios=# >> >> Regards, >> >> Dault >> > > > -- > Adrian Klaver > adrian.klaver@aklaver.com > -- Adrian Klaver adrian.klaver@aklaver.com