Re: enhance SPI to support EXECUTE commands

Поиск
Список
Период
Сортировка
От Quan Zongliang
Тема Re: enhance SPI to support EXECUTE commands
Дата
Msg-id 339f2a41-f55f-ae4c-7853-925470aebe0f@postgresdata.com
обсуждение исходный текст
Ответ на Re: enhance SPI to support EXECUTE commands  (Pavel Stehule <pavel.stehule@gmail.com>)
Ответы Re: enhance SPI to support EXECUTE commands  (Pavel Stehule <pavel.stehule@gmail.com>)
Список pgsql-hackers
On 2019/9/5 15:09, Pavel Stehule wrote:
> 
> 
> čt 5. 9. 2019 v 8:39 odesílatel Quan Zongliang 
> <zongliang.quan@postgresdata.com 
> <mailto:zongliang.quan@postgresdata.com>> napsal:
> 
>     Dear hackers,
> 
>     I found that such a statement would get 0 in PL/pgSQL.
> 
>     PREPARE smt_del(int) AS DELETE FROM t1;
>     EXECUTE 'EXECUTE smt_del(100)';
>     GET DIAGNOSTICS j = ROW_COUNT;
> 
>     In fact, this is a problem with SPI, it does not support getting result
>     of the EXECUTE command. I made a little enhancement. Support for the
>     number of rows processed when executing INSERT/UPDATE/DELETE statements
>     dynamically.
> 
> 
> Is there some use case for support this feature?
> 
A user deletes the data in PL/pgSQL using the above method, hoping to do 
more processing according to the number of rows affected, and found that 
each time will get 0.

Sample code:
PREPARE smt_del(int) AS DELETE FROM t1 WHERE c=$1;
EXECUTE 'EXECUTE smt_del(100)';
GET DIAGNOSTICS j = ROW_COUNT;

IF j=1 THEN
   do something
ELSIF j=0 THEN
   do something

Here j is always equal to 0.

Regards

> Regards
> 
> Pavel
> 
> 
>     Regards,
>     Quan Zongliang
> 




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: pg_promote() can cause busy loop
Следующее
От: Pavel Stehule
Дата:
Сообщение: Re: enhance SPI to support EXECUTE commands