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
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