From: | "Takahashi, Ryohei" <r(dot)takahashi_2(at)jp(dot)fujitsu(dot)com> |
---|---|
To: | 'Michael Meskes' <meskes(at)postgresql(dot)org>, "Matsumura, Ryo" <matsumura(dot)ryo(at)jp(dot)fujitsu(dot)com>, "'pgsql-hackers(at)postgresql(dot)org'" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | RE: SQL statement PREPARE does not work in ECPG |
Date: | 2019-02-21 05:41:51 |
Message-ID: | EE586BE92A4AFB45B03310C2A0C0565D6D3817D2@G01JPEXMBKW03 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi Meskes-san,
> Ah right, my bad. The workaround should have been:
Thank you. It works.
> As for the PREPARE statement itself, could you try the attached small
> patch please.
It works well for my statement
"EXEC SQL PREPARE test_prep (int) AS SELECT id from test_table where id = $1;".
However, since data type information is not used, it does not works well
for prepare statements which need data type information such as
"EXEC SQL PREPARE test_prep (int, int) AS SELECT $1 + $2;".
It fails with "PostgreSQL error : -400[operator is not unique: unknown + unknown on line 20]".
(Of course, "EXEC SQL PREPARE test_prep AS SELECT $1::int + $2::int;" works well.)
> Could you please also verify for me if this works correctly if you use
> a variable instead of the const? As in:
> EXEC SQL BEGIN DECLARE SECTION;
> int i=2;
> EXEC SQL END DECLARE SECTION;
> ...
> EXEC SQL EXECUTE test_prep (:i);
It also works.
(Actually, I wrote "EXEC SQL EXECUTE test_prep (:i) INTO :ID;".)
ECPG produced as follows.
============================
ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "test_prep",
ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT,
ECPGt_int,&(ID),(long)1,(long)1,sizeof(int),
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
============================
Regards,
Ryohei Takahashi
From | Date | Subject | |
---|---|---|---|
Next Message | Ideriha, Takeshi | 2019-02-21 05:41:56 | RE: Protect syscache from bloating with negative cache entries |
Previous Message | Thomas Munro | 2019-02-21 05:02:04 | Vectors instead of lists, specialised qsort(), binary_search(), unique() |