Skip to content

Commit 5a31b86

Browse files
committed
Change otherSourceColumnsInCompositeFK from List to Set.
1 parent d219aaf commit 5a31b86

4 files changed

Lines changed: 23 additions & 22 deletions

File tree

core/src/main/kotlin/org/evomaster/core/search/gene/sql/SqlForeignKeyGene.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,11 @@ class SqlForeignKeyGene(
5353
*/
5454
var uniqueIdOfPrimaryKey: Long = -1,
5555
/**
56-
* names of columns that form a composite foreign key
56+
* Names of columns that form a composite foreign key
5757
* together with this one.
58+
* This set does not include the sourceColumn.
5859
*/
59-
val otherSourceColumnsInCompositeFK: List<String> = emptyList()
60+
val otherSourceColumnsInCompositeFK: Set<String> = emptySet()
6061

6162
) : SqlWrapperGene, SimpleGene(sourceColumn) {
6263

core/src/main/kotlin/org/evomaster/core/sql/SqlActionGeneBuilder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ class SqlActionGeneBuilder {
416416
throw IllegalArgumentException("Column $column is not part of foreign key $fk")
417417
}
418418
val targetColumn = fk.targetColumns[indexOfSourceColumn]
419-
val otherSourceColumnsInCompositeFK = fk.sourceColumns.filter { it != column }.map { it.name }
419+
val otherSourceColumnsInCompositeFK = fk.sourceColumns.filter { it != column }.map { it.name }.toSet()
420420
return SqlForeignKeyGene(
421421
sourceColumn = column.name,
422422
uniqueId = id,

core/src/test/kotlin/org/evomaster/core/output/SqlWriterTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ class SqlWriterTest {
3838

3939
val fkUniqueId = 2L
4040
val fkGene1 = SqlForeignKeyGene("fk1", fkUniqueId, targetTableId, "pk1", false,
41-
otherSourceColumnsInCompositeFK = listOf("fk2"), uniqueIdOfPrimaryKey = pkUniqueId)
41+
otherSourceColumnsInCompositeFK = setOf("fk2"), uniqueIdOfPrimaryKey = pkUniqueId)
4242
val fkGene2 = SqlForeignKeyGene("fk2", fkUniqueId, targetTableId, "pk2", false,
43-
otherSourceColumnsInCompositeFK = listOf("fk1"), uniqueIdOfPrimaryKey = pkUniqueId)
43+
otherSourceColumnsInCompositeFK = setOf("fk1"), uniqueIdOfPrimaryKey = pkUniqueId)
4444
val sourceAction = SqlAction(sourceTable, setOf(fkCol1, fkCol2), 101L, listOf(fkGene1, fkGene2))
4545
sourceAction.setLocalId("1")
4646

core/src/test/kotlin/org/evomaster/core/search/gene/sql/SqlForeignKeyGeneTest.kt

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class SqlForeignKeyGeneTest {
3636
val foreignKey = ForeignKey(listOf(fkColumn), targetTableId, listOf(pkColumn))
3737
val sourceTable = Table(sourceTableId, setOf(fkColumn), setOf(foreignKey))
3838
val uniqueId2 = 3L
39-
val fkGene = SqlForeignKeyGene("col_fk", uniqueId2, targetTableId, "col_pk", nullable = false, otherSourceColumnsInCompositeFK = emptyList())
39+
val fkGene = SqlForeignKeyGene("col_fk", uniqueId2, targetTableId, "col_pk", nullable = false, otherSourceColumnsInCompositeFK = emptySet())
4040
val action3 = SqlAction(sourceTable, setOf(fkColumn), uniqueId2, listOf(fkGene))
4141

4242
RestIndividual(
@@ -83,8 +83,8 @@ class SqlForeignKeyGeneTest {
8383

8484
// First row in source table
8585
val uniqueId2 = 3L
86-
val fkGene1 = SqlForeignKeyGene("col_fk1", uniqueId2, targetTableId, "col_pk1", nullable = false, otherSourceColumnsInCompositeFK = listOf("col_fk2"))
87-
val fkGene2 = SqlForeignKeyGene("col_fk2", uniqueId2, targetTableId, "col_pk2", nullable = false, otherSourceColumnsInCompositeFK = listOf("col_fk1"))
86+
val fkGene1 = SqlForeignKeyGene("col_fk1", uniqueId2, targetTableId, "col_pk1", nullable = false, otherSourceColumnsInCompositeFK = setOf("col_fk2"))
87+
val fkGene2 = SqlForeignKeyGene("col_fk2", uniqueId2, targetTableId, "col_pk2", nullable = false, otherSourceColumnsInCompositeFK = setOf("col_fk1"))
8888
val action3 = SqlAction(sourceTable, setOf(fkColumn1, fkColumn2), uniqueId2, listOf(fkGene1, fkGene2))
8989

9090
RestIndividual(
@@ -132,14 +132,14 @@ class SqlForeignKeyGeneTest {
132132

133133
// First row in source table
134134
val uniqueId2_multi = 3L
135-
val fkGene1 = SqlForeignKeyGene("col_fk1", uniqueId2_multi, targetTableId, "col_pk1", nullable = false, otherSourceColumnsInCompositeFK = listOf("col_fk2"))
136-
val fkGene2 = SqlForeignKeyGene("col_fk2", uniqueId2_multi, targetTableId, "col_pk2", nullable = false, otherSourceColumnsInCompositeFK = listOf("col_fk1"))
135+
val fkGene1 = SqlForeignKeyGene("col_fk1", uniqueId2_multi, targetTableId, "col_pk1", nullable = false, otherSourceColumnsInCompositeFK = setOf("col_fk2"))
136+
val fkGene2 = SqlForeignKeyGene("col_fk2", uniqueId2_multi, targetTableId, "col_pk2", nullable = false, otherSourceColumnsInCompositeFK = setOf("col_fk1"))
137137
val action3 = SqlAction(sourceTable, setOf(fkColumn1, fkColumn2), uniqueId2_multi, listOf(fkGene1, fkGene2))
138138

139139
// Second row in source table
140140
val uniqueId3_multi = 4L
141-
val fkGene3 = SqlForeignKeyGene("col_fk1", uniqueId3_multi, targetTableId, "col_pk1", nullable = false, otherSourceColumnsInCompositeFK = listOf("col_fk2"))
142-
val fkGene4 = SqlForeignKeyGene("col_fk2", uniqueId3_multi, targetTableId, "col_pk2", nullable = false, otherSourceColumnsInCompositeFK = listOf("col_fk1"))
141+
val fkGene3 = SqlForeignKeyGene("col_fk1", uniqueId3_multi, targetTableId, "col_pk1", nullable = false, otherSourceColumnsInCompositeFK = setOf("col_fk2"))
142+
val fkGene4 = SqlForeignKeyGene("col_fk2", uniqueId3_multi, targetTableId, "col_pk2", nullable = false, otherSourceColumnsInCompositeFK = setOf("col_fk1"))
143143
val action4 = SqlAction(sourceTable, setOf(fkColumn1, fkColumn2), uniqueId3_multi, listOf(fkGene3, fkGene4))
144144

145145
RestIndividual(
@@ -191,10 +191,10 @@ class SqlForeignKeyGeneTest {
191191

192192
// A single row in source table that points to TWO different rows in target table
193193
val uniqueIdSource = 3L
194-
val fkGene1_1 = SqlForeignKeyGene("fk1_1", uniqueIdSource, targetTableId, "col_pk1", nullable = false, otherSourceColumnsInCompositeFK = listOf("fk1_2"))
195-
val fkGene1_2 = SqlForeignKeyGene("fk1_2", uniqueIdSource, targetTableId, "col_pk2", nullable = false, otherSourceColumnsInCompositeFK = listOf("fk1_1"))
196-
val fkGene2_1 = SqlForeignKeyGene("fk2_1", uniqueIdSource, targetTableId, "col_pk1", nullable = false, otherSourceColumnsInCompositeFK = listOf("fk2_2"))
197-
val fkGene2_2 = SqlForeignKeyGene("fk2_2", uniqueIdSource, targetTableId, "col_pk2", nullable = false, otherSourceColumnsInCompositeFK = listOf("fk2_1"))
194+
val fkGene1_1 = SqlForeignKeyGene("fk1_1", uniqueIdSource, targetTableId, "col_pk1", nullable = false, otherSourceColumnsInCompositeFK = setOf("fk1_2"))
195+
val fkGene1_2 = SqlForeignKeyGene("fk1_2", uniqueIdSource, targetTableId, "col_pk2", nullable = false, otherSourceColumnsInCompositeFK = setOf("fk1_1"))
196+
val fkGene2_1 = SqlForeignKeyGene("fk2_1", uniqueIdSource, targetTableId, "col_pk1", nullable = false, otherSourceColumnsInCompositeFK = setOf("fk2_2"))
197+
val fkGene2_2 = SqlForeignKeyGene("fk2_2", uniqueIdSource, targetTableId, "col_pk2", nullable = false, otherSourceColumnsInCompositeFK = setOf("fk2_1"))
198198

199199
val actionSource = SqlAction(sourceTable, setOf(fk1_1, fk1_2, fk2_1, fk2_2), uniqueIdSource,
200200
listOf(fkGene1_1, fkGene1_2, fkGene2_1, fkGene2_2))
@@ -254,8 +254,8 @@ class SqlForeignKeyGeneTest {
254254
val sourceTable = Table(sourceTableId, setOf(fk1, fk2), setOf(foreignKey1, foreignKey2))
255255

256256
val uniqueIdSource = 3L
257-
val fkGene1 = SqlForeignKeyGene("fk1", uniqueIdSource, targetTableId, "col_pk", nullable = false, otherSourceColumnsInCompositeFK = emptyList())
258-
val fkGene2 = SqlForeignKeyGene("fk2", uniqueIdSource, targetTableId, "col_pk", nullable = false, otherSourceColumnsInCompositeFK = emptyList())
257+
val fkGene1 = SqlForeignKeyGene("fk1", uniqueIdSource, targetTableId, "col_pk", nullable = false, otherSourceColumnsInCompositeFK = emptySet())
258+
val fkGene2 = SqlForeignKeyGene("fk2", uniqueIdSource, targetTableId, "col_pk", nullable = false, otherSourceColumnsInCompositeFK = emptySet())
259259

260260
val actionSource = SqlAction(sourceTable, setOf(fk1, fk2), uniqueIdSource, listOf(fkGene1, fkGene2))
261261

@@ -315,8 +315,8 @@ class SqlForeignKeyGeneTest {
315315

316316
// First row in source table
317317
val uniqueId2 = 3L
318-
val fkGene1 = SqlForeignKeyGene("col_fk1", uniqueId2, targetTableId, "col_pk1", nullable = false, otherSourceColumnsInCompositeFK = listOf("col_fk2"))
319-
val fkGene2 = SqlForeignKeyGene("col_fk2", uniqueId2, targetTableId, "col_pk2", nullable = false, otherSourceColumnsInCompositeFK = listOf("col_fk1"))
318+
val fkGene1 = SqlForeignKeyGene("col_fk1", uniqueId2, targetTableId, "col_pk1", nullable = false, otherSourceColumnsInCompositeFK = setOf("col_fk2"))
319+
val fkGene2 = SqlForeignKeyGene("col_fk2", uniqueId2, targetTableId, "col_pk2", nullable = false, otherSourceColumnsInCompositeFK = setOf("col_fk1"))
320320
val action3 = SqlAction(sourceTable, setOf(fkColumn1, fkColumn2), uniqueId2, listOf(fkGene1, fkGene2))
321321

322322
val previousGenes = listOf(pkGene1_1, pkGene1_2, fkGene1, fkGene2)
@@ -359,8 +359,8 @@ class SqlForeignKeyGeneTest {
359359

360360
// First row in source table
361361
val uniqueId2 = 3L
362-
val fkGene1 = SqlForeignKeyGene("col_fk1", uniqueId2, targetTableId, "col_pk1", nullable = false, otherSourceColumnsInCompositeFK = listOf("col_fk2"))
363-
val fkGene2 = SqlForeignKeyGene("col_fk2", uniqueId2, targetTableId, "col_pk2", nullable = false, otherSourceColumnsInCompositeFK = listOf("col_fk1"))
362+
val fkGene1 = SqlForeignKeyGene("col_fk1", uniqueId2, targetTableId, "col_pk1", nullable = false, otherSourceColumnsInCompositeFK = setOf("col_fk2"))
363+
val fkGene2 = SqlForeignKeyGene("col_fk2", uniqueId2, targetTableId, "col_pk2", nullable = false, otherSourceColumnsInCompositeFK = setOf("col_fk1"))
364364
val action3 = SqlAction(sourceTable, setOf(fkColumn1, fkColumn2), uniqueId2, listOf(fkGene1, fkGene2))
365365

366366
val ind = RestIndividual(

0 commit comments

Comments
 (0)