![]() |
![]() |
![]() |
GNOME Data Access 4.0 manual | ![]() |
---|
The following limitations apply to PostgreSQL databases accessed via Libgda:
Postgres uses the "Oid" data type to internally store BLOBs, but this type is also used to store other information within the database. Libgda assumes that any column of type "Oid" represents a blob. If this is not the case, then you must cast it to the correct data type within your SQL query (for example as "SELECT oid::varchar FROM...")
As Libgda tries as much as possible to avoid orphaned BLOBs, it assumes that any BLOB Oid is present in at most one column of a table (and if not present, then the BLOB is orphaned); if a same BLOB is present in more than one column of a table, then expect some problems.
BLOB manipulations can only occur within a transaction, so you should start a transaction before any operation on BLOBs, otherwise Libgda will automatically start one
The gda_connection_statement_execute_non_select()'s last_insert_row attribute will return a GdaSet object only if the table has OIDs.
If PostgreSQL was not compiled with the --enable-thread-safety flag, then the database provider will only allow connections to be opened from the thread which initializes Libgda. Otherwise there is no limitation.