Use of perl modules in plperl ?
I am trying to examine the values of $_TD->{new}. I thought the easiest way
to see what this structure looked like was to use the Dumper functionality.
To do so I need to include the appropriate Perl module, which I would think
would be done like this:
use Data::Dumper qw(Dumper);
But inserting that into the script to create the function, like this:
CREATE OR REPLACE FUNCTION valid_id() RETURNS trigger AS $$
use Data::Dumper qw(Dumper);
if (($_TD->{new}{i} >= 100) || ($_TD->{new}{i} <= 0)) {
......
Returned this error message:
ERROR: Unable to load Data/Dumper.pm into plperl at line 2.
BEGIN failed--compilation aborted at line 2.
CONTEXT: compilation of PL/Perl function "valid_id"
What do I have to do to use Perl modules in plperl function/
BTW this works outside plperl
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper qw(Dumper);
..................
Thanks for the help.
--
"They that would give up essential liberty for temporary safety deserve
neither liberty nor safety."
-- Benjamin Franklin
On Wed, Mar 04, 2020 at 06:03:22AM -0500, stan wrote:
I am trying to examine the values of $_TD->{new}. I thought the easiest way
to see what this structure looked like was to use the Dumper functionality.
To do so I need to include the appropriate Perl module, which I would think
would be done like this:use Data::Dumper qw(Dumper);
But inserting that into the script to create the function, like this:
CREATE OR REPLACE FUNCTION valid_id() RETURNS trigger AS $$
use Data::Dumper qw(Dumper);
if (($_TD->{new}{i} >= 100) || ($_TD->{new}{i} <= 0)) {
......Returned this error message:
ERROR: Unable to load Data/Dumper.pm into plperl at line 2.
BEGIN failed--compilation aborted at line 2.
CONTEXT: compilation of PL/Perl function "valid_id"What do I have to do to use Perl modules in plperl function/
BTW this works outside plperl
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper qw(Dumper);..................
Thanks for the help.
Found plperlu in the docs.
But some syntax help on referencing all the values returned by $_TD->{new}
would be helpful.
--
"They that would give up essential liberty for temporary safety deserve
neither liberty nor safety."
-- Benjamin Franklin
On Wed, Mar 04, 2020 at 06:03:22AM -0500, stan wrote:
I am trying to examine the values of $_TD->{new}. I thought the easiest way
to see what this structure looked like was to use the Dumper functionality.
To do so I need to include the appropriate Perl module, which I would think
would be done like this:
use Data::Dumper qw(Dumper);
plperl is trusted, and you can't use "use" in it.
More on this:
https://www.postgresql.org/docs/current/plperl-trusted.html
You have two options:
1. Switch to pl/PerlU
2. set plperl.on_init to whatever "use" you need, examples:
https://www.postgresql.org/docs/current/plperl-under-the-hood.html#PLPERL-CONFIG
Best regards,
depesz