On Tue, Mar 28, 2023 at 6:40 AM Sebastien Flaesch <sebastien.flae...@4js.com>
wrote:

> ...
>
>
> I think if you're honest with yourself you already know the answer to this
> question. The only real solution is to update the legacy code to use the
> primary key, or (if that's not possible) change the table definition to add
> your own indexed BIGSERIAL value called "ROWID" to the rows and use that
> instead (assuming it will be large enough).
>
> Geoff
>

I have to second this...  Why not, during conversion, create a ROWID
BIGSERIAL column in the PG only version.  (And if not large enough, it's
easy enough to use a NUMERIC field, and a sequence)
Then the code would have access to this field, and when it uses it to
delete/update it should work.

I cringe at the thought of using CTID.  And while it's probably "safe
enough" inside a single transaction.  I doubt that there is much "testing"
of this concept.

Having been through this process (Oracle to PG), I wonder how far you are
into the process...  Because Packages/Package Variables, Global Temp
Tables, and Autonomous Transactions all consumed significant time in our
process, as well as variable/field naming problems...  If you pull off
converting this to PG without changing the source.  Let me know...

Regards, Kirk

Reply via email to