1
1
package net .sf .jsqlparser .statement .insert ;
2
2
3
3
import java .io .StringReader ;
4
-
5
4
import net .sf .jsqlparser .JSQLParserException ;
6
5
import net .sf .jsqlparser .expression .DoubleValue ;
7
6
import net .sf .jsqlparser .expression .JdbcParameter ;
12
11
import net .sf .jsqlparser .schema .Column ;
13
12
import net .sf .jsqlparser .schema .Table ;
14
13
import net .sf .jsqlparser .statement .select .PlainSelect ;
15
-
16
14
import static net .sf .jsqlparser .test .TestUtils .assertSqlCanBeParsedAndDeparsed ;
17
15
import static org .junit .Assert .*;
18
-
19
16
import org .junit .Test ;
20
17
21
18
public class InsertTest {
@@ -83,7 +80,7 @@ public void testInsertFromSelect() throws JSQLParserException {
83
80
String statementToString = "INSERT INTO mytable (col1, col2, col3) SELECT * FROM mytable2" ;
84
81
assertEquals (statementToString , "" + insert );
85
82
}
86
-
83
+
87
84
@ Test
88
85
public void testInsertFromSet () throws JSQLParserException {
89
86
String statement = "INSERT INTO mytable SET col1 = 12, col2 = name1 * name2" ;
@@ -97,7 +94,7 @@ public void testInsertFromSet() throws JSQLParserException {
97
94
assertEquals ("name1 * name2" , insert .getSetExpressionList ().get (1 ).toString ());
98
95
assertEquals (statement , "" + insert );
99
96
}
100
-
97
+
101
98
@ Test
102
99
public void testInsertValuesWithDuplicateElimination () throws JSQLParserException {
103
100
String statement = "INSERT INTO TEST (ID, COUNTER) VALUES (123, 0) "
@@ -121,7 +118,7 @@ public void testInsertValuesWithDuplicateElimination() throws JSQLParserExceptio
121
118
assertTrue (insert .isUseDuplicate ());
122
119
assertEquals (statement , "" + insert );
123
120
}
124
-
121
+
125
122
@ Test
126
123
public void testInsertFromSetWithDuplicateElimination () throws JSQLParserException {
127
124
String statement = "INSERT INTO mytable SET col1 = 122 "
@@ -238,7 +235,7 @@ public void testModifierPriority3() throws JSQLParserException {
238
235
public void testIssue223 () throws JSQLParserException {
239
236
assertSqlCanBeParsedAndDeparsed ("INSERT INTO user VALUES (2001, '\\ 'Clark\\ '', 'Kent')" );
240
237
}
241
-
238
+
242
239
@ Test
243
240
public void testKeywordPrecisionIssue363 () throws JSQLParserException {
244
241
assertSqlCanBeParsedAndDeparsed ("INSERT INTO test (user_id, precision) VALUES (1, '111')" );
@@ -248,31 +245,36 @@ public void testKeywordPrecisionIssue363() throws JSQLParserException {
248
245
public void testWithDeparsingIssue406 () throws JSQLParserException {
249
246
assertSqlCanBeParsedAndDeparsed ("insert into mytab3 (a,b,c) select a,b,c from mytab where exists(with t as (select * from mytab2) select * from t)" , true );
250
247
}
251
-
248
+
252
249
@ Test
253
250
public void testInsertSetInDeparsing () throws JSQLParserException {
254
251
assertSqlCanBeParsedAndDeparsed ("INSERT INTO mytable SET col1 = 12, col2 = name1 * name2" );
255
252
}
256
-
253
+
257
254
@ Test
258
255
public void testInsertValuesWithDuplicateEliminationInDeparsing () throws JSQLParserException {
259
256
assertSqlCanBeParsedAndDeparsed ("INSERT INTO TEST (ID, COUNTER) VALUES (123, 0) "
260
257
+ "ON DUPLICATE KEY UPDATE COUNTER = COUNTER + 1" );
261
258
}
262
-
259
+
263
260
@ Test
264
261
public void testInsertSetWithDuplicateEliminationInDeparsing () throws JSQLParserException {
265
262
assertSqlCanBeParsedAndDeparsed ("INSERT INTO mytable SET col1 = 122 "
266
263
+ "ON DUPLICATE KEY UPDATE col2 = col2 + 1, col3 = 'saint'" );
267
264
}
268
-
265
+
269
266
@ Test
270
267
public void testInsertTableWithAliasIssue526 () throws JSQLParserException {
271
268
assertSqlCanBeParsedAndDeparsed ("INSERT INTO account t (name, addr, phone) SELECT * FROM user" );
272
269
}
273
-
270
+
274
271
@ Test
275
272
public void testInsertKeyWordEnableIssue592 () throws JSQLParserException {
276
273
assertSqlCanBeParsedAndDeparsed ("INSERT INTO T_USER (ID, EMAIL_VALIDATE, ENABLE, PASSWORD) VALUES (?, ?, ?, ?)" );
277
274
}
275
+
276
+ @ Test
277
+ public void testWithAtFront () throws JSQLParserException {
278
+ assertSqlCanBeParsedAndDeparsed ("WITH foo AS ( SELECT attr FROM bar ) INSERT INTO lalelu (attr) SELECT attr FROM foo" );
279
+ }
278
280
}
0 commit comments