I know, know.
But ora2pg NOT convert source code in application tier anonymouse block and 
dynamic SQL in server side pl/sql.
This part of application need to be rewrite manually.
 
"no_data_found" for the  plpgsql.extra_errors and plpgsql.extra_warnings will 
be reduce this part of work.
 
Also, in my opinion, it looks strange that there too_many_rows is in  
plpgsql.extra_errors and plpgsql.extra_warnings, but no_data_found NOT.
Why?
 
Thanx
 
Best Regards
Igor Melnikov

 
>Понедельник, 12 декабря 2022, 16:01 +03:00 от Pavel Stehule < 
>pavel.steh...@gmail.com >:
> 
>Hi  
>po 12. 12. 2022 v 13:37 odesílatel Мельников Игорь < melnikov...@mail.ru > 
>napsal:
>>Hi!
>> 
>>This new feature will be in demand for customers who migrate their 
>>largeapplications (having millions of lines of PL/SQL code) from Oracle to 
>>PostreSQL.
>>It will reduce the amount of work on rewriting the code will provide an 
>>opportunity to reduce budgets for the migration project.
>> 
>>Yes, in case the part of the code that handles no_data_found is executed very 
>>often, this will cause performance loss.
>>During the testing phase, this will be discovered and the customer will 
>>rewrite these problem areas of the code - add the phrase STRICT.
>>He will not need to change all the code at the very beginning, as it happens 
>>now, without this feature.
> 
>ora2pg does this work by default. It is great tool and reduces lot of work
> 
>https://ora2pg.darold.net/
> 
>Regards
> 
>Pavel
> 
> 
>> 
>>I am convinced that this functionality will attract even more customers to 
>>PostgreSQL - it will increase the popularity of the PostgeSQL DBMS.
>> 
>>Thank you!
>> 
>>Best Regards
>>Igor Melnikov
>>
>>  
>>>Понедельник, 12 декабря 2022, 15:23 +03:00 от Pavel Stehule < 
>>>pavel.steh...@gmail.com >:
>>> 
>>>   
>>>čt  8. 12. 2022 v 12:29 odesílatel Sergey Shinderuk < 
>>>s.shinde...@postgrespro.ru > napsal: 
>>>>Hello,
>>>>
>>>>I propose to add a new value "no_data_found" for the
>>>>plpgsql.extra_errors and plpgsql.extra_warnings parameters [1].
>>>>
>>>>With plpgsql.extra_errors=no_data_found SELECT INTO raises no_data_found
>>>>exception when the result set is empty. With
>>>>plpgsql.extra_errors=too_many_rows,no_data_found SELECT INTO behaves
>>>>like SELECT INTO STRICT [2]. This could simplify migration from PL/SQL
>>>>and may be just more convenient.
>>>>
>>>>One potential downside is that plpgsql.extra_errors=no_data_found could
>>>>break existing functions expecting to get null or checking IF found
>>>>explicitly. This is also true for the too_many_rows exception, but
>>>>arguably it's a programmer error, while no_data_found switches to a
>>>>different convention for handling (or not handling) an empty result with
>>>>SELECT INTO.
>>>>
>>>>Otherwise the patch is straightforward.
>>>>
>>>>What do you think?
>>> 
>>>I am not against it. It makes sense.
>>> 
>>>I don't like the idea about possible replacement of INTO STRICT by INTO + 
>>>extra warnings.
>>> 
>>>Handling exceptions is significantly more expensive than in Oracle, and 
>>>using INTO without STRICT with the next test IF NOT FOUND THEN can save one 
>>>safepoint and one handling an exception. It should be mentioned in the 
>>>documentation. Using this very common Oracle's pattern can have a very 
>>>negative impact on performance in Postgres. If somebody does port from 
>>>Oracle, and wants compatible behavior then he should use INTO STRICT. I 
>>>think it is counterproductive to hide syntax differences when there is a 
>>>significant difference in performance (and will be).
>>> 
>>>Regards
>>> 
>>>Pavel
>>> 
>>> 
>>>    
>>>>--
>>>>Sergey Shinderuk                 https://postgrespro.com/
>>>>
>>>>
>>>>[1]
>>>>https://www.postgresql.org/docs/devel/plpgsql-development-tips.html#PLPGSQL-EXTRA-CHECKS
>>>>[2]
>>>>https://www.postgresql.org/docs/devel/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-ONEROW
>>>> 
>> 
>> 
>>С уважением,
>>Мельников Игорь
>>melnikov...@mail.ru
>>  
 
 
С уважением,
Мельников Игорь
melnikov...@mail.ru
 

Reply via email to