bool_plperl transform - Mailing list pgsql-hackers

From Ivan Panchenko
Subject bool_plperl transform
Date
Msg-id 1583013317.881182688@f390.i.mail.ru
Whole thread Raw
Responses Re: bool_plperl transform  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: bool_plperl transform  (Andrew Dunstan <andrew.dunstan@2ndquadrant.com>)
List pgsql-hackers
Hi,
While using PL/Perl I have found that it obtains boolean arguments from Postgres as ‘t’ and ‘f’, which is extremely inconvenient because ‘f’ is not false from the perl viewpoint.
So the problem is how to convert the SQL booleans into Perl style.
 
There are 3 ways to do this:
  1. make plperl automatically convert bools into something acceptable for perl. This looks simple, but probably is not acceptable as it breaks compatibility.
  2. try to make some trick like it is done with arrays, i.e. convert bools into special Perl objects which look like ‘t’ and ‘f’ when treated as text, but are true and false for boolean operations. I am not sure that it is possible and reliable.
  3. make a transform which transforms bool, like it is done with jsonb. This does not break compatibility and is rather straightforward.
So I propose to take the third way and make such transform. This is very simple, a patch is attached.
Also this patch improves the plperl documentation page, which now has nothing said about the transforms.
 
Regards,
Ivan Panchenko
 
 
Attachment

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Broken resetting of subplan hash tables
Next
From: Tom Lane
Date:
Subject: Re: Allowing ALTER TYPE to change storage strategy