11package net .sf .jsqlparser .statement .insert ;
22
33import java .io .StringReader ;
4-
54import net .sf .jsqlparser .JSQLParserException ;
65import net .sf .jsqlparser .expression .DoubleValue ;
76import net .sf .jsqlparser .expression .JdbcParameter ;
1211import net .sf .jsqlparser .schema .Column ;
1312import net .sf .jsqlparser .schema .Table ;
1413import net .sf .jsqlparser .statement .select .PlainSelect ;
15-
1614import static net .sf .jsqlparser .test .TestUtils .assertSqlCanBeParsedAndDeparsed ;
1715import static org .junit .Assert .*;
18-
1916import org .junit .Test ;
2017
2118public class InsertTest {
@@ -83,7 +80,7 @@ public void testInsertFromSelect() throws JSQLParserException {
8380 String statementToString = "INSERT INTO mytable (col1, col2, col3) SELECT * FROM mytable2" ;
8481 assertEquals (statementToString , "" + insert );
8582 }
86-
83+
8784 @ Test
8885 public void testInsertFromSet () throws JSQLParserException {
8986 String statement = "INSERT INTO mytable SET col1 = 12, col2 = name1 * name2" ;
@@ -97,7 +94,7 @@ public void testInsertFromSet() throws JSQLParserException {
9794 assertEquals ("name1 * name2" , insert .getSetExpressionList ().get (1 ).toString ());
9895 assertEquals (statement , "" + insert );
9996 }
100-
97+
10198 @ Test
10299 public void testInsertValuesWithDuplicateElimination () throws JSQLParserException {
103100 String statement = "INSERT INTO TEST (ID, COUNTER) VALUES (123, 0) "
@@ -121,7 +118,7 @@ public void testInsertValuesWithDuplicateElimination() throws JSQLParserExceptio
121118 assertTrue (insert .isUseDuplicate ());
122119 assertEquals (statement , "" + insert );
123120 }
124-
121+
125122 @ Test
126123 public void testInsertFromSetWithDuplicateElimination () throws JSQLParserException {
127124 String statement = "INSERT INTO mytable SET col1 = 122 "
@@ -238,7 +235,7 @@ public void testModifierPriority3() throws JSQLParserException {
238235 public void testIssue223 () throws JSQLParserException {
239236 assertSqlCanBeParsedAndDeparsed ("INSERT INTO user VALUES (2001, '\\ 'Clark\\ '', 'Kent')" );
240237 }
241-
238+
242239 @ Test
243240 public void testKeywordPrecisionIssue363 () throws JSQLParserException {
244241 assertSqlCanBeParsedAndDeparsed ("INSERT INTO test (user_id, precision) VALUES (1, '111')" );
@@ -248,31 +245,36 @@ public void testKeywordPrecisionIssue363() throws JSQLParserException {
248245 public void testWithDeparsingIssue406 () throws JSQLParserException {
249246 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 );
250247 }
251-
248+
252249 @ Test
253250 public void testInsertSetInDeparsing () throws JSQLParserException {
254251 assertSqlCanBeParsedAndDeparsed ("INSERT INTO mytable SET col1 = 12, col2 = name1 * name2" );
255252 }
256-
253+
257254 @ Test
258255 public void testInsertValuesWithDuplicateEliminationInDeparsing () throws JSQLParserException {
259256 assertSqlCanBeParsedAndDeparsed ("INSERT INTO TEST (ID, COUNTER) VALUES (123, 0) "
260257 + "ON DUPLICATE KEY UPDATE COUNTER = COUNTER + 1" );
261258 }
262-
259+
263260 @ Test
264261 public void testInsertSetWithDuplicateEliminationInDeparsing () throws JSQLParserException {
265262 assertSqlCanBeParsedAndDeparsed ("INSERT INTO mytable SET col1 = 122 "
266263 + "ON DUPLICATE KEY UPDATE col2 = col2 + 1, col3 = 'saint'" );
267264 }
268-
265+
269266 @ Test
270267 public void testInsertTableWithAliasIssue526 () throws JSQLParserException {
271268 assertSqlCanBeParsedAndDeparsed ("INSERT INTO account t (name, addr, phone) SELECT * FROM user" );
272269 }
273-
270+
274271 @ Test
275272 public void testInsertKeyWordEnableIssue592 () throws JSQLParserException {
276273 assertSqlCanBeParsedAndDeparsed ("INSERT INTO T_USER (ID, EMAIL_VALIDATE, ENABLE, PASSWORD) VALUES (?, ?, ?, ?)" );
277274 }
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+ }
278280}
0 commit comments