mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
add sql testcases
This commit is contained in:
+20
-16
@@ -18,13 +18,14 @@ package com.alibaba.druid.bvt.sql.mysql;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Assert;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
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.dialect.mysql.visitor.MySqlOutputVisitor;
|
||||
import com.alibaba.druid.sql.parser.SQLStatementParser;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
public class FullTextSearchesWithQueryExpansionTest extends TestCase {
|
||||
|
||||
public void test_0() throws Exception {
|
||||
@@ -32,21 +33,24 @@ public class FullTextSearchesWithQueryExpansionTest extends TestCase {
|
||||
|
||||
SQLStatementParser parser = new MySqlStatementParser(sql);
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String text = output(stmtList);
|
||||
|
||||
Assert.assertEquals("SELECT *\nFROM articles\nWHERE MATCH (title, body) AGAINST ('database' IN NATURAL LANGUAGE MODE);",
|
||||
text);
|
||||
}
|
||||
|
||||
private String output(List<SQLStatement> stmtList) {
|
||||
StringBuilder out = new StringBuilder();
|
||||
|
||||
for (SQLStatement stmt : stmtList) {
|
||||
stmt.accept(new MySqlOutputVisitor(out));
|
||||
out.append(";");
|
||||
{
|
||||
String text = SQLUtils.toMySqlString(stmt);
|
||||
|
||||
Assert.assertEquals("SELECT *" //
|
||||
+ "\nFROM articles" //
|
||||
+ "\nWHERE MATCH (title, body) AGAINST ('database' IN NATURAL LANGUAGE MODE)",
|
||||
text);
|
||||
}
|
||||
{
|
||||
String text = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
|
||||
Assert.assertEquals("select *" //
|
||||
+ "\nfrom articles" //
|
||||
+ "\nwhere match (title, body) against ('database' in natural language mode)",
|
||||
text);
|
||||
}
|
||||
|
||||
return out.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -44,11 +44,19 @@ public class MySqlCreateTableTest56 extends MysqlTest {
|
||||
Assert.assertEquals(1, visitor.getColumns().size());
|
||||
Assert.assertEquals(0, visitor.getConditions().size());
|
||||
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE tableA (" //
|
||||
+ "\n\tdatasn varchar(100) NOT NULL, " //
|
||||
+ "\n\tPRIMARY KEY (datasn)" //
|
||||
+ "\n) ENGINE = MRG_MyISAM CHARSET = utf8 UNION = (tableB, tableC)", output);
|
||||
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE tableA (" //
|
||||
+ "\n\tdatasn varchar(100) NOT NULL, " //
|
||||
+ "\n\tPRIMARY KEY (datasn)" //
|
||||
+ "\n) ENGINE = MRG_MyISAM CHARSET = utf8 UNION = (tableB, tableC)", output);
|
||||
}
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table tableA (" //
|
||||
+ "\n\tdatasn varchar(100) not null, " //
|
||||
+ "\n\tprimary key (datasn)" //
|
||||
+ "\n) engine = MRG_MyISAM charset = utf8 union = (tableB, tableC)", output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,18 +46,61 @@ public class MySqlCreateTableTest58 extends MysqlTest {
|
||||
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE `appservice_account` (" + "\n\t`id` integer NOT NULL PRIMARY KEY AUTO_INCREMENT, "
|
||||
+ "\n\t`password` varchar(128) NOT NULL, " + "\n\t`last_login` datetime NOT NULL, "
|
||||
+ "\n\t`username` varchar(40) NOT NULL UNIQUE, " + "\n\t`date_of_birth` date NOT NULL, "
|
||||
+ "\n\t`head` varchar(100) NOT NULL, " + "\n\t`headThumb` varchar(100) NOT NULL, "
|
||||
+ "\n\t`name` varchar(50) NOT NULL, " + "\n\t`gender` integer, " + "\n\t`uploadVideoCount` integer NOT NULL, "
|
||||
+ "\n\t`fansCount` integer NOT NULL, " + "\n\t`balance` numeric(19, 2) NOT NULL, "
|
||||
+ "\n\t`brick` integer NOT NULL, " + "\n\t`reward` integer NOT NULL, " + "\n\t`token` varchar(500) NOT NULL, "
|
||||
+ "\n\t`weiboUserid` varchar(50) NOT NULL, " + "\n\t`weiboAccesstoken` varchar(500) NOT NULL, "
|
||||
+ "\n\t`qqUserid` varchar(50) NOT NULL, " + "\n\t`qqAccesstoken` varchar(500) NOT NULL, "
|
||||
+ "\n\t`wechatUserid` varchar(50) NOT NULL, " + "\n\t`wechatAccesstoken` varchar(500) NOT NULL, "
|
||||
+ "\n\t`is_active` bool NOT NULL, " + "\n\t`is_admin` bool NOT NULL" + "\n)",output);
|
||||
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE `appservice_account` (" + //
|
||||
"\n\t`id` integer NOT NULL PRIMARY KEY AUTO_INCREMENT, " + //
|
||||
"\n\t`password` varchar(128) NOT NULL, " + //
|
||||
"\n\t`last_login` datetime NOT NULL, " + //
|
||||
"\n\t`username` varchar(40) NOT NULL UNIQUE, " + //
|
||||
"\n\t`date_of_birth` date NOT NULL, " + //
|
||||
"\n\t`head` varchar(100) NOT NULL, " + //
|
||||
"\n\t`headThumb` varchar(100) NOT NULL, " + //
|
||||
"\n\t`name` varchar(50) NOT NULL, " + //
|
||||
"\n\t`gender` integer, " + //
|
||||
"\n\t`uploadVideoCount` integer NOT NULL, " + //
|
||||
"\n\t`fansCount` integer NOT NULL, " + //
|
||||
"\n\t`balance` numeric(19, 2) NOT NULL, " + //
|
||||
"\n\t`brick` integer NOT NULL, " + //
|
||||
"\n\t`reward` integer NOT NULL, " + //
|
||||
"\n\t`token` varchar(500) NOT NULL, " + //
|
||||
"\n\t`weiboUserid` varchar(50) NOT NULL, " + //
|
||||
"\n\t`weiboAccesstoken` varchar(500) NOT NULL, " + //
|
||||
"\n\t`qqUserid` varchar(50) NOT NULL, " + //
|
||||
"\n\t`qqAccesstoken` varchar(500) NOT NULL, " + //
|
||||
"\n\t`wechatUserid` varchar(50) NOT NULL, " + //
|
||||
"\n\t`wechatAccesstoken` varchar(500) NOT NULL, " + //
|
||||
"\n\t`is_active` bool NOT NULL, " + //
|
||||
"\n\t`is_admin` bool NOT NULL" + //
|
||||
"\n)", output);
|
||||
}
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table `appservice_account` (" + //
|
||||
"\n\t`id` integer not null primary key auto_increment, " + //
|
||||
"\n\t`password` varchar(128) not null, " + //
|
||||
"\n\t`last_login` datetime not null, " + //
|
||||
"\n\t`username` varchar(40) not null unique, " + //
|
||||
"\n\t`date_of_birth` date not null, " + //
|
||||
"\n\t`head` varchar(100) not null, " + //
|
||||
"\n\t`headThumb` varchar(100) not null, " + //
|
||||
"\n\t`name` varchar(50) not null, " + //
|
||||
"\n\t`gender` integer, " + //
|
||||
"\n\t`uploadVideoCount` integer not null, " + //
|
||||
"\n\t`fansCount` integer not null, " + //
|
||||
"\n\t`balance` numeric(19, 2) not null, " + //
|
||||
"\n\t`brick` integer not null, " + //
|
||||
"\n\t`reward` integer not null, " + //
|
||||
"\n\t`token` varchar(500) not null, " + //
|
||||
"\n\t`weiboUserid` varchar(50) not null, " + //
|
||||
"\n\t`weiboAccesstoken` varchar(500) not null, " + //
|
||||
"\n\t`qqUserid` varchar(50) not null, " + //
|
||||
"\n\t`qqAccesstoken` varchar(500) not null, " + //
|
||||
"\n\t`wechatUserid` varchar(50) not null, " + //
|
||||
"\n\t`wechatAccesstoken` varchar(500) not null, " + //
|
||||
"\n\t`is_active` bool not null, " + //
|
||||
"\n\t`is_admin` bool not null" + //
|
||||
"\n)", output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,11 +36,19 @@ public class MySqlCreateTableTest60 extends MysqlTest {
|
||||
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE t10 ("
|
||||
+ "\n\tpk int PRIMARY KEY AUTO_INCREMENT, "
|
||||
+ "\n\tf1 varchar(65500) CHARSET latin1 "
|
||||
+ "\n)", output);
|
||||
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE t10 ("
|
||||
+ "\n\tpk int PRIMARY KEY AUTO_INCREMENT, "
|
||||
+ "\n\tf1 varchar(65500) CHARSET latin1 "
|
||||
+ "\n)", output);
|
||||
}
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table t10 ("
|
||||
+ "\n\tpk int primary key auto_increment, "
|
||||
+ "\n\tf1 varchar(65500) charset latin1 "
|
||||
+ "\n)", output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,12 +36,21 @@ public class MySqlCreateTableTest61 extends MysqlTest {
|
||||
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE t ("
|
||||
+ "\n\tpk int PRIMARY KEY AUTO_INCREMENT, "
|
||||
+ "\n\ta timestamp DEFAULT current_timestamp ON UPDATE current_timestamp, "
|
||||
+ "\n\tb timestamp NULL"
|
||||
+ "\n)", output);
|
||||
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE t ("
|
||||
+ "\n\tpk int PRIMARY KEY AUTO_INCREMENT, "
|
||||
+ "\n\ta timestamp DEFAULT current_timestamp ON UPDATE current_timestamp, "
|
||||
+ "\n\tb timestamp NULL"
|
||||
+ "\n)", output);
|
||||
}
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table t ("
|
||||
+ "\n\tpk int primary key auto_increment, "
|
||||
+ "\n\ta timestamp default current_timestamp on update current_timestamp, "
|
||||
+ "\n\tb timestamp null"
|
||||
+ "\n)", output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,10 +36,17 @@ public class MySqlCreateTableTest62 extends MysqlTest {
|
||||
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE a ("
|
||||
+ "\n\tb varchar(15) CHARACTER SET latin1 NULL"
|
||||
+ "\n)", output);
|
||||
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE a ("
|
||||
+ "\n\tb varchar(15) CHARACTER SET latin1 NULL"
|
||||
+ "\n)", output);
|
||||
}
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table a ("
|
||||
+ "\n\tb varchar(15) character set latin1 null"
|
||||
+ "\n)", output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,12 +36,21 @@ public class MySqlCreateTableTest63 extends MysqlTest {
|
||||
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE t ("
|
||||
+ "\n\tpk int PRIMARY KEY AUTO_INCREMENT, "
|
||||
+ "\n\ta TIMESTAMP, "
|
||||
+ "\n\tKEY (a DESC)"
|
||||
+ "\n)", output);
|
||||
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE t ("
|
||||
+ "\n\tpk int PRIMARY KEY AUTO_INCREMENT, "
|
||||
+ "\n\ta TIMESTAMP, "
|
||||
+ "\n\tKEY (a DESC)"
|
||||
+ "\n)", output);
|
||||
}
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table t ("
|
||||
+ "\n\tpk int primary key auto_increment, "
|
||||
+ "\n\ta TIMESTAMP, "
|
||||
+ "\n\tkey (a desc)"
|
||||
+ "\n)", output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,11 +36,19 @@ public class MySqlCreateTableTest64 extends MysqlTest {
|
||||
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE t ("
|
||||
+ "\n\tc char(10), "
|
||||
+ "\n\tUNIQUE a USING hash (c(1))"
|
||||
+ "\n) CHARSET = utf8mb4 ENGINE = heap", output);
|
||||
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE t ("
|
||||
+ "\n\tc char(10), "
|
||||
+ "\n\tUNIQUE a USING hash (c(1))"
|
||||
+ "\n) CHARSET = utf8mb4 ENGINE = heap", output);
|
||||
}
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table t ("
|
||||
+ "\n\tc char(10), "
|
||||
+ "\n\tunique a using hash (c(1))"
|
||||
+ "\n) charset = utf8mb4 engine = heap", output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,11 +36,19 @@ public class MySqlCreateTableTest65 extends MysqlTest {
|
||||
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE t ("
|
||||
+ "\n\tc char(10), "
|
||||
+ "\n\tUNIQUE a USING btree (c(1))"
|
||||
+ "\n) CHARSET = utf8mb4 ENGINE = heap", output);
|
||||
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE t ("
|
||||
+ "\n\tc char(10), "
|
||||
+ "\n\tUNIQUE a USING btree (c(1))"
|
||||
+ "\n) CHARSET = utf8mb4 ENGINE = heap", output);
|
||||
}
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table t ("
|
||||
+ "\n\tc char(10), "
|
||||
+ "\n\tunique a using btree (c(1))"
|
||||
+ "\n) charset = utf8mb4 engine = heap", output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,17 +45,31 @@ public class MySqlCreateTableTest66 extends MysqlTest {
|
||||
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE hp_db.g20_relationship_communication_daily ("
|
||||
+ "\n\ta_iden_string varchar, "
|
||||
+ "\n\tb_iden_string varchar, "
|
||||
+ "\n\tcounter bigint, "
|
||||
+ "\n\tdurationtime bigint"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY HASH KEY(a_iden_string) PARTITION NUM 100"
|
||||
+ "\nSUBPARTITION BY LIST (bdt bigint)"
|
||||
+ "\nSUBPARTITION OPTIONS (available_Partition_Num = 90)"
|
||||
+ "\nTABLEGROUP g20_test_group", output);
|
||||
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE hp_db.g20_relationship_communication_daily ("
|
||||
+ "\n\ta_iden_string varchar, "
|
||||
+ "\n\tb_iden_string varchar, "
|
||||
+ "\n\tcounter bigint, "
|
||||
+ "\n\tdurationtime bigint"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY HASH KEY(a_iden_string) PARTITION NUM 100"
|
||||
+ "\nSUBPARTITION BY LIST (bdt bigint)"
|
||||
+ "\nSUBPARTITION OPTIONS (available_Partition_Num = 90)"
|
||||
+ "\nTABLEGROUP g20_test_group", output);
|
||||
}
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table hp_db.g20_relationship_communication_daily ("
|
||||
+ "\n\ta_iden_string varchar, "
|
||||
+ "\n\tb_iden_string varchar, "
|
||||
+ "\n\tcounter bigint, "
|
||||
+ "\n\tdurationtime bigint"
|
||||
+ "\n)"
|
||||
+ "\npartition by hash key(a_iden_string) partition num 100"
|
||||
+ "\nsubpartition by list (bdt bigint)"
|
||||
+ "\nsubpartition options (available_Partition_Num = 90)"
|
||||
+ "\ntablegroup g20_test_group", output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,17 +41,31 @@ public class MySqlCreateTableTest67 extends MysqlTest {
|
||||
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE t1 ("
|
||||
+ "\n\ta INT NOT NULL, "
|
||||
+ "\n\tPRIMARY KEY (a)"
|
||||
+ "\n) ENGINE = InnoDB TABLESPACE ts1"
|
||||
+ "\nPARTITION BY RANGE (a) PARTITIONS 3"
|
||||
+ "\n("
|
||||
+ "\n\tPARTITION P1 VALUES LESS THAN (2),"
|
||||
+ "\n\tPARTITION P2 VALUES LESS THAN (4) TABLESPACE ts2,"
|
||||
+ "\n\tPARTITION P3 VALUES LESS THAN (6) TABLESPACE ts3"
|
||||
+ "\n)", output);
|
||||
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE t1 ("
|
||||
+ "\n\ta INT NOT NULL, "
|
||||
+ "\n\tPRIMARY KEY (a)"
|
||||
+ "\n) ENGINE = InnoDB TABLESPACE ts1"
|
||||
+ "\nPARTITION BY RANGE (a) PARTITIONS 3"
|
||||
+ "\n("
|
||||
+ "\n\tPARTITION P1 VALUES LESS THAN (2),"
|
||||
+ "\n\tPARTITION P2 VALUES LESS THAN (4) TABLESPACE ts2,"
|
||||
+ "\n\tPARTITION P3 VALUES LESS THAN (6) TABLESPACE ts3"
|
||||
+ "\n)", output);
|
||||
}
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table t1 ("
|
||||
+ "\n\ta INT not null, "
|
||||
+ "\n\tprimary key (a)"
|
||||
+ "\n) engine = InnoDB tablespace ts1"
|
||||
+ "\npartition by range (a) partitions 3"
|
||||
+ "\n("
|
||||
+ "\n\tpartition P1 values less than (2),"
|
||||
+ "\n\tpartition P2 values less than (4) tablespace ts2,"
|
||||
+ "\n\tpartition P3 values less than (6) tablespace ts3"
|
||||
+ "\n)", output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,20 +47,38 @@ public class MySqlCreateTableTest68 extends MysqlTest {
|
||||
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE t1 ("
|
||||
+ "\n\tyear_col INT, "
|
||||
+ "\n\tsome_data INT"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY RANGE (year_col)"
|
||||
+ "\n("
|
||||
+ "\n\tPARTITION p0 VALUES LESS THAN (1991),"
|
||||
+ "\n\tPARTITION p1 VALUES LESS THAN (1995),"
|
||||
+ "\n\tPARTITION p2 VALUES LESS THAN (1999),"
|
||||
+ "\n\tPARTITION p3 VALUES LESS THAN (2002),"
|
||||
+ "\n\tPARTITION p4 VALUES LESS THAN (2006),"
|
||||
+ "\n\tPARTITION p5 VALUES LESS THAN MAXVALUE"
|
||||
+ "\n)", output);
|
||||
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE t1 ("
|
||||
+ "\n\tyear_col INT, "
|
||||
+ "\n\tsome_data INT"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY RANGE (year_col)"
|
||||
+ "\n("
|
||||
+ "\n\tPARTITION p0 VALUES LESS THAN (1991),"
|
||||
+ "\n\tPARTITION p1 VALUES LESS THAN (1995),"
|
||||
+ "\n\tPARTITION p2 VALUES LESS THAN (1999),"
|
||||
+ "\n\tPARTITION p3 VALUES LESS THAN (2002),"
|
||||
+ "\n\tPARTITION p4 VALUES LESS THAN (2006),"
|
||||
+ "\n\tPARTITION p5 VALUES LESS THAN MAXVALUE"
|
||||
+ "\n)", output);
|
||||
}
|
||||
|
||||
{
|
||||
String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table t1 ("
|
||||
+ "\n\tyear_col INT, "
|
||||
+ "\n\tsome_data INT"
|
||||
+ "\n)"
|
||||
+ "\npartition by range (year_col)"
|
||||
+ "\n("
|
||||
+ "\n\tpartition p0 values less than (1991),"
|
||||
+ "\n\tpartition p1 values less than (1995),"
|
||||
+ "\n\tpartition p2 values less than (1999),"
|
||||
+ "\n\tpartition p3 values less than (2002),"
|
||||
+ "\n\tpartition p4 values less than (2006),"
|
||||
+ "\n\tpartition p5 values less than maxvalue"
|
||||
+ "\n)", output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+12
-4
@@ -34,10 +34,18 @@ public class OceanbaseAlterTableAddPartitionTest extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE members"
|
||||
+ "\n\tADD PARTITION (PARTITION p3 VALUES LESS THAN (2000))",
|
||||
result);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE members"
|
||||
+ "\n\tADD PARTITION (PARTITION p3 VALUES LESS THAN (2000))",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table members"
|
||||
+ "\n\tadd partition (partition p3 values less than (2000))",
|
||||
result);
|
||||
}
|
||||
print(stmtList);
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
+12
-5
@@ -34,11 +34,18 @@ public class OceanbaseAlterTableAddPartitionTest2 extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE clients"
|
||||
+ "\n\tADD PARTITION PARTITIONS 18",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE clients"
|
||||
+ "\n\tADD PARTITION PARTITIONS 18",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table clients"
|
||||
+ "\n\tadd partition partitions 18",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+12
-6
@@ -33,12 +33,18 @@ public class OceanbaseAlterTableAnalyzePartitionTest extends MysqlTest {
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tANALYZE PARTITION p1",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tANALYZE PARTITION p1",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\tanalyze partition p1",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+12
-5
@@ -34,11 +34,18 @@ public class OceanbaseAlterTableAnalyzePartitionTest2 extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tANALYZE PARTITION ALL",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tANALYZE PARTITION ALL",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\tanalyze partition all",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* Copyright 1999-2101 Alibaba Group Holding Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.alibaba.druid.bvt.sql.oceanbase;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
import com.alibaba.druid.sql.MysqlTest;
|
||||
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.dialect.mysql.visitor.MySqlSchemaStatVisitor;
|
||||
|
||||
public class OceanbaseAlterTableAnalyzePartitionTest3 extends MysqlTest {
|
||||
|
||||
public void test_0() throws Exception {
|
||||
String sql = "ALTER TABLE tnrange ANALYZE PARTITION p1, p2;"; //
|
||||
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tANALYZE PARTITION p1, p2",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\tanalyze partition p1, p2",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
System.out.println("Tables : " + visitor.getTables());
|
||||
System.out.println("fields : " + visitor.getColumns());
|
||||
System.out.println("coditions : " + visitor.getConditions());
|
||||
System.out.println("orderBy : " + visitor.getOrderByColumns());
|
||||
|
||||
Assert.assertEquals(1, visitor.getTables().size());
|
||||
Assert.assertEquals(0, visitor.getColumns().size());
|
||||
Assert.assertEquals(0, visitor.getConditions().size());
|
||||
|
||||
// Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("t_basic_store")));
|
||||
|
||||
}
|
||||
}
|
||||
+12
-5
@@ -34,11 +34,18 @@ public class OceanbaseAlterTableCheckPartitionTest extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tCHECK PARTITION p1",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tCHECK PARTITION p1",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\tcheck partition p1",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+12
-6
@@ -33,12 +33,18 @@ public class OceanbaseAlterTableCheckPartitionTest2 extends MysqlTest {
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tCHECK PARTITION ALL",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tCHECK PARTITION ALL",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\tcheck partition all",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+12
-5
@@ -34,11 +34,18 @@ public class OceanbaseAlterTableCoalescePartitionTest extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE clients"
|
||||
+ "\n\tCOALESCE PARTITION 6",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE clients"
|
||||
+ "\n\tCOALESCE PARTITION 6",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table clients"
|
||||
+ "\n\tcoalesce partition 6",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+12
-5
@@ -34,11 +34,18 @@ public class OceanbaseAlterTableDiscardPartitionTest extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tDISCARD PARTITION p1",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tDISCARD PARTITION p1",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\tdiscard partition p1",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+12
-5
@@ -34,11 +34,18 @@ public class OceanbaseAlterTableDiscardPartitionTest2 extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tDISCARD PARTITION ALL",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tDISCARD PARTITION ALL",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\tdiscard partition all",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+12
-5
@@ -34,11 +34,18 @@ public class OceanbaseAlterTableImportPartitionTest extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tIMPORT PARTITION p1",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tIMPORT PARTITION p1",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\timport partition p1",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+12
-5
@@ -34,11 +34,18 @@ public class OceanbaseAlterTableImportPartitionTest2 extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tIMPORT PARTITION ALL",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tIMPORT PARTITION ALL",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\timport partition all",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+12
-5
@@ -34,11 +34,18 @@ public class OceanbaseAlterTableOptimizePartitionTest extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tOPTIMIZE PARTITION p1",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tOPTIMIZE PARTITION p1",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\toptimize partition p1",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+12
-5
@@ -34,11 +34,18 @@ public class OceanbaseAlterTableOptimizePartitionTest2 extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tOPTIMIZE PARTITION ALL",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tOPTIMIZE PARTITION ALL",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\toptimize partition all",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+12
-6
@@ -34,12 +34,18 @@ public class OceanbaseAlterTableReOrganizePartitionTest extends MysqlTest {
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE members"
|
||||
+ "\n\tREORGANIZE p0 INTO (PARTITION s0 VALUES LESS THAN (1960), PARTITION s1 VALUES LESS THAN (1970))",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE members" //
|
||||
+ "\n\tREORGANIZE p0 INTO (PARTITION s0 VALUES LESS THAN (1960), PARTITION s1 VALUES LESS THAN (1970))",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table members" //
|
||||
+ "\n\treorganize p0 into (partition s0 values less than (1960), partition s1 values less than (1970))",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+12
-5
@@ -38,11 +38,18 @@ public class OceanbaseAlterTableReOrganizePartitionTest2 extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE members"
|
||||
+ "\n\tREORGANIZE s0, s1, p1, p2, p3 INTO (PARTITION m0 VALUES LESS THAN (1980), PARTITION m1 VALUES LESS THAN (2000))",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE members"
|
||||
+ "\n\tREORGANIZE s0, s1, p1, p2, p3 INTO (PARTITION m0 VALUES LESS THAN (1980), PARTITION m1 VALUES LESS THAN (2000))",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table members"
|
||||
+ "\n\treorganize s0, s1, p1, p2, p3 into (partition m0 values less than (1980), partition m1 values less than (2000))",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+12
-5
@@ -34,11 +34,18 @@ public class OceanbaseAlterTableRebuildPartitionTest extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tREBUILD PARTITION p1",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tREBUILD PARTITION p1",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\trebuild partition p1",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+13
-6
@@ -34,12 +34,19 @@ public class OceanbaseAlterTableRebuildPartitionTest2 extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tREBUILD PARTITION ALL",
|
||||
result);
|
||||
print(stmtList);
|
||||
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tREBUILD PARTITION ALL",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\trebuild partition all",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
|
||||
|
||||
+12
-5
@@ -34,11 +34,18 @@ public class OceanbaseAlterTableRemovePartitioningTest extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tREMOVE PARTITIONING",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tREMOVE PARTITIONING",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\tremove partitioning",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+12
-5
@@ -34,11 +34,18 @@ public class OceanbaseAlterTableRepairPartitionTest extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tREPAIR PARTITION p1",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tREPAIR PARTITION p1",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\trepair partition p1",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+12
-5
@@ -34,11 +34,18 @@ public class OceanbaseAlterTableRepairPartitionTest2 extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tREPAIR PARTITION ALL",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tREPAIR PARTITION ALL",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\trepair partition all",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+12
-5
@@ -34,11 +34,18 @@ public class OceanbaseAlterTableTruncatePartitionTest extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tTRUNCATE PARTITION p1",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tTRUNCATE PARTITION p1",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\ttruncate partition p1",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+12
-5
@@ -34,11 +34,18 @@ public class OceanbaseAlterTableTruncatePartitionTest2 extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tTRUNCATE PARTITION ALL",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tTRUNCATE PARTITION ALL",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\ttruncate partition all",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+12
-5
@@ -34,11 +34,18 @@ public class OceanbaseAlterTableUpgradePartitioningTest extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tUPGRADE PARTITIONING",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("ALTER TABLE tnrange"
|
||||
+ "\n\tUPGRADE PARTITIONING",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("alter table tnrange"
|
||||
+ "\n\tupgrade partitioning",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+19
-9
@@ -34,15 +34,25 @@ public class OceanbaseCreateTableTest_partitionByHash extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE tnhash ("
|
||||
+ "\n\tid INT, "
|
||||
+ "\n\tname VARCHAR(5)"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY HASH (id) PARTITIONS 2",
|
||||
result);
|
||||
print(stmtList);
|
||||
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE tnhash ("
|
||||
+ "\n\tid INT, "
|
||||
+ "\n\tname VARCHAR(5)"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY HASH (id) PARTITIONS 2",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table tnhash ("
|
||||
+ "\n\tid INT, "
|
||||
+ "\n\tname VARCHAR(5)"
|
||||
+ "\n)"
|
||||
+ "\npartition by hash (id) partitions 2",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
|
||||
|
||||
+28
-13
@@ -41,19 +41,34 @@ public class OceanbaseCreateTableTest_partitionByHash2 extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE employees ("
|
||||
+ "\n\tid INT NOT NULL, "
|
||||
+ "\n\tfname VARCHAR(30), "
|
||||
+ "\n\tlname VARCHAR(30), "
|
||||
+ "\n\thired DATE NOT NULL DEFAULT '1970-01-01', "
|
||||
+ "\n\tseparated DATE NOT NULL DEFAULT '9999-12-31', "
|
||||
+ "\n\tjob_code INT, "
|
||||
+ "\n\tstore_id INT"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY HASH (YEAR(hired)) PARTITIONS 4",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE employees ("
|
||||
+ "\n\tid INT NOT NULL, "
|
||||
+ "\n\tfname VARCHAR(30), "
|
||||
+ "\n\tlname VARCHAR(30), "
|
||||
+ "\n\thired DATE NOT NULL DEFAULT '1970-01-01', "
|
||||
+ "\n\tseparated DATE NOT NULL DEFAULT '9999-12-31', "
|
||||
+ "\n\tjob_code INT, "
|
||||
+ "\n\tstore_id INT"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY HASH (YEAR(hired)) PARTITIONS 4",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table employees ("
|
||||
+ "\n\tid INT not null, "
|
||||
+ "\n\tfname VARCHAR(30), "
|
||||
+ "\n\tlname VARCHAR(30), "
|
||||
+ "\n\thired DATE not null default '1970-01-01', "
|
||||
+ "\n\tseparated DATE not null default '9999-12-31', "
|
||||
+ "\n\tjob_code INT, "
|
||||
+ "\n\tstore_id INT"
|
||||
+ "\n)"
|
||||
+ "\npartition by hash (YEAR(hired)) partitions 4",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+18
-8
@@ -34,14 +34,24 @@ public class OceanbaseCreateTableTest_partitionByKey extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE k2 ("
|
||||
+ "\n\tid int PRIMARY KEY, "
|
||||
+ "\n\tname varchar(20)"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY KEY () PARTITIONS 2",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE k2 ("
|
||||
+ "\n\tid int PRIMARY KEY, "
|
||||
+ "\n\tname varchar(20)"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY KEY () PARTITIONS 2",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table k2 ("
|
||||
+ "\n\tid int primary key, "
|
||||
+ "\n\tname varchar(20)"
|
||||
+ "\n)"
|
||||
+ "\npartition by key () partitions 2",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+40
-19
@@ -43,25 +43,46 @@ public class OceanbaseCreateTableTest_rangePartition extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE employees ("
|
||||
+ "\n\tid INT NOT NULL, "
|
||||
+ "\n\tfname VARCHAR(30), "
|
||||
+ "\n\tlname VARCHAR(30), "
|
||||
+ "\n\thired DATE NOT NULL DEFAULT '1970-01-01', "
|
||||
+ "\n\tseparated DATE NOT NULL DEFAULT '9999-12-31', "
|
||||
+ "\n\tjob_code INT NOT NULL, "
|
||||
+ "\n\tstore_id INT NOT NULL"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY RANGE (store_id)"
|
||||
+ "\n("
|
||||
+ "\n\tPARTITION p0 VALUES LESS THAN (6),"
|
||||
+ "\n\tPARTITION p1 VALUES LESS THAN (11),"
|
||||
+ "\n\tPARTITION p2 VALUES LESS THAN (16),"
|
||||
+ "\n\tPARTITION p3 VALUES LESS THAN (21)"
|
||||
+ "\n)",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE employees ("
|
||||
+ "\n\tid INT NOT NULL, "
|
||||
+ "\n\tfname VARCHAR(30), "
|
||||
+ "\n\tlname VARCHAR(30), "
|
||||
+ "\n\thired DATE NOT NULL DEFAULT '1970-01-01', "
|
||||
+ "\n\tseparated DATE NOT NULL DEFAULT '9999-12-31', "
|
||||
+ "\n\tjob_code INT NOT NULL, "
|
||||
+ "\n\tstore_id INT NOT NULL"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY RANGE (store_id)"
|
||||
+ "\n("
|
||||
+ "\n\tPARTITION p0 VALUES LESS THAN (6),"
|
||||
+ "\n\tPARTITION p1 VALUES LESS THAN (11),"
|
||||
+ "\n\tPARTITION p2 VALUES LESS THAN (16),"
|
||||
+ "\n\tPARTITION p3 VALUES LESS THAN (21)"
|
||||
+ "\n)",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table employees ("
|
||||
+ "\n\tid INT not null, "
|
||||
+ "\n\tfname VARCHAR(30), "
|
||||
+ "\n\tlname VARCHAR(30), "
|
||||
+ "\n\thired DATE not null default '1970-01-01', "
|
||||
+ "\n\tseparated DATE not null default '9999-12-31', "
|
||||
+ "\n\tjob_code INT not null, "
|
||||
+ "\n\tstore_id INT not null"
|
||||
+ "\n)"
|
||||
+ "\npartition by range (store_id)"
|
||||
+ "\n("
|
||||
+ "\n\tpartition p0 values less than (6),"
|
||||
+ "\n\tpartition p1 values less than (11),"
|
||||
+ "\n\tpartition p2 values less than (16),"
|
||||
+ "\n\tpartition p3 values less than (21)"
|
||||
+ "\n)",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+40
-19
@@ -46,25 +46,46 @@ public class OceanbaseCreateTableTest_rangePartition2 extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE employees ("
|
||||
+ "\n\tid INT NOT NULL, "
|
||||
+ "\n\tfname VARCHAR(30), "
|
||||
+ "\n\tlname VARCHAR(30), "
|
||||
+ "\n\thired DATE NOT NULL DEFAULT '1970-01-01', "
|
||||
+ "\n\tseparated DATE NOT NULL DEFAULT '9999-12-31', "
|
||||
+ "\n\tjob_code INT NOT NULL, "
|
||||
+ "\n\tstore_id INT NOT NULL"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY RANGE (store_id)"
|
||||
+ "\n("
|
||||
+ "\n\tPARTITION p0 VALUES LESS THAN (6),"
|
||||
+ "\n\tPARTITION p1 VALUES LESS THAN (11),"
|
||||
+ "\n\tPARTITION p2 VALUES LESS THAN (16),"
|
||||
+ "\n\tPARTITION p3 VALUES LESS THAN MAXVALUE"
|
||||
+ "\n)",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE employees ("
|
||||
+ "\n\tid INT NOT NULL, "
|
||||
+ "\n\tfname VARCHAR(30), "
|
||||
+ "\n\tlname VARCHAR(30), "
|
||||
+ "\n\thired DATE NOT NULL DEFAULT '1970-01-01', "
|
||||
+ "\n\tseparated DATE NOT NULL DEFAULT '9999-12-31', "
|
||||
+ "\n\tjob_code INT NOT NULL, "
|
||||
+ "\n\tstore_id INT NOT NULL"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY RANGE (store_id)"
|
||||
+ "\n("
|
||||
+ "\n\tPARTITION p0 VALUES LESS THAN (6),"
|
||||
+ "\n\tPARTITION p1 VALUES LESS THAN (11),"
|
||||
+ "\n\tPARTITION p2 VALUES LESS THAN (16),"
|
||||
+ "\n\tPARTITION p3 VALUES LESS THAN MAXVALUE"
|
||||
+ "\n)",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table employees ("
|
||||
+ "\n\tid INT not null, "
|
||||
+ "\n\tfname VARCHAR(30), "
|
||||
+ "\n\tlname VARCHAR(30), "
|
||||
+ "\n\thired DATE not null default '1970-01-01', "
|
||||
+ "\n\tseparated DATE not null default '9999-12-31', "
|
||||
+ "\n\tjob_code INT not null, "
|
||||
+ "\n\tstore_id INT not null"
|
||||
+ "\n)"
|
||||
+ "\npartition by range (store_id)"
|
||||
+ "\n("
|
||||
+ "\n\tpartition p0 values less than (6),"
|
||||
+ "\n\tpartition p1 values less than (11),"
|
||||
+ "\n\tpartition p2 values less than (16),"
|
||||
+ "\n\tpartition p3 values less than maxvalue"
|
||||
+ "\n)",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+38
-18
@@ -45,24 +45,44 @@ public class OceanbaseCreateTableTest_rangePartition3 extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE employees ("
|
||||
+ "\n\tid INT NOT NULL, "
|
||||
+ "\n\tfname VARCHAR(30), "
|
||||
+ "\n\tlname VARCHAR(30), "
|
||||
+ "\n\thired DATE NOT NULL DEFAULT '1970-01-01', "
|
||||
+ "\n\tseparated DATE NOT NULL DEFAULT '9999-12-31', "
|
||||
+ "\n\tjob_code INT NOT NULL, "
|
||||
+ "\n\tstore_id INT NOT NULL"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY RANGE (job_code)"
|
||||
+ "\n("
|
||||
+ "\n\tPARTITION p0 VALUES LESS THAN (100),"
|
||||
+ "\n\tPARTITION p1 VALUES LESS THAN (1000),"
|
||||
+ "\n\tPARTITION p2 VALUES LESS THAN (10000)"
|
||||
+ "\n)",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE employees ("
|
||||
+ "\n\tid INT NOT NULL, "
|
||||
+ "\n\tfname VARCHAR(30), "
|
||||
+ "\n\tlname VARCHAR(30), "
|
||||
+ "\n\thired DATE NOT NULL DEFAULT '1970-01-01', "
|
||||
+ "\n\tseparated DATE NOT NULL DEFAULT '9999-12-31', "
|
||||
+ "\n\tjob_code INT NOT NULL, "
|
||||
+ "\n\tstore_id INT NOT NULL"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY RANGE (job_code)"
|
||||
+ "\n("
|
||||
+ "\n\tPARTITION p0 VALUES LESS THAN (100),"
|
||||
+ "\n\tPARTITION p1 VALUES LESS THAN (1000),"
|
||||
+ "\n\tPARTITION p2 VALUES LESS THAN (10000)"
|
||||
+ "\n)",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table employees ("
|
||||
+ "\n\tid INT not null, "
|
||||
+ "\n\tfname VARCHAR(30), "
|
||||
+ "\n\tlname VARCHAR(30), "
|
||||
+ "\n\thired DATE not null default '1970-01-01', "
|
||||
+ "\n\tseparated DATE not null default '9999-12-31', "
|
||||
+ "\n\tjob_code INT not null, "
|
||||
+ "\n\tstore_id INT not null"
|
||||
+ "\n)"
|
||||
+ "\npartition by range (job_code)"
|
||||
+ "\n("
|
||||
+ "\n\tpartition p0 values less than (100),"
|
||||
+ "\n\tpartition p1 values less than (1000),"
|
||||
+ "\n\tpartition p2 values less than (10000)"
|
||||
+ "\n)",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+40
-19
@@ -45,25 +45,46 @@ public class OceanbaseCreateTableTest_rangePartition4 extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE employees ("
|
||||
+ "\n\tid INT NOT NULL, "
|
||||
+ "\n\tfname VARCHAR(30), "
|
||||
+ "\n\tlname VARCHAR(30), "
|
||||
+ "\n\thired DATE NOT NULL DEFAULT '1970-01-01', "
|
||||
+ "\n\tseparated DATE NOT NULL DEFAULT '9999-12-31', "
|
||||
+ "\n\tjob_code INT, "
|
||||
+ "\n\tstore_id INT"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY RANGE (YEAR(separated))"
|
||||
+ "\n("
|
||||
+ "\n\tPARTITION p0 VALUES LESS THAN (1991),"
|
||||
+ "\n\tPARTITION p1 VALUES LESS THAN (1996),"
|
||||
+ "\n\tPARTITION p2 VALUES LESS THAN (2001),"
|
||||
+ "\n\tPARTITION p3 VALUES LESS THAN MAXVALUE"
|
||||
+ "\n)",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE employees ("
|
||||
+ "\n\tid INT NOT NULL, "
|
||||
+ "\n\tfname VARCHAR(30), "
|
||||
+ "\n\tlname VARCHAR(30), "
|
||||
+ "\n\thired DATE NOT NULL DEFAULT '1970-01-01', "
|
||||
+ "\n\tseparated DATE NOT NULL DEFAULT '9999-12-31', "
|
||||
+ "\n\tjob_code INT, "
|
||||
+ "\n\tstore_id INT"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY RANGE (YEAR(separated))"
|
||||
+ "\n("
|
||||
+ "\n\tPARTITION p0 VALUES LESS THAN (1991),"
|
||||
+ "\n\tPARTITION p1 VALUES LESS THAN (1996),"
|
||||
+ "\n\tPARTITION p2 VALUES LESS THAN (2001),"
|
||||
+ "\n\tPARTITION p3 VALUES LESS THAN MAXVALUE"
|
||||
+ "\n)",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table employees ("
|
||||
+ "\n\tid INT not null, "
|
||||
+ "\n\tfname VARCHAR(30), "
|
||||
+ "\n\tlname VARCHAR(30), "
|
||||
+ "\n\thired DATE not null default '1970-01-01', "
|
||||
+ "\n\tseparated DATE not null default '9999-12-31', "
|
||||
+ "\n\tjob_code INT, "
|
||||
+ "\n\tstore_id INT"
|
||||
+ "\n)"
|
||||
+ "\npartition by range (YEAR(separated))"
|
||||
+ "\n("
|
||||
+ "\n\tpartition p0 values less than (1991),"
|
||||
+ "\n\tpartition p1 values less than (1996),"
|
||||
+ "\n\tpartition p2 values less than (2001),"
|
||||
+ "\n\tpartition p3 values less than maxvalue"
|
||||
+ "\n)",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+26
-12
@@ -38,18 +38,32 @@ public class OceanbaseCreateTableTest_rangePartition5 extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE tnrange ("
|
||||
+ "\n\tid INT, "
|
||||
+ "\n\tname VARCHAR(5)"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY RANGE (id)"
|
||||
+ "\n("
|
||||
+ "\n\tPARTITION p1 VALUES LESS THAN (1),"
|
||||
+ "\n\tPARTITION p2 VALUES LESS THAN MAXVALUE"
|
||||
+ "\n)",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE tnrange ("
|
||||
+ "\n\tid INT, "
|
||||
+ "\n\tname VARCHAR(5)"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY RANGE (id)"
|
||||
+ "\n("
|
||||
+ "\n\tPARTITION p1 VALUES LESS THAN (1),"
|
||||
+ "\n\tPARTITION p2 VALUES LESS THAN MAXVALUE"
|
||||
+ "\n)",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table tnrange ("
|
||||
+ "\n\tid INT, "
|
||||
+ "\n\tname VARCHAR(5)"
|
||||
+ "\n)"
|
||||
+ "\npartition by range (id)"
|
||||
+ "\n("
|
||||
+ "\n\tpartition p1 values less than (1),"
|
||||
+ "\n\tpartition p2 values less than maxvalue"
|
||||
+ "\n)",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
+30
-14
@@ -40,20 +40,36 @@ public class OceanbaseCreateTableTest_subPartition extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE ts ("
|
||||
+ "\n\tid INT, "
|
||||
+ "\n\tpurchased DATE"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY RANGE (YEAR(purchased))"
|
||||
+ "\nSUBPARTITION BY HASH (TO_DAYS(purchased)) SUBPARTITIONS 2"
|
||||
+ "\n("
|
||||
+ "\n\tPARTITION p0 VALUES LESS THAN (1990),"
|
||||
+ "\n\tPARTITION p1 VALUES LESS THAN (2000),"
|
||||
+ "\n\tPARTITION p2 VALUES LESS THAN MAXVALUE"
|
||||
+ "\n)",
|
||||
result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CREATE TABLE ts ("
|
||||
+ "\n\tid INT, "
|
||||
+ "\n\tpurchased DATE"
|
||||
+ "\n)"
|
||||
+ "\nPARTITION BY RANGE (YEAR(purchased))"
|
||||
+ "\nSUBPARTITION BY HASH (TO_DAYS(purchased)) SUBPARTITIONS 2"
|
||||
+ "\n("
|
||||
+ "\n\tPARTITION p0 VALUES LESS THAN (1990),"
|
||||
+ "\n\tPARTITION p1 VALUES LESS THAN (2000),"
|
||||
+ "\n\tPARTITION p2 VALUES LESS THAN MAXVALUE"
|
||||
+ "\n)",
|
||||
result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("create table ts ("
|
||||
+ "\n\tid INT, "
|
||||
+ "\n\tpurchased DATE"
|
||||
+ "\n)"
|
||||
+ "\npartition by range (YEAR(purchased))"
|
||||
+ "\nsubpartition by hash (TO_DAYS(purchased)) subpartitions 2"
|
||||
+ "\n("
|
||||
+ "\n\tpartition p0 values less than (1990),"
|
||||
+ "\n\tpartition p1 values less than (2000),"
|
||||
+ "\n\tpartition p2 values less than maxvalue"
|
||||
+ "\n)",
|
||||
result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
@@ -34,11 +34,18 @@ public class OceanbaseHintTest_Index extends MysqlTest {
|
||||
List<SQLStatement> stmtList = parser.parseStatementList();
|
||||
SQLStatement stmt = stmtList.get(0);
|
||||
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("SELECT /*+ INDEX(t1 i1) , INDEX(t2 i2)*/ *"
|
||||
+ "\nFROM t1, t2"
|
||||
+ "\nWHERE t1.c1 = t2.c1", result);
|
||||
print(stmtList);
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("SELECT /*+ INDEX(t1 i1) , INDEX(t2 i2)*/ *"
|
||||
+ "\nFROM t1, t2"
|
||||
+ "\nWHERE t1.c1 = t2.c1", result);
|
||||
}
|
||||
{
|
||||
String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
|
||||
Assert.assertEquals("select /*+ INDEX(t1 i1) , INDEX(t2 i2)*/ *"
|
||||
+ "\nfrom t1, t2"
|
||||
+ "\nwhere t1.c1 = t2.c1", result);
|
||||
}
|
||||
|
||||
Assert.assertEquals(1, stmtList.size());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user