Thread: deallocate statement failing

deallocate statement failing

From
rob stone
Date:
Hello,

Version:-


PostgreSQL 12.1 (Debian 12.1-2) on x86_64-pc-linux-gnu, compiled by gcc
(Debian 9.2.1-22) 9.2.1 20200104, 64-bit

Log:-

2020-02-07 15:42:55 AEDT LOG:  statement: SELECT COUNT(*) AS ps_count
FROM pg_prepared_statements WHERE name = 'AIT1581050529'
2020-02-07 15:42:55 AEDT ERROR:  syntax error at or near
"'AIT1581050529'" at character 13
2020-02-07 15:42:55 AEDT STATEMENT:  DEALLOCATE  'AIT1581050529'


The deallocate statement fails. It doesn't matter if it is just
"DEALLOCATE" or "DEALLOCATE PREPARE".
We put in the count statement to make sure the prepared statement still
existed and only issued the "DEALLOCATE" if ps_count is greater then
zero.

Does anybody know why it is giving this syntax error?

TIA,
Rob





Re: deallocate statement failing

From
Adrian Klaver
Date:
On 2/6/20 9:02 PM, rob stone wrote:
> Hello,
> 
> Version:-
> 
> 
> PostgreSQL 12.1 (Debian 12.1-2) on x86_64-pc-linux-gnu, compiled by gcc
> (Debian 9.2.1-22) 9.2.1 20200104, 64-bit
> 
> Log:-
> 
> 2020-02-07 15:42:55 AEDT LOG:  statement: SELECT COUNT(*) AS ps_count
> FROM pg_prepared_statements WHERE name = 'AIT1581050529'
> 2020-02-07 15:42:55 AEDT ERROR:  syntax error at or near
> "'AIT1581050529'" at character 13
> 2020-02-07 15:42:55 AEDT STATEMENT:  DEALLOCATE  'AIT1581050529'
> 

Try:

DEALLOCATE  AIT1581050529;

> 
> The deallocate statement fails. It doesn't matter if it is just
> "DEALLOCATE" or "DEALLOCATE PREPARE".
> We put in the count statement to make sure the prepared statement still
> existed and only issued the "DEALLOCATE" if ps_count is greater then
> zero.
> 
> Does anybody know why it is giving this syntax error?
> 
> TIA,
> Rob
> 
> 
> 
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com



Re: deallocate statement failing

From
Tom Lane
Date:
rob stone <floriparob@gmail.com> writes:
> 2020-02-07 15:42:55 AEDT ERROR:  syntax error at or near
> "'AIT1581050529'" at character 13
> 2020-02-07 15:42:55 AEDT STATEMENT:  DEALLOCATE  'AIT1581050529'

> The deallocate statement fails. It doesn't matter if it is just
> "DEALLOCATE" or "DEALLOCATE PREPARE".

I think you want double quotes not single quotes.  The argument
of DEALLOCATE is an SQL identifier, not a string literal.

            regards, tom lane



Re: deallocate statement failing

From
rob stone
Date:

On Fri, 2020-02-07 at 00:48 -0500, Tom Lane wrote:
> rob stone <floriparob@gmail.com> writes:
> > 2020-02-07 15:42:55 AEDT ERROR:  syntax error at or near
> > "'AIT1581050529'" at character 13
> > 2020-02-07 15:42:55 AEDT STATEMENT:  DEALLOCATE  'AIT1581050529'
> > The deallocate statement fails. It doesn't matter if it is just
> > "DEALLOCATE" or "DEALLOCATE PREPARE".
> 
> I think you want double quotes not single quotes.  The argument
> of DEALLOCATE is an SQL identifier, not a string literal.
> 
>             regards, tom lane


That worked. Thanks.