Mercurial > hg > orthanc-databases
comparison PostgreSQL/Plugins/PostgreSQLIndex.cpp @ 366:cd9521e04249 attach-custom-data
DatabaseBackendAdapterV4: added support for customData + revision when not already done
author | Alain Mazy <am@osimis.io> |
---|---|
date | Thu, 15 Sep 2022 18:12:34 +0200 |
parents | c0c12b3974b2 |
children | f18e46d7dbf8 |
comparison
equal
deleted
inserted
replaced
365:7671fa7f099e | 366:cd9521e04249 |
---|---|
292 if (!db.DoesColumnExist("AttachedFiles", "revision")) | 292 if (!db.DoesColumnExist("AttachedFiles", "revision")) |
293 { | 293 { |
294 t.GetDatabaseTransaction().ExecuteMultiLines("ALTER TABLE AttachedFiles ADD COLUMN revision INTEGER"); | 294 t.GetDatabaseTransaction().ExecuteMultiLines("ALTER TABLE AttachedFiles ADD COLUMN revision INTEGER"); |
295 } | 295 } |
296 | 296 |
297 // new in v 4.X | |
298 if (!db.DoesColumnExist("DeletedFiles", "revision")) | |
299 { | |
300 t.GetDatabaseTransaction().ExecuteMultiLines("ALTER TABLE DeletedFiles ADD COLUMN revision INTEGER"); | |
301 } | |
302 | |
303 if (!db.DoesColumnExist("AttachedFiles", "customData")) | |
304 { | |
305 t.GetDatabaseTransaction().ExecuteMultiLines("ALTER TABLE AttachedFiles ADD COLUMN customData TEXT"); | |
306 } | |
307 | |
308 if (!db.DoesColumnExist("DeletedFiles", "customData")) | |
309 { | |
310 // add the column and modify the trigger | |
311 t.GetDatabaseTransaction().ExecuteMultiLines("ALTER TABLE DeletedFiles ADD COLUMN customData TEXT"); | |
312 | |
313 t.GetDatabaseTransaction().ExecuteMultiLines( | |
314 "DROP TRIGGER AttachedFileDeleted ON AttachedFiles"); | |
315 | |
316 t.GetDatabaseTransaction().ExecuteMultiLines( | |
317 "DROP FUNCTION AttachedFileDeletedFunc"); | |
318 | |
319 t.GetDatabaseTransaction().ExecuteMultiLines( | |
320 "CREATE FUNCTION AttachedFileDeletedFunc() " | |
321 "RETURNS TRIGGER AS $body$" | |
322 "BEGIN" | |
323 " INSERT INTO DeletedFiles VALUES" | |
324 " (old.uuid, old.filetype, old.compressedSize," | |
325 " old.uncompressedSize, old.compressionType," | |
326 " old.uncompressedHash, old.compressedHash," | |
327 " old.revision, old.customData);" | |
328 " RETURN NULL;" | |
329 "END;" | |
330 "$body$ LANGUAGE plpgsql;"); | |
331 | |
332 t.GetDatabaseTransaction().ExecuteMultiLines( | |
333 "CREATE TRIGGER AttachedFileDeleted " | |
334 "AFTER DELETE ON AttachedFiles " | |
335 "FOR EACH ROW " | |
336 "EXECUTE PROCEDURE AttachedFileDeletedFunc();" | |
337 ); | |
338 } | |
339 | |
297 t.Commit(); | 340 t.Commit(); |
298 } | 341 } |
299 } | 342 } |
300 } | 343 } |
301 | 344 |