This page isn't relevant to the discussion at hand as it doesn't have anything 
to do with large objects.  Whether it should would be a different complaint.

Thanks for pointing this out. I picked the wrong page.



When deleting a row that references (contains) a large object, I think that
most users expect the DBMS to take care of the, now unreferenced, BLOB.

On what grounds?  To me this looks just like any other foreign key situation 
and removing FK rows does not impact the PK.  What would lead one to think 
large objects behave differently?

OK, thinking of a LOB as a PK makes sense. It’s just that as a JDBC user, it’s 
not clear that users must clean up unreferenced items. For example, 
java.sql.Blob has no id attribute which one could use to do this. On the other 
hand, maybe the JDBC driver should call lo_unlink if a row with a LOB gets 
deleted? I have to admit, that I do not yet have fully understood all 
implications in this matter.

Admittedly, that is not the best place.  Perhaps the introductory chapter
in https://www.postgresql.org/docs/current/lo-intro.html would be a good
place to mention that there is no referential integrity to large objects.

Yes, that could help. After reading through your comments and the documentation 
again, I’m not sure whether my request is on or off topic. I would understand 
if you decided against extending the docs.


Kind regards
Oliver Marienfeld

Reply via email to