mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
refactor sql parser & support tableMapping. issue #1432
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
package com.alibaba.druid.bvt.sql;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Created by wenshao on 16/9/25.
|
||||
*/
|
||||
public class MappingTest_createTable extends TestCase {
|
||||
String sql = "create table user (\n" +
|
||||
"source_key int,\n" +
|
||||
"source_value varchar(32),\n" +
|
||||
"primary key(source_key)\n" +
|
||||
");";
|
||||
|
||||
Map<String, String> mapping = Collections.singletonMap("user", "user_01");
|
||||
|
||||
public void test_mapping_createTable() throws Exception {
|
||||
String result = SQLUtils.refactor(null, sql, mapping);
|
||||
assertEquals("CREATE TABLE user_01 (\n" +
|
||||
"\tsource_key int,\n" +
|
||||
"\tsource_value varchar(32),\n" +
|
||||
"\tPRIMARY KEY (source_key)\n" +
|
||||
")", result);
|
||||
}
|
||||
|
||||
public void test_mapping_createTable_mysql() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.MYSQL, sql, mapping);
|
||||
assertEquals("CREATE TABLE user_01 (\n" +
|
||||
"\tsource_key int, \n" +
|
||||
"\tsource_value varchar(32), \n" +
|
||||
"\tPRIMARY KEY (source_key)\n" +
|
||||
")", result);
|
||||
}
|
||||
|
||||
public void test_mapping_createTable_oracle() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.ORACLE, sql, mapping);
|
||||
assertEquals("CREATE TABLE user_01 (\n" +
|
||||
"\tsource_key int,\n" +
|
||||
"\tsource_value varchar(32),\n" +
|
||||
"\tPRIMARY KEY (source_key)\n" +
|
||||
")", result);
|
||||
}
|
||||
|
||||
public void test_mapping_createTable_pg() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.POSTGRESQL, sql, mapping);
|
||||
assertEquals("CREATE TABLE user_01 (\n" +
|
||||
"\tsource_key int,\n" +
|
||||
"\tsource_value varchar(32),\n" +
|
||||
"\tPRIMARY KEY (source_key)\n" +
|
||||
")", result);
|
||||
}
|
||||
|
||||
public void test_mapping_createTable_sqlserver() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.SQL_SERVER, sql, mapping);
|
||||
assertEquals("CREATE TABLE user_01 (\n" +
|
||||
"\tsource_key int,\n" +
|
||||
"\tsource_value varchar(32),\n" +
|
||||
"\tPRIMARY KEY (source_key)\n" +
|
||||
")", result);
|
||||
}
|
||||
|
||||
public void test_mapping_createTable_db2() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.DB2, sql, mapping);
|
||||
assertEquals("CREATE TABLE user_01 (\n" +
|
||||
"\tsource_key int,\n" +
|
||||
"\tsource_value varchar(32),\n" +
|
||||
"\tPRIMARY KEY (source_key)\n" +
|
||||
")", result);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.alibaba.druid.bvt.sql;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Created by wenshao on 16/9/25.
|
||||
*/
|
||||
public class MappingTest_delete extends TestCase {
|
||||
private String sql = "delete from user";
|
||||
Map<String, String> mapping = Collections.singletonMap("user", "user_01");
|
||||
|
||||
public void test_mapping() throws Exception {
|
||||
String result = SQLUtils.refactor(null, sql, mapping);
|
||||
assertEquals("DELETE FROM user_01", result);
|
||||
}
|
||||
|
||||
public void test_mapping_mysql() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.MYSQL, sql, mapping);
|
||||
assertEquals("DELETE FROM user_01", result);
|
||||
}
|
||||
|
||||
public void test_mapping_pg() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.POSTGRESQL, sql, mapping);
|
||||
assertEquals("DELETE FROM user_01", result);
|
||||
}
|
||||
|
||||
public void test_mapping_oracle() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.ORACLE, sql, mapping);
|
||||
assertEquals("DELETE FROM user_01", result);
|
||||
}
|
||||
|
||||
public void test_mapping_sqlserver() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.SQL_SERVER, sql, mapping);
|
||||
assertEquals("DELETE FROM user_01", result);
|
||||
}
|
||||
|
||||
public void test_mapping_db2() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.DB2, sql, mapping);
|
||||
assertEquals("DELETE FROM user_01", result);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.alibaba.druid.bvt.sql;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Created by wenshao on 16/9/25.
|
||||
*/
|
||||
public class MappingTest_insert extends TestCase {
|
||||
private String sql = "insert into user (id, name) values (123, 'abc')";
|
||||
Map<String, String> mapping = Collections.singletonMap("user", "user_01");
|
||||
|
||||
public void test_mapping() throws Exception {
|
||||
String result = SQLUtils.refactor(null, sql, mapping);
|
||||
assertEquals("INSERT INTO user_01 (id, name)\n" +
|
||||
"VALUES (123, 'abc')", result);
|
||||
}
|
||||
|
||||
public void test_mapping_mysql() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.MYSQL, sql, mapping);
|
||||
assertEquals("INSERT INTO user_01 (id, name)\n" +
|
||||
"VALUES (123, 'abc')", result);
|
||||
}
|
||||
|
||||
public void test_mapping_pg() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.POSTGRESQL, sql, mapping);
|
||||
assertEquals("INSERT INTO user_01 (id, name)\n" +
|
||||
"VALUES (123, 'abc')", result);
|
||||
}
|
||||
|
||||
public void test_mapping_oracle() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.ORACLE, sql, mapping);
|
||||
assertEquals("INSERT INTO user_01 (id, name)\n" +
|
||||
"VALUES (123, 'abc')", result);
|
||||
}
|
||||
|
||||
public void test_mapping_sqlserver() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.SQL_SERVER, sql, mapping);
|
||||
assertEquals("INSERT INTO user_01 (id, name)\n" +
|
||||
"VALUES (123, 'abc')", result);
|
||||
}
|
||||
|
||||
public void test_mapping_db2() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.DB2, sql, mapping);
|
||||
assertEquals("INSERT INTO user_01 (id, name)\n" +
|
||||
"VALUES (123, 'abc')", result);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.alibaba.druid.bvt.sql;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Created by wenshao on 16/9/25.
|
||||
*/
|
||||
public class MappingTest_select extends TestCase {
|
||||
String sql = "select * from user";
|
||||
Map<String, String> mapping = Collections.singletonMap("user", "user_01");
|
||||
|
||||
public void test_mapping() throws Exception {
|
||||
String result = SQLUtils.refactor(null, sql, mapping);
|
||||
assertEquals("SELECT *\n" +
|
||||
"FROM user_01", result);
|
||||
}
|
||||
|
||||
public void test_mapping_mysql() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.MYSQL, sql, mapping);
|
||||
assertEquals("SELECT *\n" +
|
||||
"FROM user_01", result);
|
||||
}
|
||||
|
||||
public void test_mapping_pg() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.POSTGRESQL, sql, mapping);
|
||||
assertEquals("SELECT *\n" +
|
||||
"FROM user_01", result);
|
||||
}
|
||||
|
||||
public void test_mapping_oracle() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.ORACLE, sql, mapping);
|
||||
assertEquals("SELECT *\n" +
|
||||
"FROM user_01", result);
|
||||
}
|
||||
|
||||
public void test_mapping_sqlserver() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.SQL_SERVER, sql, mapping);
|
||||
assertEquals("SELECT *\n" +
|
||||
"FROM user_01", result);
|
||||
}
|
||||
|
||||
public void test_mapping_odps() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.ODPS, sql, mapping);
|
||||
assertEquals("SELECT *\n" +
|
||||
"FROM user_01", result);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.alibaba.druid.bvt.sql;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Created by wenshao on 16/9/25.
|
||||
*/
|
||||
public class MappingTest_update extends TestCase {
|
||||
private String sql = "update user set f1 = 1 where id = 3";
|
||||
Map<String, String> mapping = Collections.singletonMap("user", "user_01");
|
||||
|
||||
public void test_mapping() throws Exception {
|
||||
String result = SQLUtils.refactor(null, sql, mapping);
|
||||
assertEquals("UPDATE user_01\n" +
|
||||
"SET f1 = 1\n" +
|
||||
"WHERE id = 3", result);
|
||||
}
|
||||
|
||||
public void test_mapping_mysql() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.MYSQL, sql, mapping);
|
||||
assertEquals("UPDATE user_01\n" +
|
||||
"SET f1 = 1\n" +
|
||||
"WHERE id = 3", result);
|
||||
}
|
||||
|
||||
public void test_mapping_pg() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.POSTGRESQL, sql, mapping);
|
||||
assertEquals("UPDATE user_01\n" +
|
||||
"SET f1 = 1\n" +
|
||||
"WHERE id = 3", result);
|
||||
}
|
||||
|
||||
public void test_mapping_oracle() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.ORACLE, sql, mapping);
|
||||
assertEquals("UPDATE user_01\n" +
|
||||
"SET f1 = 1\n" +
|
||||
"WHERE id = 3", result);
|
||||
}
|
||||
|
||||
public void test_mapping_sqlserver() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.SQL_SERVER, sql, mapping);
|
||||
assertEquals("UPDATE user_01\n" +
|
||||
"SET f1 = 1\n" +
|
||||
"WHERE id = 3", result);
|
||||
}
|
||||
|
||||
public void test_mapping_db2() throws Exception {
|
||||
String result = SQLUtils.refactor(JdbcConstants.DB2, sql, mapping);
|
||||
assertEquals("UPDATE user_01\n" +
|
||||
"SET f1 = 1\n" +
|
||||
"WHERE id = 3", result);
|
||||
}
|
||||
}
|
||||
@@ -59,10 +59,8 @@ public class DB2InsertTest_0 extends DB2Test {
|
||||
// Assert.assertTrue(visitor.getColumns().contains(new Column("mytable", "full_name")));
|
||||
|
||||
String output = SQLUtils.toSQLString(stmt, JdbcConstants.DB2);
|
||||
Assert.assertEquals("INSERT INTO t"
|
||||
+ "\n\t(id, name)"
|
||||
+ "\nVALUES"
|
||||
+ "\n(?, ?), (?, ?), (?, ?)", //
|
||||
Assert.assertEquals("INSERT INTO t (id, name)\n" +
|
||||
"VALUES (?, ?), (?, ?), (?, ?)", //
|
||||
output);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,9 +40,8 @@ public class OracleInsertTest10 extends OracleTest {
|
||||
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
Assert.assertEquals("INSERT INTO departments"//
|
||||
+ "\nVALUES"//
|
||||
+ "\n(280, 'Recreation', 121, 1700)",//
|
||||
Assert.assertEquals("INSERT INTO departments\n" +
|
||||
"VALUES (280, 'Recreation', 121, 1700)",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor();
|
||||
|
||||
@@ -41,8 +41,7 @@ public class OracleInsertTest11 extends OracleTest {
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
Assert.assertEquals("INSERT INTO departments"//
|
||||
+ "\nVALUES"//
|
||||
+ "\n(280, 'Recreation', DEFAULT, 1700)",//
|
||||
+ "\nVALUES (280, 'Recreation', DEFAULT, 1700)",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor();
|
||||
|
||||
@@ -45,8 +45,7 @@ public class OracleInsertTest12 extends OracleTest {
|
||||
Assert.assertEquals("INSERT INTO employees" //
|
||||
+ "\n\t(employee_id, last_name, email, hire_date, job_id" //
|
||||
+ "\n\t, salary, commission_pct)" //
|
||||
+ "\nVALUES" //
|
||||
+ "\n(207, 'Gregory', 'pgregory@example.com', SYSDATE, 'PU_CLERK'" //
|
||||
+ "\nVALUES (207, 'Gregory', 'pgregory@example.com', SYSDATE, 'PU_CLERK'" //
|
||||
+ "\n\t, 1.2E+3, NULL)",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
|
||||
@@ -43,8 +43,7 @@ public class OracleInsertTest15 extends OracleTest {
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
Assert.assertEquals("INSERT INTO employees@remote" //
|
||||
+ "\nVALUES"//
|
||||
+ "\n(8002, 'Juan', 'Fernandez', 'juanf@example.com', NULL"//
|
||||
+ "\nVALUES (8002, 'Juan', 'Fernandez', 'juanf@example.com', NULL"//
|
||||
+ "\n\t, TO_DATE('04-OCT-1992', 'DD-MON-YYYY'), 'SH_CLERK', 3000, NULL, 121"//
|
||||
+ "\n\t, 20)",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
@@ -41,8 +41,7 @@ public class OracleInsertTest16 extends OracleTest {
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
Assert.assertEquals("INSERT INTO departments" //
|
||||
+ "\nVALUES"//
|
||||
+ "\n(departments_seq.NEXTVAL, 'Entertainment', 162, 1400)",//
|
||||
+ "\nVALUES (departments_seq.NEXTVAL, 'Entertainment', 162, 1400)",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor();
|
||||
|
||||
@@ -39,10 +39,8 @@ public class OracleInsertTest17 extends OracleTest {
|
||||
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
Assert.assertEquals("INSERT INTO sys_log"
|
||||
+ "\n\t(ID, EXCEPTION)"
|
||||
+ "\nVALUES"
|
||||
+ "\n(?, ?)",//
|
||||
Assert.assertEquals("INSERT INTO sys_log (ID, EXCEPTION)"
|
||||
+ "\nVALUES (?, ?)",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor();
|
||||
|
||||
@@ -39,10 +39,8 @@ public class OracleInsertTest18 extends OracleTest {
|
||||
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
Assert.assertEquals("INSERT INTO sys_log"
|
||||
+ "\n\t(ID, \"EXCEPTION\")"
|
||||
+ "\nVALUES"
|
||||
+ "\n(?, ?)",//
|
||||
Assert.assertEquals("INSERT INTO sys_log (ID, \"EXCEPTION\")"
|
||||
+ "\nVALUES (?, ?)",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor();
|
||||
|
||||
@@ -42,8 +42,7 @@ public class OracleInsertTest19 extends OracleTest {
|
||||
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
Assert.assertEquals("INSERT INTO TB_DUOBAO_PARTICIPATE_NUMBER"
|
||||
+ "\n\t(PARTICIPATE_NUMBER, PERIOD_ID, PRODUCT_ID, number_index)"
|
||||
Assert.assertEquals("INSERT INTO TB_DUOBAO_PARTICIPATE_NUMBER (PARTICIPATE_NUMBER, PERIOD_ID, PRODUCT_ID, number_index)"
|
||||
+ "\nSELECT ?, ?, ?, ?"
|
||||
+ "\nFROM DUAL"
|
||||
+ "\nUNION ALL"
|
||||
|
||||
@@ -46,10 +46,8 @@ public class PhoenixUpsertTest extends TestCase {
|
||||
// Assert.assertTrue(visitor.getColumns().contains(new Column("mytable", "full_name")));
|
||||
|
||||
String output = SQLUtils.toSQLString(stmt, JdbcConstants.PHOENIX);
|
||||
Assert.assertEquals("UPSERT INTO t_1\n" +
|
||||
"\t(a, b, c)\n" +
|
||||
"VALUES\n" +
|
||||
"(?, ?, ?)", //
|
||||
Assert.assertEquals("UPSERT INTO t_1 (a, b, c)\n" +
|
||||
"VALUES (?, ?, ?)", //
|
||||
output);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,10 +44,8 @@ public class PhoenixUpsertTest_1 extends TestCase {
|
||||
// Assert.assertTrue(visitor.getColumns().contains(new Column("mytable", "full_name")));
|
||||
|
||||
String output = SQLUtils.toSQLString(stmt, JdbcConstants.PHOENIX);
|
||||
Assert.assertEquals("UPSERT INTO t_1\n" +
|
||||
"\t(a BIGINT, b, c)\n" +
|
||||
"VALUES\n" +
|
||||
"(?, ?, ?)", //
|
||||
Assert.assertEquals("UPSERT INTO t_1 (a BIGINT, b, c)\n" +
|
||||
"VALUES (?, ?, ?)", //
|
||||
output);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,10 +44,8 @@ public class PhoenixUpsertTest_2 extends TestCase {
|
||||
// Assert.assertTrue(visitor.getColumns().contains(new Column("mytable", "full_name")));
|
||||
|
||||
String output = SQLUtils.toSQLString(stmt, JdbcConstants.PHOENIX);
|
||||
Assert.assertEquals("UPSERT INTO t_1\n" +
|
||||
"\t(a CHAR(15), b, c)\n" +
|
||||
"VALUES\n" +
|
||||
"(?, ?, ?)", //
|
||||
Assert.assertEquals("UPSERT INTO t_1 (a CHAR(15), b, c)\n" +
|
||||
"VALUES (?, ?, ?)", //
|
||||
output);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,10 +44,8 @@ public class PhoenixUpsertTest_std extends TestCase {
|
||||
// Assert.assertTrue(visitor.getColumns().contains(new Column("mytable", "full_name")));
|
||||
|
||||
String output = SQLUtils.toSQLString(stmt, JdbcConstants.PHOENIX);
|
||||
Assert.assertEquals("UPSERT INTO t_1\n" +
|
||||
"\t(a, b, c)\n" +
|
||||
"VALUES\n" +
|
||||
"(?, ?, ?)", //
|
||||
Assert.assertEquals("UPSERT INTO t_1 (a, b, c)\n" +
|
||||
"VALUES (?, ?, ?)", //
|
||||
output);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,17 +21,13 @@ public class SQLServerIfTest extends TestCase {
|
||||
String sql = "if @is_exists is null begin insert into Inventory_1 (co_id,sku_id,order_lock) values (@0,@1,@2) end else begin insert into Inventory_2 (co_id,sku_id,order_lock) values (@0,@1,@2) end ";
|
||||
String expect = "IF @is_exists IS NULL"//
|
||||
+ "\n\tBEGIN"//
|
||||
+ "\n\t\tINSERT INTO Inventory_1"//
|
||||
+ "\n\t\t\t(co_id, sku_id, order_lock)"//
|
||||
+ "\n\t\tVALUES"//
|
||||
+ "\n\t\t(@0, @1, @2);"//
|
||||
+ "\n\t\tINSERT INTO Inventory_1 (co_id, sku_id, order_lock)"//
|
||||
+ "\n\t\tVALUES (@0, @1, @2);"//
|
||||
+ "\n\tEND"//
|
||||
+ "\nELSE"//
|
||||
+ "\n\tBEGIN"//
|
||||
+ "\n\t\tINSERT INTO Inventory_2"//
|
||||
+ "\n\t\t\t(co_id, sku_id, order_lock)"//
|
||||
+ "\n\t\tVALUES"//
|
||||
+ "\n\t\t(@0, @1, @2);"//
|
||||
+ "\n\t\tINSERT INTO Inventory_2 (co_id, sku_id, order_lock)"//
|
||||
+ "\n\t\tVALUES (@0, @1, @2);"//
|
||||
+ "\n\tEND";
|
||||
|
||||
SQLServerStatementParser parser = new SQLServerStatementParser(sql);
|
||||
|
||||
@@ -28,10 +28,8 @@ public class SQLServerInsertTest extends TestCase {
|
||||
String sql = "INSERT INTO Cities (Location)" + //
|
||||
"VALUES ( CONVERT(Point, '12.3:46.2') );";
|
||||
|
||||
String expect = "INSERT INTO Cities" + //
|
||||
"\n\t(Location)" + //
|
||||
"\nVALUES" + //
|
||||
"\n(CONVERT(Point, '12.3:46.2'))";
|
||||
String expect = "INSERT INTO Cities (Location)" + //
|
||||
"\nVALUES (CONVERT(Point, '12.3:46.2'))";
|
||||
|
||||
SQLServerStatementParser parser = new SQLServerStatementParser(sql);
|
||||
SQLStatement stmt = parser.parseStatementList().get(0);
|
||||
|
||||
@@ -28,10 +28,8 @@ public class SQLServerInsertTest1 extends TestCase {
|
||||
String sql = "INSERT INTO Cities (Location)" +
|
||||
"VALUES ( dbo.CreateNewPoint(x, y) );";
|
||||
|
||||
String expect = "INSERT INTO Cities" + //
|
||||
"\n\t(Location)" + //
|
||||
"\nVALUES" + //
|
||||
"\n(dbo.CreateNewPoint(x, y))";
|
||||
String expect = "INSERT INTO Cities (Location)" + //
|
||||
"\nVALUES (dbo.CreateNewPoint(x, y))";
|
||||
|
||||
SQLServerStatementParser parser = new SQLServerStatementParser(sql);
|
||||
SQLStatement stmt = parser.parseStatementList().get(0);
|
||||
|
||||
@@ -29,10 +29,8 @@ public class SQLServerInsertTest2 extends TestCase {
|
||||
String sql = "INSERT INTO test (name)" + //
|
||||
"VALUES (N'a'), (N'b'), (N'c')";
|
||||
|
||||
String expect = "INSERT INTO test" + //
|
||||
"\n\t(name)" + //
|
||||
"\nVALUES" + //
|
||||
"\n(N'a')," + //
|
||||
String expect = "INSERT INTO test (name)" + //
|
||||
"\nVALUES (N'a')," + //
|
||||
"\n(N'b')," + //
|
||||
"\n(N'c')";
|
||||
|
||||
|
||||
@@ -29,8 +29,7 @@ public class SQLServerInsertTest3 extends TestCase {
|
||||
"VALUES (N'F2', N'Square Feet', GETDATE());;";
|
||||
|
||||
String expect = "INSERT INTO Production.UnitMeasure" + //
|
||||
"\nVALUES" + //
|
||||
"\n(N'F2', N'Square Feet', GETDATE())";
|
||||
"\nVALUES (N'F2', N'Square Feet', GETDATE())";
|
||||
|
||||
SQLServerStatementParser parser = new SQLServerStatementParser(sql);
|
||||
SQLStatement stmt = parser.parseStatementList().get(0);
|
||||
|
||||
@@ -48,9 +48,8 @@ public class SQLServerInsertTest5 extends TestCase {
|
||||
SQLServerSchemaStatVisitor visitor = new SQLServerSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
String formatSql = "INSERT INTO t"//
|
||||
+ "\n\t(a, b)"//
|
||||
+ "\nVALUES" + "\n('a1', 'b1'),"//
|
||||
String formatSql = "INSERT INTO t (a, b)"//
|
||||
+ "\nVALUES ('a1', 'b1'),"//
|
||||
+ "\n('a2', 'b2'),"//
|
||||
+ "\n('a3', 'b3')";
|
||||
Assert.assertEquals(formatSql, SQLUtils.toSQLServerString(insertStmt));
|
||||
@@ -74,10 +73,8 @@ public class SQLServerInsertTest5 extends TestCase {
|
||||
SQLServerSchemaStatVisitor visitor = new SQLServerSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
String formatSql = "INSERT INTO t"//
|
||||
+ "\n\t(a, b)"//
|
||||
+ "\nVALUES"//
|
||||
+ "\n('a1', 'b1'),"//
|
||||
String formatSql = "INSERT INTO t (a, b)"//
|
||||
+ "\nVALUES ('a1', 'b1'),"//
|
||||
+ "\n('a2', 'b2'),"//
|
||||
+ "\n('a3', 'b3'),"//
|
||||
+ "\n('a4', 'b4')";
|
||||
|
||||
@@ -48,10 +48,8 @@ public class SQLServerInsertTest6 extends TestCase {
|
||||
SQLServerSchemaStatVisitor visitor = new SQLServerSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
String formatSql = "INSERT INTO [dbo].[SurveyAnswer]"//
|
||||
+ "\n\t([CustomerId], [QuestionId], [OptionId], [CreateTime], [LastUpdateTime])"//
|
||||
+ "\nVALUES" //
|
||||
+ "\n(@0, @1, @2, @3, @4)";
|
||||
String formatSql = "INSERT INTO [dbo].[SurveyAnswer] ([CustomerId], [QuestionId], [OptionId], [CreateTime], [LastUpdateTime])"//
|
||||
+ "\nVALUES (@0, @1, @2, @3, @4)";
|
||||
Assert.assertEquals(formatSql, SQLUtils.toSQLServerString(insertStmt));
|
||||
}
|
||||
|
||||
|
||||
@@ -51,8 +51,7 @@ public class SQLServerInsertTest8 extends TestCase {
|
||||
String formatSql = "INSERT INTO Production.ScrapReason"//
|
||||
+ "\nOUTPUT INSERTED.ScrapReasonID, INSERTED.Name, INSERTED.ModifiedDate"//
|
||||
+ "\n\tINTO @MyTableVar"//
|
||||
+ "\nVALUES"//
|
||||
+ "\n(N'Operator error', GETDATE())";
|
||||
+ "\nVALUES (N'Operator error', GETDATE())";
|
||||
Assert.assertEquals(formatSql, SQLUtils.toSQLServerString(insertStmt));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user