Re: [HACKERS] function attributes

2010-12-12 Thread Tom Lane
Andrew Dunstan andrew.duns...@pgexperts.com writes: Yesterday I did a bit of work on allowing bytea values to be passed into and out of plperl in binary format, effectively removing the need to escape and de-escape them. (The work can be seen on he plperlargs branch of my development repo

Re: [HACKERS] function attributes

2010-12-12 Thread Andrew Dunstan
On 12/12/2010 10:43 AM, Tom Lane wrote: Tim Bunce seemed to think that this particular problem might be solvable in a completely transparent way, by having byteas convert into Perl objects that have a hook for producing a backwards-compatible text translation. Have you looked into that idea?

Re: [HACKERS] function attributes

2010-12-12 Thread Andrew Dunstan
On 12/12/2010 10:43 AM, Tom Lane wrote: At the moment the behaviour is triggered by a custom setting (plperl.pass_binary_bytea), but this isn't really satisfactory. We could turn it on permanently, but that would break a lot of legacy code. What we really need is a way of marking a function

Re: [HACKERS] function attributes

2010-12-12 Thread Tom Lane
Andrew Dunstan and...@dunslane.net writes: On 12/12/2010 10:43 AM, Tom Lane wrote: At the moment the behaviour is triggered by a custom setting (plperl.pass_binary_bytea), but this isn't really satisfactory. I do not want to go there. But the real issue is that we have no way of specifying

Re: [HACKERS] function attributes

2010-12-11 Thread David E. Wheeler
On Dec 11, 2010, at 2:27 PM, Andrew Dunstan wrote: Yesterday I did a bit of work on allowing bytea values to be passed into and out of plperl in binary format, effectively removing the need to escape and de-escape them. (The work can be seen on he plperlargs branch of my development repo

Re: [HACKERS] function attributes

2010-12-11 Thread Andrew Dunstan
On 12/11/2010 08:01 PM, David E. Wheeler wrote: At the moment the behaviour is triggered by a custom setting (plperl.pass_binary_bytea), but this isn't really satisfactory. We could turn it on permanently, but that would break a lot of legacy code. What we really need is a way of marking

Re: [HACKERS] function attributes

2010-12-11 Thread Robert Haas
On Sat, Dec 11, 2010 at 5:27 PM, Andrew Dunstan andrew.duns...@pgexperts.com wrote: Yesterday I did a bit of work on allowing bytea values to be passed into and out of plperl in binary format, effectively removing the need to escape and de-escape them. (The work can be seen on he plperlargs

Re: [HACKERS] function attributes

2010-12-11 Thread Andrew Dunstan
On 12/11/2010 09:16 PM, Robert Haas wrote: Well, you could set that GUC (plperl.pass_binary_bytea) on a function without changing any syntax on at all. CREATE FUNCTION name (args) ... SET plperl.pass_binary_bytea = true; Oh, good point. I'd forgotten about that. I'll experiment and see if

Re: [HACKERS] function attributes

2010-12-11 Thread Robert Haas
On Sat, Dec 11, 2010 at 9:28 PM, Andrew Dunstan and...@dunslane.net wrote: On 12/11/2010 09:16 PM, Robert Haas wrote: Well, you could set that GUC (plperl.pass_binary_bytea) on a function without changing any syntax on at all. CREATE FUNCTION name (args) ... SET plperl.pass_binary_bytea =

Re: [HACKERS] function attributes

2010-12-11 Thread David E. Wheeler
On Dec 11, 2010, at 5:58 PM, Andrew Dunstan wrote: create function foo() . with ( /attribute/ [, ...] ) Currently allowed attributes are isStrict and isCachable. The mechanism is effectively obsolete right now, but we could use it for what I have in mind quite nicely. Makes