On 2/2/21 4:12 AM, Andrus wrote:
Hi!


So?  What is your point?
Somebody created a large object of size 0.

report table has bytea column. It looks likeĀ  psqlodbc driver adds ::lo castĀ  when inserting binary data:

https://github.com/hlinnaka/psqlodbc/blob/master/convert.c#L4564

and this adds row to pg_largeobject_metadata table. >
Why it adds cast to lo type ? This type does not exist in Postgres server and causes server error.

The comment for the code snippet you linked to is:

"/*
  * the oid of the large object -- just put that in for the
  * parameter marker -- the data has already been sent to
  * the large object
*/"

So at that point the deed has been done.

The questions to ask:

1) Why the driver thinks it is being passed a large object in the first place?

2) Have there been any recent changes to code that passes through the ODBC driver that would account for 1)?

3) To help with 2), where is 'INSERT INTO report ( ... ) values (.. , '200936767'::lo, ... )" coming from?

My suspicion is that it is user initiated change. If it is not and you suspect the ODBC driver then I would suggest bringing it up on the -odbc list:

https://www.postgresql.org/list/pgsql-odbc/



Andrus.




--
Adrian Klaver
adrian.kla...@aklaver.com


Reply via email to