This commit is contained in:
温少
2012-05-17 01:07:47 +08:00
parent 6acc3a92b2
commit de1d141e4b
16 changed files with 126 additions and 79 deletions
@@ -46,7 +46,7 @@ public class MappingVisitorTest extends TestCase {
}
public void test_insert() throws Exception {
Assert.assertEquals("INSERT INTO device\n\t(serviceTag, ip)\nVALUES\n(?, ?)",
Assert.assertEquals("INSERT INTO device (serviceTag, ip)\nVALUES (?, ?)",
engine.explainToInsertSQL("(编号, IP地址) VALUES (?, ?)"));
}
@@ -38,7 +38,7 @@ public class PSCacheTest extends TestCase {
DruidPooledPreparedStatement pooledStmt1 = (DruidPooledPreparedStatement) stmt1;
Assert.assertEquals(1, pooledStmt1.getPreparedStatementHolder().getInUseCount());
Assert.assertNotSame(pooledStmt1.getPreparedStatementHolder(), pooledStmt0.getPreparedStatementHolder()); // same
Assert.assertSame(pooledStmt1.getPreparedStatementHolder(), pooledStmt0.getPreparedStatementHolder()); // same
PreparedStatement stmt2 = conn.prepareStatement(sql);
DruidPooledPreparedStatement pooledStmt2 = (DruidPooledPreparedStatement) stmt2;
@@ -66,7 +66,7 @@ public class PSCacheTest extends TestCase {
DruidPooledPreparedStatement pooledStmt1 = (DruidPooledPreparedStatement) stmt1;
Assert.assertEquals(1, pooledStmt1.getPreparedStatementHolder().getInUseCount());
Assert.assertNotSame(pooledStmt1.getPreparedStatementHolder(), pooledStmt0.getPreparedStatementHolder()); // same
Assert.assertSame(pooledStmt1.getPreparedStatementHolder(), pooledStmt0.getPreparedStatementHolder()); // same
PreparedStatement stmt2 = conn.prepareStatement(sql);
DruidPooledPreparedStatement pooledStmt2 = (DruidPooledPreparedStatement) stmt2;
@@ -39,7 +39,7 @@ public class PSCacheTest1 extends TestCase {
DruidPooledPreparedStatement pooledStmt1 = (DruidPooledPreparedStatement) stmt1;
Assert.assertEquals(1, pooledStmt1.getPreparedStatementHolder().getInUseCount());
Assert.assertNotSame(pooledStmt1.getPreparedStatementHolder(), pooledStmt0.getPreparedStatementHolder()); // same
Assert.assertSame(pooledStmt1.getPreparedStatementHolder(), pooledStmt0.getPreparedStatementHolder()); // same
PreparedStatement stmt2 = conn.prepareStatement(sql);
DruidPooledPreparedStatement pooledStmt2 = (DruidPooledPreparedStatement) stmt2;
@@ -64,7 +64,7 @@ public class PSCacheTest1 extends TestCase {
DruidPooledPreparedStatement pooledStmt1 = (DruidPooledPreparedStatement) stmt1;
Assert.assertEquals(1, pooledStmt1.getPreparedStatementHolder().getInUseCount());
Assert.assertNotSame(pooledStmt1.getPreparedStatementHolder(), pooledStmt0.getPreparedStatementHolder()); // same
Assert.assertSame(pooledStmt1.getPreparedStatementHolder(), pooledStmt0.getPreparedStatementHolder()); // same
PreparedStatement stmt2 = conn.prepareStatement(sql);
DruidPooledPreparedStatement pooledStmt2 = (DruidPooledPreparedStatement) stmt2;
@@ -63,7 +63,7 @@ public class TestSharePreparedStatements extends TestCase {
conn.setAutoCommit(false);
PreparedStatement stmt = conn.prepareStatement(sql);
Assert.assertEquals(true, mockStmt != stmt.unwrap(MockPreparedStatement.class));
Assert.assertSame(mockStmt, stmt.unwrap(MockPreparedStatement.class));
ResultSet rs = stmt.executeQuery();
rs.next();
rs.close();
@@ -77,7 +77,7 @@ public class TestSharePreparedStatements extends TestCase {
conn.setAutoCommit(false);
PreparedStatement stmt = conn.prepareStatement(sql);
Assert.assertEquals(true, mockStmt != stmt.unwrap(MockPreparedStatement.class));
Assert.assertSame(mockStmt, stmt.unwrap(MockPreparedStatement.class));
ResultSet rs = stmt.executeQuery();
rs.next();
rs.close();
@@ -227,7 +227,7 @@ public class ConnectionTest4 extends TestCase {
{
PreparedStatement stmt = conn.prepareStatement("SELECT 1", ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_READ_ONLY);
Assert.assertEquals(raw, stmt.unwrap(MockPreparedStatement.class));
Assert.assertSame(raw, stmt.unwrap(MockPreparedStatement.class));
stmt.close();
}
@@ -0,0 +1,42 @@
package com.alibaba.druid.bvt.sql.cobar;
import org.junit.Assert;
import com.alibaba.druid.sql.SQLUtils;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
import com.alibaba.druid.sql.parser.Token;
import junit.framework.TestCase;
public class DMLInsertParserTest extends TestCase {
public void testInsert_0() throws Exception {
String sql = "insErt HIGH_PRIORITY intO test.t1 seT t1.id1=?, id2 := '123'";
MySqlStatementParser parser = new MySqlStatementParser(sql);
SQLStatement stmt = parser.parseStatementList().get(0);
parser.match(Token.EOF);
String output = SQLUtils.toMySqlString(stmt);
Assert.assertEquals("INSERT HIGH_PRIORITY INTO test.t1 (t1.id1, id2)\n" + //
"VALUES (?, '123')", output);
}
public void testInsert_1() throws Exception {
String sql = "insErt IGNORE test.t1 seT t1.id1:=? oN dupLicatE key UPDATE ex.col1=?, col2=12";
MySqlStatementParser parser = new MySqlStatementParser(sql);
SQLStatement stmt = parser.parseStatementList().get(0);
parser.match(Token.EOF);
String output = SQLUtils.toMySqlString(stmt);
Assert.assertEquals("INSERT IGNORE INTO test.t1 (t1.id1)\nVALUES (?) " + //
"ON DUPLICATE KEY UPDATE ex.col1 = ?, col2 = 12", output);
}
public void testInsert_2() throws Exception {
String sql = "insErt t1 value (123,?) oN dupLicatE key UPDATE ex.col1=?";
MySqlStatementParser parser = new MySqlStatementParser(sql);
SQLStatement stmt = parser.parseStatementList().get(0);
parser.match(Token.EOF);
String output = SQLUtils.toMySqlString(stmt);
Assert.assertEquals("INSERT INTO t1\nVALUES (123, ?) ON DUPLICATE KEY UPDATE ex.col1 = ?", output);
}
}
@@ -35,7 +35,7 @@ public class EncryptionAndCompressionFunctionsTest extends TestCase {
String text = output(stmtList);
Assert.assertEquals("INSERT INTO t\nVALUES\n(1, AES_ENCRYPT('text', 'password'));", text);
Assert.assertEquals("INSERT INTO t\nVALUES (1, AES_ENCRYPT('text', 'password'));", text);
}
public void test_1() throws Exception {
@@ -35,7 +35,7 @@ public class InsertSyntaxTest extends TestCase {
String text = output(stmtList);
Assert.assertEquals("INSERT INTO tbl_name\nVALUES\n();", text);
Assert.assertEquals("INSERT INTO tbl_name\nVALUES ();", text);
}
public void test_1() throws Exception {
@@ -46,7 +46,7 @@ public class InsertSyntaxTest extends TestCase {
String text = output(stmtList);
Assert.assertEquals("INSERT INTO tbl_name\n\t(col1, col2)\nVALUES\n(15, col1 * 2);", text);
Assert.assertEquals("INSERT INTO tbl_name (col1, col2)\nVALUES (15, col1 * 2);", text);
}
public void test_2() throws Exception {
@@ -57,7 +57,7 @@ public class InsertSyntaxTest extends TestCase {
String text = output(stmtList);
Assert.assertEquals("INSERT INTO tbl_name\n\t(col1, col2)\nVALUES\n(col2 * 2, 15);", text);
Assert.assertEquals("INSERT INTO tbl_name (col1, col2)\nVALUES (col2 * 2, 15);", text);
}
public void test_3() throws Exception {
@@ -68,7 +68,7 @@ public class InsertSyntaxTest extends TestCase {
String text = output(stmtList);
Assert.assertEquals("INSERT INTO tbl_name\n\t(a, b, c)\nVALUES\n(1, 2, 3), (4, 5, 6), (7, 8, 9);", text);
Assert.assertEquals("INSERT INTO tbl_name (a, b, c)\nVALUES (1, 2, 3), (4, 5, 6), (7, 8, 9);", text);
}
public void test_4() throws Exception {
@@ -79,7 +79,7 @@ public class InsertSyntaxTest extends TestCase {
String text = output(stmtList);
Assert.assertEquals("INSERT INTO tbl_name\n\t(a, b, c)\nVALUES\n(1, 2, 3, 4, 5\n\t, 6, 7, 8, 9);", text);
Assert.assertEquals("INSERT INTO tbl_name (a, b, c)\nVALUES (1, 2, 3, 4, 5\n\t, 6, 7, 8, 9);", text);
}
public void test_5() throws Exception {
@@ -90,7 +90,7 @@ public class InsertSyntaxTest extends TestCase {
String text = output(stmtList);
Assert.assertEquals("INSERT LOW_PRIORITY DELAYED HIGH_PRIORITY IGNORE INTO tbl_name\n\t(a, b, c)\nVALUES\n(1, 2, 3);",
Assert.assertEquals("INSERT LOW_PRIORITY DELAYED HIGH_PRIORITY IGNORE INTO tbl_name (a, b, c)\nVALUES (1, 2, 3);",
text);
}
@@ -102,7 +102,7 @@ public class InsertSyntaxTest extends TestCase {
String text = output(stmtList);
Assert.assertEquals("INSERT INTO tbl_name\n\t(a, b, c)\nVALUES\n(1, 2, 3) ON DUPLICATE KEY UPDATE c = c + 1;",
Assert.assertEquals("INSERT INTO tbl_name (a, b, c)\nVALUES (1, 2, 3) ON DUPLICATE KEY UPDATE c = c + 1;",
text);
}
@@ -46,7 +46,7 @@ public class SHOW_COLUMNS_Syntax_Test extends TestCase {
String text = output(stmtList);
Assert.assertEquals("SHOW COLUMNS FROM mytable FROM mydb;", text);
Assert.assertEquals("SHOW COLUMNS FROM mydb.mytable;", text);
}
public void test_2() throws Exception {