Re: execute block like Firebird does

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: execute block like Firebird does
Дата
Msg-id d47d90fe-8719-70b6-c151-99fec0dbafd7@aklaver.com
обсуждение исходный текст
Ответ на Re: execute block like Firebird does  (PegoraroF10 <marcos@f10.com.br>)
Ответы Re: execute block like Firebird does  (PegoraroF10 <marcos@f10.com.br>)
Список pgsql-general
On 02/12/2018 05:48 AM, PegoraroF10 wrote:
> We can change all those execute blocks, but it would be a huge work if we
> need to rewrite them all.
> Today, just for a test, I replaced a Firebird execute block to a Postgres
> CTE. OK, worked but I spend 40 minutes and the problem is that we have
> hundreds of these execute blocks and on each one we need to rethink,
> rewrite, retest.
> 
> When we changed all our triggers and procedures from Firebird to PostGres we
> needed only to rewrite "first 1" to "limit 1", "starting with" to "like" as
> examples. So, just a Search and Replace will do solve it.
> 
> And now if PostGres doesn´t have something similar to Execute Block we have
> to change lots of things. As you may know, change a function body to a CTE
> is not so trivial.

I do not see a direct correspondence between Execute Block and anything 
in Postgres. This means one way or another you will be rewriting code.

> 
> Another approach to solve my problem would be a function that receives a
> dynamic SQL, runs it and returns a XML or JSON and on client side I convert
> that XML back to a recordset. Is that possible ?

Why not just return a recordset directly?:

https://www.postgresql.org/docs/10/static/plpgsql-overview.html#PLPGSQL-ARGS-RESULTS

"PL/pgSQL functions can also be declared to return a “set” (or table) of 
any data type that can be returned as a single instance. Such a function 
generates its output by executing RETURN NEXT for each desired element 
of the result set, or by using RETURN QUERY to output the result of 
evaluating a query."

Evaluating what you are trying to do would be helped by a complete 
working example of one of your Execute Blocks.

> 
> 
> 
> --
> Sent from: http://www.postgresql-archive.org/PostgreSQL-general-f1843780.html
> 
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com


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

Предыдущее
От: GALLIANO Nicolas
Дата:
Сообщение: Barman 2.3 errors
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: execute block like Firebird does