Skip to content

Commit 6e0e8f6

Browse files
authored
Fix IN sql clause error with huge tabular modification (#682)
Signed-off-by: David BRAQUART <[email protected]>
1 parent 8605bbb commit 6e0e8f6

15 files changed

+100
-247
lines changed

src/main/java/org/gridsuite/modification/server/repositories/BatteryCreationRepository.java

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,6 @@ public interface BatteryCreationRepository extends JpaRepository<BatteryCreation
3232
"DELETE FROM battery_creation_entity_reactive_capability_curve_points cp WHERE cp.battery_creation_entity_id IN ?1 ;" +
3333
"DELETE FROM free_property fp WHERE fp.equipment_modification_id IN ?1 ;" +
3434
"DELETE FROM battery_creation WHERE id IN ?1 ;" +
35-
"DELETE FROM tabular_creation_creations WHERE tabular_creation_entity_id = ?2 ;" +
36-
"DELETE FROM modification WHERE id IN ?1 ;" +
3735
"COMMIT;", nativeQuery = true)
38-
void deleteTabularSubModifications(List<UUID> subModificationIds, UUID tabularModificationId);
39-
40-
@Modifying
41-
@Query(value = "BEGIN;" +
42-
"DELETE FROM battery_creation_entity_reactive_capability_curve_points cp WHERE cp.battery_creation_entity_id IN ?1 ;" +
43-
"DELETE FROM free_property fp WHERE fp.equipment_modification_id IN ?1 ;" +
44-
"DELETE FROM battery_creation WHERE id IN ?1 ;" +
45-
"DELETE FROM tabular_creation_creations WHERE tabular_creation_entity_id = ?2 ;" +
46-
"DELETE FROM modification WHERE id IN ?1 ;" +
47-
"DELETE FROM tabular_creation WHERE id = ?2 ;" +
48-
"DELETE FROM modification WHERE id = ?2 ;" +
49-
"COMMIT;", nativeQuery = true)
50-
void deleteTabularModification(List<UUID> subModificationIds, UUID tabularModificationId);
36+
void deleteSomeTabularSubModifications(List<UUID> subModificationIdsPart);
5137
}

src/main/java/org/gridsuite/modification/server/repositories/BatteryModificationRepository.java

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,20 +34,6 @@ public interface BatteryModificationRepository extends JpaRepository<BatteryModi
3434
"DELETE FROM battery_modification_entity_reactive_capability_curve_points cp WHERE cp.battery_modification_entity_id IN ?1 ;" +
3535
"DELETE FROM free_property fp WHERE fp.equipment_modification_id IN ?1 ;" +
3636
"DELETE FROM battery_modification WHERE id IN ?1 ;" +
37-
"DELETE FROM tabular_modification_modifications WHERE tabular_modification_entity_id = ?2 ;" +
38-
"DELETE FROM modification WHERE id IN ?1 ;" +
3937
"COMMIT;", nativeQuery = true)
40-
void deleteTabularSubModifications(List<UUID> subModificationIds, UUID tabularModificationId);
41-
42-
@Modifying
43-
@Query(value = "BEGIN;" +
44-
"DELETE FROM battery_modification_entity_reactive_capability_curve_points cp WHERE cp.battery_modification_entity_id IN ?1 ;" +
45-
"DELETE FROM free_property fp WHERE fp.equipment_modification_id IN ?1 ;" +
46-
"DELETE FROM battery_modification WHERE id IN ?1 ;" +
47-
"DELETE FROM tabular_modification_modifications WHERE tabular_modification_entity_id = ?2 ;" +
48-
"DELETE FROM modification WHERE id IN ?1 ;" +
49-
"DELETE FROM tabular_modification WHERE id = ?2 ;" +
50-
"DELETE FROM modification WHERE id = ?2 ;" +
51-
"COMMIT;", nativeQuery = true)
52-
void deleteTabularModification(List<UUID> subModificationIds, UUID tabularModificationId);
38+
void deleteSomeTabularSubModifications(List<UUID> subModificationIdsPart);
5339
}

src/main/java/org/gridsuite/modification/server/repositories/GeneratorCreationRepository.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,22 @@ public interface GeneratorCreationRepository extends JpaRepository<GeneratorCrea
3232
"DELETE FROM generator_creation_entity_reactive_capability_curve_points cp WHERE cp.generator_creation_entity_id IN ?1 ;" +
3333
"DELETE FROM free_property fp WHERE fp.equipment_modification_id IN ?1 ;" +
3434
"DELETE FROM generator_creation WHERE id IN ?1 ;" +
35-
"DELETE FROM tabular_creation_creations WHERE tabular_creation_entity_id = ?2 ;" +
36-
"DELETE FROM modification WHERE id IN ?1 ;" +
3735
"COMMIT;", nativeQuery = true)
38-
void deleteTabularSubModifications(List<UUID> subModificationIds, UUID tabularModificationId);
36+
void deleteSomeTabularSubModifications(List<UUID> subModificationIdsPart);
3937

4038
@Modifying
4139
@Query(value = "BEGIN;" +
42-
"DELETE FROM generator_creation_entity_reactive_capability_curve_points cp WHERE cp.generator_creation_entity_id IN ?1 ;" +
43-
"DELETE FROM free_property fp WHERE fp.equipment_modification_id IN ?1 ;" +
44-
"DELETE FROM generator_creation WHERE id IN ?1 ;" +
45-
"DELETE FROM tabular_creation_creations WHERE tabular_creation_entity_id = ?2 ;" +
46-
"DELETE FROM modification WHERE id IN ?1 ;" +
47-
"DELETE FROM tabular_creation WHERE id = ?2 ;" +
48-
"DELETE FROM modification WHERE id = ?2 ;" +
40+
"DELETE FROM tabular_creation_creations WHERE tabular_creation_entity_id = ?1 ;" +
41+
"DELETE FROM modification WHERE id IN ?2 ;" +
42+
"COMMIT;", nativeQuery = true)
43+
// This function is generic and can work on any creation
44+
void deleteTabularCreationCreations(UUID tabularModificationId, List<UUID> subModificationIds);
45+
46+
@Modifying
47+
@Query(value = "BEGIN;" +
48+
"DELETE FROM tabular_creation WHERE id = ?1 ;" +
49+
"DELETE FROM modification WHERE id = ?1 ;" +
4950
"COMMIT;", nativeQuery = true)
50-
void deleteTabularModification(List<UUID> subModificationIds, UUID tabularModificationId);
51+
// This function is generic and can work on any creation
52+
void deleteTabularCreationItself(UUID tabularModificationId);
5153
}

src/main/java/org/gridsuite/modification/server/repositories/GeneratorModificationRepository.java

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,20 +34,6 @@ public interface GeneratorModificationRepository extends JpaRepository<Generator
3434
"DELETE FROM generator_modification_entity_reactive_capability_curve_points cp WHERE cp.generator_modification_entity_id IN ?1 ;" +
3535
"DELETE FROM free_property fp WHERE fp.equipment_modification_id IN ?1 ;" +
3636
"DELETE FROM generator_modification WHERE id IN ?1 ;" +
37-
"DELETE FROM tabular_modification_modifications WHERE tabular_modification_entity_id = ?2 ;" +
38-
"DELETE FROM modification WHERE id IN ?1 ;" +
3937
"COMMIT;", nativeQuery = true)
40-
void deleteTabularSubModifications(List<UUID> subModificationIds, UUID tabularModificationId);
41-
42-
@Modifying
43-
@Query(value = "BEGIN;" +
44-
"DELETE FROM generator_modification_entity_reactive_capability_curve_points cp WHERE cp.generator_modification_entity_id IN ?1 ;" +
45-
"DELETE FROM free_property fp WHERE fp.equipment_modification_id IN ?1 ;" +
46-
"DELETE FROM generator_modification WHERE id IN ?1 ;" +
47-
"DELETE FROM tabular_modification_modifications WHERE tabular_modification_entity_id = ?2 ;" +
48-
"DELETE FROM modification WHERE id IN ?1 ;" +
49-
"DELETE FROM tabular_modification WHERE id = ?2 ;" +
50-
"DELETE FROM modification WHERE id = ?2 ;" +
51-
"COMMIT;", nativeQuery = true)
52-
void deleteTabularModification(List<UUID> subModificationIds, UUID tabularModificationId);
38+
void deleteSomeTabularSubModifications(List<UUID> subModificationIdsPart);
5339
}

src/main/java/org/gridsuite/modification/server/repositories/LineModificationRepository.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -37,23 +37,22 @@ public interface LineModificationRepository extends JpaRepository<LineModificati
3737
"DELETE FROM current_limits_modification cl WHERE cl.id IN ?1 ;" +
3838
"DELETE FROM free_property fp WHERE fp.equipment_modification_id IN ?3 ;" +
3939
"DELETE FROM line_modification WHERE id IN ?3 ;" +
40-
"DELETE FROM tabular_modification_modifications WHERE tabular_modification_entity_id = ?4 ;" +
41-
"DELETE FROM modification WHERE id IN ?3 ;" +
4240
"COMMIT;", nativeQuery = true)
43-
void deleteTabularSubModifications(List<UUID> currentLimitsIds, List<UUID> opLimitsGroupsIds, List<UUID> subModificationIds, UUID tabularModificationId);
41+
void deleteSomeTabularSubModifications(List<UUID> currentLimitsIds, List<UUID> opLimitsGroupsIds, List<UUID> subModificationIdsPart);
4442

4543
@Modifying
4644
@Query(value = "BEGIN;" +
47-
"DELETE FROM line_modification_operational_limits_groups lm WHERE lm.branch_id IN ?3 ;" +
48-
"DELETE FROM operational_limits_group_modification ol WHERE ol.uuid IN ?2 ;" +
49-
"DELETE FROM current_temporary_limits_modification cl WHERE cl.id IN ?1 ;" +
50-
"DELETE FROM current_limits_modification cl WHERE cl.id IN ?1 ;" +
51-
"DELETE FROM free_property fp WHERE fp.equipment_modification_id IN ?3 ;" +
52-
"DELETE FROM line_modification WHERE id IN ?3 ;" +
53-
"DELETE FROM tabular_modification_modifications WHERE tabular_modification_entity_id = ?4 ;" +
54-
"DELETE FROM modification WHERE id IN ?3 ;" +
55-
"DELETE FROM tabular_modification WHERE id = ?4 ;" +
56-
"DELETE FROM modification WHERE id = ?4 ;" +
45+
"DELETE FROM tabular_modification_modifications WHERE tabular_modification_entity_id = ?1 ;" +
46+
"DELETE FROM modification WHERE id IN ?2 ;" +
47+
"COMMIT;", nativeQuery = true)
48+
// This function is generic and can work on any modification
49+
void deleteTabularModificationModifications(UUID tabularModificationId, List<UUID> subModificationIds);
50+
51+
@Modifying
52+
@Query(value = "BEGIN;" +
53+
"DELETE FROM tabular_modification WHERE id = ?1 ;" +
54+
"DELETE FROM modification WHERE id = ?1 ;" +
5755
"COMMIT;", nativeQuery = true)
58-
void deleteTabularModification(List<UUID> currentLimitsIds, List<UUID> opLimitsGroupsIds, List<UUID> subModificationIds, UUID tabularModificationId);
56+
// This function is generic and can work on any modification
57+
void deleteTabularModificationItself(UUID tabularModificationId);
5958
}

src/main/java/org/gridsuite/modification/server/repositories/LoadCreationRepository.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,19 +30,6 @@ public interface LoadCreationRepository extends JpaRepository<LoadCreationEntity
3030
@Query(value = "BEGIN;" +
3131
"DELETE FROM free_property fp WHERE fp.equipment_modification_id IN ?1 ;" +
3232
"DELETE FROM load_creation WHERE id IN ?1 ;" +
33-
"DELETE FROM tabular_creation_creations WHERE tabular_creation_entity_id = ?2 ;" +
34-
"DELETE FROM modification WHERE id IN ?1 ;" +
3533
"COMMIT;", nativeQuery = true)
36-
void deleteTabularSubModifications(List<UUID> subModificationIds, UUID tabularModificationId);
37-
38-
@Modifying
39-
@Query(value = "BEGIN;" +
40-
"DELETE FROM free_property fp WHERE fp.equipment_modification_id IN ?1 ;" +
41-
"DELETE FROM load_creation WHERE id IN ?1 ;" +
42-
"DELETE FROM tabular_creation_creations WHERE tabular_creation_entity_id = ?2 ;" +
43-
"DELETE FROM modification WHERE id IN ?1 ;" +
44-
"DELETE FROM tabular_creation WHERE id = ?2 ;" +
45-
"DELETE FROM modification WHERE id = ?2 ;" +
46-
"COMMIT;", nativeQuery = true)
47-
void deleteTabularModification(List<UUID> subModificationIds, UUID tabularModificationId);
34+
void deleteSomeTabularSubModifications(List<UUID> subModificationIdsPart);
4835
}

src/main/java/org/gridsuite/modification/server/repositories/LoadModificationRepository.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,19 +30,6 @@ public interface LoadModificationRepository extends JpaRepository<LoadModificati
3030
@Query(value = "BEGIN;" +
3131
"DELETE FROM free_property fp WHERE fp.equipment_modification_id IN ?1 ;" +
3232
"DELETE FROM load_modification WHERE id IN ?1 ;" +
33-
"DELETE FROM tabular_modification_modifications WHERE tabular_modification_entity_id = ?2 ;" +
34-
"DELETE FROM modification WHERE id IN ?1 ;" +
3533
"COMMIT;", nativeQuery = true)
36-
void deleteTabularSubModifications(List<UUID> subModificationIds, UUID tabularModificationId);
37-
38-
@Modifying
39-
@Query(value = "BEGIN;" +
40-
"DELETE FROM free_property fp WHERE fp.equipment_modification_id IN ?1 ;" +
41-
"DELETE FROM load_modification WHERE id IN ?1 ;" +
42-
"DELETE FROM tabular_modification_modifications WHERE tabular_modification_entity_id = ?2 ;" +
43-
"DELETE FROM modification WHERE id IN ?1 ;" +
44-
"DELETE FROM tabular_modification WHERE id = ?2 ;" +
45-
"DELETE FROM modification WHERE id = ?2 ;" +
46-
"COMMIT;", nativeQuery = true)
47-
void deleteTabularModification(List<UUID> subModificationIds, UUID tabularModificationId);
34+
void deleteSomeTabularSubModifications(List<UUID> subModificationIdsPart);
4835
}

0 commit comments

Comments
 (0)