@@ -22,9 +22,10 @@ default String getInitSqlScript() {
22
22
"INSERT INTO Bar (id, valueColumn) VALUES (0, 0);" ,
23
23
"INSERT INTO Bar (id, valueColumn) VALUES (1, 0);" ,
24
24
"INSERT INTO Bar (id, valueColumn) VALUES (2, 0);" ,
25
- "INSERT INTO Foo (id, valueColumn, bar_id) VALUES (0, 0, 0);" ,
26
- "INSERT INTO Foo (id, valueColumn, bar_id) VALUES (1, 0, 1);" ,
27
- "INSERT INTO Foo (id, valueColumn, bar_id) VALUES (2, 0, 2);" ,
25
+ "INSERT INTO Foo (id, valueColumn, refer_foo, bar_id) VALUES (0, 0, NULL, 0);" ,
26
+ "INSERT INTO Foo (id, valueColumn, refer_foo, bar_id) VALUES (1, 0, 0, 1);" ,
27
+ "INSERT INTO Foo (id, valueColumn, refer_foo, bar_id) VALUES (2, 0, 1, 2);" ,
28
+ "UPDATE Foo SET valueColumn = 2 WHERE id = 2;" ,
28
29
"INSERT INTO Abc (id, valueColumn, foo_id) VALUES (0, 0, 0);" ,
29
30
"INSERT INTO Abc (id, valueColumn, foo_id) VALUES (1, 0, 1);" ,
30
31
"INSERT INTO Abc (id, valueColumn, foo_id) VALUES (2, 0, 2);" ,
@@ -39,8 +40,9 @@ default String getInitSqlScript() {
39
40
@ Test
40
41
default void testAccessedFkClean () throws Exception {
41
42
EMSqlScriptRunner .execCommand (getConnection (), "CREATE TABLE Bar(id INT Primary Key, valueColumn INT)" , true );
42
- EMSqlScriptRunner .execCommand (getConnection (), "CREATE TABLE Foo(id INT Primary Key, valueColumn INT, bar_id INT, " +
43
- "CONSTRAINT fk_foo FOREIGN KEY (bar_id) REFERENCES Bar(id) )" , true );
43
+ EMSqlScriptRunner .execCommand (getConnection (), "CREATE TABLE Foo(id INT Primary Key, valueColumn INT, refer_foo INT DEFAULT NULL, bar_id INT, " +
44
+ "CONSTRAINT fk_foo FOREIGN KEY (bar_id) REFERENCES Bar(id)," +
45
+ "CONSTRAINT fk_self_foo FOREIGN KEY (refer_foo) REFERENCES Foo(id) )" , true );
44
46
EMSqlScriptRunner .execCommand (getConnection (), "CREATE TABLE Abc(id INT Primary Key, valueColumn INT, foo_id INT, " +
45
47
"CONSTRAINT fk_abc FOREIGN KEY (foo_id) REFERENCES Foo(id) )" , true );
46
48
EMSqlScriptRunner .execCommand (getConnection (), "CREATE TABLE Xyz(id INT Primary Key, valueColumn INT, abc_id INT, " +
@@ -66,6 +68,10 @@ default void testAccessedFkClean() throws Exception {
66
68
assertEquals (3 , res .seeRows ().size ());
67
69
res = EMSqlScriptRunner .execCommand (getConnection (), "SELECT * FROM Foo;" , true );
68
70
assertEquals (3 , res .seeRows ().size ());
71
+ res = EMSqlScriptRunner .execCommand (getConnection (), "SELECT * FROM Foo WHERE valueColumn = 2;" , true );
72
+ assertEquals (1 , res .seeRows ().size ());
73
+ res = EMSqlScriptRunner .execCommand (getConnection (), "SELECT * FROM Foo WHERE valueColumn = 0;" , true );
74
+ assertEquals (2 , res .seeRows ().size ());
69
75
res = EMSqlScriptRunner .execCommand (getConnection (), "SELECT * FROM Abc;" , true );
70
76
assertEquals (3 , res .seeRows ().size ());
71
77
res = EMSqlScriptRunner .execCommand (getConnection (), "SELECT * FROM Xyz;" , true );
@@ -83,6 +89,10 @@ default void testAccessedFkClean() throws Exception {
83
89
assertEquals (3 , res .seeRows ().size ());
84
90
res = EMSqlScriptRunner .execCommand (getConnection (), "SELECT * FROM Foo;" , true );
85
91
assertEquals (3 , res .seeRows ().size ());
92
+ res = EMSqlScriptRunner .execCommand (getConnection (), "SELECT * FROM Foo WHERE valueColumn = 2;" , true );
93
+ assertEquals (1 , res .seeRows ().size ());
94
+ res = EMSqlScriptRunner .execCommand (getConnection (), "SELECT * FROM Foo WHERE valueColumn = 0;" , true );
95
+ assertEquals (2 , res .seeRows ().size ());
86
96
res = EMSqlScriptRunner .execCommand (getConnection (), "SELECT * FROM Abc;" , true );
87
97
assertEquals (3 , res .seeRows ().size ());
88
98
res = EMSqlScriptRunner .execCommand (getConnection (), "SELECT * FROM Xyz;" , true );
@@ -126,7 +136,7 @@ default void testAccessedFkClean() throws Exception {
126
136
127
137
128
138
//2nd-round test: table is accessed with INSERT
129
- EMSqlScriptRunner .execCommand (getConnection (), "INSERT INTO Foo (id, valueColumn, bar_id) VALUES (3, 0, 0);" , true );
139
+ EMSqlScriptRunner .execCommand (getConnection (), "INSERT INTO Foo (id, valueColumn, refer_foo, bar_id) VALUES (3, 0, 1 , 0);" , true );
130
140
131
141
res = EMSqlScriptRunner .execCommand (getConnection (), "SELECT * FROM Foo;" , true );
132
142
assertEquals (4 , res .seeRows ().size ());
0 commit comments