[Checkins] SVN: relstorage/branches/postgres_blob_oid/relstorage/adapters/schema.py Support using the trigger from other tables.
Martijn Pieters
mj at zopatista.com
Tue Jun 14 14:30:15 EDT 2011
Log message for revision 121934:
Support using the trigger from other tables.
Now we can use it for temp_blob_chunk too, which means we'll clean up blobs uploaded during tpc_vote but never copied to blob_chunk because tpc_finish was never called.
Changed:
U relstorage/branches/postgres_blob_oid/relstorage/adapters/schema.py
-=-
Modified: relstorage/branches/postgres_blob_oid/relstorage/adapters/schema.py
===================================================================
--- relstorage/branches/postgres_blob_oid/relstorage/adapters/schema.py 2011-06-14 18:07:35 UTC (rev 121933)
+++ relstorage/branches/postgres_blob_oid/relstorage/adapters/schema.py 2011-06-14 18:30:15 UTC (rev 121934)
@@ -401,10 +401,15 @@
-- Version: %s
-- Unlink large object data file after blob_chunck row deletion
DECLARE
+ expect integer;
cnt integer;
BEGIN
+ expect = 1; -- The number of rows where we'll unlink the oid
+ IF (TG_TABLE_NAME != 'blob_chunk') THEN
+ expect = 0; -- Deleting from elsewhere means we expect 0
+ END IF;
SELECT count(*) into cnt FROM blob_chunk WHERE chunk=OLD.chunk;
- IF (cnt = 1) THEN
+ IF (cnt = expect) THEN
-- Last reference to this oid, unlink
PERFORM lo_unlink(OLD.chunk);
END IF;
More information about the checkins
mailing list