Thread: [Fwd: plpgsql and booleans?]

[Fwd: plpgsql and booleans?]

From
Christopher Kings-Lynne
Date:
Hi guys,

When writing a PL/pgSQL trigger function how do you handle the case :

EXECUTE ''UPDATE test_table SET test_col '' || 
quote_literal(NEW.test_col2) || '';'';

where test_col and test_col2 are boolean fields?

The case above gives :
ERROR:  function quote_literal(boolean) does not exist

And without the quote_literal() gives :
ERROR:  operator does not exist: text || boolean

Is there supposed to be a quote_literal() for booleans?

Chris



Re: [Fwd: plpgsql and booleans?]

From
Tom Lane
Date:
Christopher Kings-Lynne <chriskl@familyhealth.com.au> writes:
> When writing a PL/pgSQL trigger function how do you handle the case :

> EXECUTE ''UPDATE test_table SET test_col '' || 
> quote_literal(NEW.test_col2) || '';'';

Seems it'd be easier without EXECUTE:
UPDATE test_table SET test_col = NEW.test_col2;
        regards, tom lane


Re: [Fwd: plpgsql and booleans?]

From
Christopher Kings-Lynne
Date:
>>EXECUTE ''UPDATE test_table SET test_col '' || 
>>quote_literal(NEW.test_col2) || '';'';
> 
> 
> Seems it'd be easier without EXECUTE:
> 
>     UPDATE test_table SET test_col = NEW.test_col2;

Actually, yes you're right - we don't need EXECUTE in our case. 
However, it still doesn't answer the question of how you use 
quote_literal on a boolean value?

Chris