comparison PostgreSQL/Plugins/PostgreSQLIndex.cpp @ 434:23c7af6f671a pg-transactions

DeleteResource does not need the RemainingAncestor table anymore
author Alain Mazy <am@osimis.io>
date Wed, 13 Dec 2023 16:52:06 +0100
parents 5964ce6385a5
children 326f8304daa1
comparison
equal deleted inserted replaced
433:5964ce6385a5 434:23c7af6f671a
537 statement.Execute(); 537 statement.Execute();
538 } 538 }
539 539
540 } 540 }
541 541
542 void PostgreSQLIndex::DeleteResource(IDatabaseBackendOutput& output,
543 DatabaseManager& manager,
544 int64_t id)
545 {
546 ClearDeletedFiles(manager);
547 ClearDeletedResources(manager);
548
549 DatabaseManager::CachedStatement statement(
550 STATEMENT_FROM_HERE, manager,
551 "SELECT * FROM DeleteResource(${id})");
552
553 statement.SetParameterType("id", ValueType_Integer64);
554
555 Dictionary args;
556 args.SetIntegerValue("id", id);
557
558 statement.Execute(args);
559
560 if (statement.IsDone() ||
561 statement.GetResultFieldsCount() != 2)
562 {
563 throw Orthanc::OrthancException(Orthanc::ErrorCode_Database);
564 }
565
566 statement.SetResultFieldType(0, ValueType_Integer64);
567 statement.SetResultFieldType(1, ValueType_Utf8String);
568
569 if (!statement.IsNull(0))
570 {
571 output.SignalRemainingAncestor(
572 statement.ReadString(1),
573 static_cast<OrthancPluginResourceType>(statement.ReadInteger32(0)));
574 }
575
576 SignalDeletedFiles(output, manager);
577 SignalDeletedResources(output, manager);
578
579 }
580
542 581
543 582
544 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 583 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1
545 void PostgreSQLIndex::CreateInstance(OrthancPluginCreateInstanceResult& result, 584 void PostgreSQLIndex::CreateInstance(OrthancPluginCreateInstanceResult& result,
546 DatabaseManager& manager, 585 DatabaseManager& manager,