diff --git a/pom.xml b/pom.xml
index eea92f3ee2..3483d58905 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
-->
com.alibaba
druid
- 1.1.3-preview_11
+ 1.1.3-preview_14
jar
druid
@@ -477,9 +477,9 @@
provided
- postgresql
+ org.postgresql
postgresql
- 9.1-901-1.jdbc4
+ 42.1.4
provided
diff --git a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLCreateTableStatement.java b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLCreateTableStatement.java
index 52fd9c8660..2ece15db11 100644
--- a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLCreateTableStatement.java
+++ b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLCreateTableStatement.java
@@ -21,6 +21,7 @@ import java.util.*;
import com.alibaba.druid.sql.SQLUtils;
import com.alibaba.druid.sql.ast.*;
import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr;
+import com.alibaba.druid.sql.ast.expr.SQLMethodInvokeExpr;
import com.alibaba.druid.sql.ast.expr.SQLPropertyExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.MySqlKey;
import com.alibaba.druid.sql.dialect.mysql.ast.MySqlPrimaryKey;
@@ -235,6 +236,9 @@ public class SQLCreateTableStatement extends SQLStatementImpl implements SQLDDLS
if (column instanceof SQLIdentifierExpr
&& SQLUtils.nameEquals(columnName, ((SQLIdentifierExpr) column).getName())) {
return unique.columns.size() > 1;
+ } else if (column instanceof SQLMethodInvokeExpr
+ && SQLUtils.nameEquals(((SQLMethodInvokeExpr) column).getMethodName(), columnName)) {
+ return true;
}
} else if (element instanceof MySqlKey) {
MySqlKey unique = (MySqlKey) element;
@@ -243,6 +247,9 @@ public class SQLCreateTableStatement extends SQLStatementImpl implements SQLDDLS
if (column instanceof SQLIdentifierExpr
&& SQLUtils.nameEquals(columnName, ((SQLIdentifierExpr) column).getName())) {
return true;
+ } else if (column instanceof SQLMethodInvokeExpr
+ && SQLUtils.nameEquals(((SQLMethodInvokeExpr) column).getMethodName(), columnName)) {
+ return true;
}
}
}
@@ -265,6 +272,9 @@ public class SQLCreateTableStatement extends SQLStatementImpl implements SQLDDLS
if (column instanceof SQLIdentifierExpr
&& SQLUtils.nameEquals(columnName, ((SQLIdentifierExpr) column).getName())) {
return unique.columns.size() == 1;
+ } else if (column instanceof SQLMethodInvokeExpr
+ && SQLUtils.nameEquals(((SQLMethodInvokeExpr) column).getMethodName(), columnName)) {
+ return true;
}
}
}
diff --git a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLGrantStatement.java b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLGrantStatement.java
index 9d87f32c69..a4862e50e0 100644
--- a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLGrantStatement.java
+++ b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLGrantStatement.java
@@ -48,6 +48,9 @@ public class SQLGrantStatement extends SQLStatementImpl {
private boolean adminOption;
private SQLExpr identifiedBy;
+ private String identifiedByPassword;
+
+ private boolean withGrantOption;
@Override
protected void accept0(SQLASTVisitor visitor) {
@@ -135,4 +138,20 @@ public class SQLGrantStatement extends SQLStatementImpl {
public void setIdentifiedBy(SQLExpr identifiedBy) {
this.identifiedBy = identifiedBy;
}
+
+ public String getIdentifiedByPassword() {
+ return identifiedByPassword;
+ }
+
+ public void setIdentifiedByPassword(String identifiedByPassword) {
+ this.identifiedByPassword = identifiedByPassword;
+ }
+
+ public boolean getWithGrantOption() {
+ return withGrantOption;
+ }
+
+ public void setWithGrantOption(boolean withGrantOption) {
+ this.withGrantOption = withGrantOption;
+ }
}
diff --git a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLUnique.java b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLUnique.java
index 3de043c2ed..2066d5aac6 100644
--- a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLUnique.java
+++ b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLUnique.java
@@ -22,6 +22,7 @@ import com.alibaba.druid.sql.SQLUtils;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr;
+import com.alibaba.druid.sql.ast.expr.SQLMethodInvokeExpr;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLUnique extends SQLConstraintImpl implements SQLUniqueConstraint, SQLTableElement {
@@ -122,6 +123,12 @@ public class SQLUnique extends SQLConstraintImpl implements SQLUniqueConstraint,
columns.remove(i);
return true;
}
+
+ if (expr instanceof SQLMethodInvokeExpr
+ && SQLUtils.nameEquals(((SQLMethodInvokeExpr) expr).getMethodName(), columnName.getSimpleName())) {
+ columns.remove(i);
+ return true;
+ }
}
return false;
}
diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/statement/MySqlCreateTableStatement.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/statement/MySqlCreateTableStatement.java
index b5dd86e7c3..929ab8c4df 100644
--- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/statement/MySqlCreateTableStatement.java
+++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/statement/MySqlCreateTableStatement.java
@@ -215,15 +215,16 @@ public class MySqlCreateTableStatement extends SQLCreateTableStatement implement
}
public boolean apply(SQLAlterTableAddIndex item) {
- if (item.isKey()) {
- MySqlPrimaryKey x = new MySqlPrimaryKey();
+ if (item.isUnique()) {
+ MySqlUnique x = new MySqlUnique();
item.cloneTo(x);
x.setParent(this);
this.tableElementList.add(x);
return true;
}
- if (item.isUnique()) {
- MySqlUnique x = new MySqlUnique();
+
+ if (item.isKey()) {
+ MySqlKey x = new MySqlKey();
item.cloneTo(x);
x.setParent(this);
this.tableElementList.add(x);
diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/statement/MySqlRenameTableStatement.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/statement/MySqlRenameTableStatement.java
index 43732c3098..e75acb57fc 100644
--- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/statement/MySqlRenameTableStatement.java
+++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/statement/MySqlRenameTableStatement.java
@@ -19,6 +19,7 @@ import java.util.ArrayList;
import java.util.List;
import com.alibaba.druid.sql.ast.SQLExpr;
+import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.dialect.mysql.ast.MySqlObjectImpl;
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;
@@ -46,22 +47,22 @@ public class MySqlRenameTableStatement extends MySqlStatementImpl {
public static class Item extends MySqlObjectImpl {
- private SQLExpr name;
- private SQLExpr to;
+ private SQLName name;
+ private SQLName to;
- public SQLExpr getName() {
+ public SQLName getName() {
return name;
}
- public void setName(SQLExpr name) {
+ public void setName(SQLName name) {
this.name = name;
}
- public SQLExpr getTo() {
+ public SQLName getTo() {
return to;
}
- public void setTo(SQLExpr to) {
+ public void setTo(SQLName to) {
this.to = to;
}
diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/statement/MySqlTableIndex.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/statement/MySqlTableIndex.java
index 7dbd304482..f720dab0ef 100644
--- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/statement/MySqlTableIndex.java
+++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/statement/MySqlTableIndex.java
@@ -21,6 +21,7 @@ import java.util.List;
import com.alibaba.druid.sql.SQLUtils;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
+import com.alibaba.druid.sql.ast.expr.SQLMethodInvokeExpr;
import com.alibaba.druid.sql.ast.statement.SQLColumnDefinition;
import com.alibaba.druid.sql.ast.statement.SQLSelectOrderByItem;
import com.alibaba.druid.sql.ast.statement.SQLTableElement;
@@ -29,8 +30,8 @@ import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;
public class MySqlTableIndex extends MySqlObjectImpl implements SQLTableElement {
- private SQLName name;
- private String indexType;
+ private SQLName name;
+ private String indexType;
private List columns = new ArrayList();
public MySqlTableIndex(){
@@ -106,6 +107,11 @@ public class MySqlTableIndex extends MySqlObjectImpl implements SQLTableElement
columns.remove(i);
return true;
}
+ if (expr instanceof SQLMethodInvokeExpr
+ && SQLUtils.nameEquals(((SQLMethodInvokeExpr) expr).getMethodName(), columnName.getSimpleName())) {
+ columns.remove(i);
+ return true;
+ }
}
return false;
}
diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java
index 2d9d378ac0..6d0ab311ee 100644
--- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java
+++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java
@@ -785,6 +785,11 @@ public class MySqlExprParser extends SQLExprParser {
lexer.nextToken();
}
+ if (lexer.token() != Token.LPAREN) {
+ SQLName name = this.name();
+ primaryKey.setName(name);
+ }
+
accept(Token.LPAREN);
for (;;) {
primaryKey.addColumn(this.expr());
diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java
index 09df6d9aca..ed366f9f11 100644
--- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java
+++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java
@@ -2464,7 +2464,7 @@ public class MySqlStatementParser extends SQLStatementParser {
if (lexer.token() == Token.COLUMN) {
lexer.nextToken();
parseAlterTableAddColumn(stmt);
- } else if (lexer.token() == Token.INDEX) {
+ } else if (lexer.token() == Token.INDEX || identifierEquals("FULLTEXT")) {
SQLAlterTableAddIndex item = parseAlterTableAddIndex();
item.setParent(stmt);
stmt.addItem(item);
@@ -2484,31 +2484,52 @@ public class MySqlStatementParser extends SQLStatementParser {
stmt.addItem(item);
} else if (lexer.token() == Token.CONSTRAINT) {
lexer.nextToken();
- SQLName constraintName = this.exprParser.name();
if (lexer.token() == Token.PRIMARY) {
SQLPrimaryKey primaryKey = ((MySqlExprParser) this.exprParser).parsePrimaryKey();
-
- primaryKey.setName(constraintName);
-
SQLAlterTableAddConstraint item = new SQLAlterTableAddConstraint(primaryKey);
item.setParent(stmt);
stmt.addItem(item);
} else if (lexer.token() == Token.FOREIGN) {
MysqlForeignKey fk = this.getExprParser().parseForeignKey();
- fk.setName(constraintName);
fk.setHasConstraint(true);
SQLAlterTableAddConstraint item = new SQLAlterTableAddConstraint(fk);
stmt.addItem(item);
} else if (lexer.token() == Token.UNIQUE) {
+
SQLUnique unique = this.exprParser.parseUnique();
SQLAlterTableAddConstraint item = new SQLAlterTableAddConstraint(unique);
stmt.addItem(item);
} else {
- throw new ParserException("TODO " + lexer.info());
+ SQLName constraintName = this.exprParser.name();
+
+ if (lexer.token() == Token.PRIMARY) {
+ SQLPrimaryKey primaryKey = ((MySqlExprParser) this.exprParser).parsePrimaryKey();
+
+ primaryKey.setName(constraintName);
+
+ SQLAlterTableAddConstraint item = new SQLAlterTableAddConstraint(primaryKey);
+ item.setParent(stmt);
+
+ stmt.addItem(item);
+ } else if (lexer.token() == Token.FOREIGN) {
+ MysqlForeignKey fk = this.getExprParser().parseForeignKey();
+ fk.setName(constraintName);
+ fk.setHasConstraint(true);
+
+ SQLAlterTableAddConstraint item = new SQLAlterTableAddConstraint(fk);
+
+ stmt.addItem(item);
+ } else if (lexer.token() == Token.UNIQUE) {
+ SQLUnique unique = this.exprParser.parseUnique();
+ SQLAlterTableAddConstraint item = new SQLAlterTableAddConstraint(unique);
+ stmt.addItem(item);
+ } else {
+ throw new ParserException("TODO " + lexer.info());
+ }
}
} else if (lexer.token() == Token.PARTITION) {
lexer.nextToken();
@@ -2647,7 +2668,7 @@ public class MySqlStatementParser extends SQLStatementParser {
}
MySqlRenameTableStatement renameStmt = new MySqlRenameTableStatement();
MySqlRenameTableStatement.Item item = new MySqlRenameTableStatement.Item();
- item.setName(stmt.getTableSource().getExpr());
+ item.setName((SQLName) stmt.getTableSource().getExpr());
item.setTo(this.exprParser.name());
renameStmt.addItem(item);
diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlOutputVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlOutputVisitor.java
index a406f6774b..35974d92e9 100644
--- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlOutputVisitor.java
+++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlOutputVisitor.java
@@ -458,15 +458,21 @@ public class MySqlOutputVisitor extends SQLASTOutputVisitor implements MySqlASTV
@Override
public boolean visit(MySqlTableIndex x) {
+ String indexType = x.getIndexType();
+
+ if ("FULLTEXT".equalsIgnoreCase(indexType)) {
+ print0(ucase ? "FULLTEXT " : "fulltext ");
+ }
+
print0(ucase ? "INDEX" : "index");
if (x.getName() != null) {
print(' ');
x.getName().accept(this);
}
- if (x.getIndexType() != null) {
+ if (indexType != null && !"FULLTEXT".equalsIgnoreCase(indexType)) {
print0(ucase ? " USING " : " using ");
- print0(x.getIndexType());
+ print0(indexType);
}
print('(');
diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlShowColumnOutpuVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlShowColumnOutpuVisitor.java
index db5da616b7..c034b5bbd3 100644
--- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlShowColumnOutpuVisitor.java
+++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlShowColumnOutpuVisitor.java
@@ -133,9 +133,9 @@ public class MySqlShowColumnOutpuVisitor extends MySqlOutputVisitor {
print(" | ");
if (column.containsNotNullConstaint()) {
- print("YES");
- } else {
print("NO ");
+ } else {
+ print("YES");
}
print(" | ");
diff --git a/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java b/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java
index 48be41c963..f63b5a12eb 100644
--- a/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java
+++ b/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java
@@ -613,7 +613,24 @@ public class SQLStatementParser extends SQLParser {
if (lexer.token() == Token.IDENTIFIED) {
lexer.nextToken();
accept(Token.BY);
- stmt.setIdentifiedBy(this.exprParser.expr());
+
+ if (identifierEquals("PASSWORD")) {
+ lexer.nextToken();
+ String password = lexer.stringVal();
+ accept(Token.LITERAL_CHARS);
+ stmt.setIdentifiedByPassword(password);
+ } else {
+ stmt.setIdentifiedBy(this.exprParser.expr());
+ }
+ }
+
+ if (lexer.token() == Token.WITH) {
+ lexer.nextToken();
+ if (lexer.token() == Token.GRANT) {
+ lexer.nextToken();
+ acceptIdentifier("OPTION");
+ stmt.setWithGrantOption(true);
+ }
}
return stmt;
@@ -626,6 +643,7 @@ public class SQLStatementParser extends SQLParser {
lexer.nextToken();
if (identifierEquals("PRIVILEGES")) {
privilege = "ALL PRIVILEGES";
+ lexer.nextToken();
} else {
privilege = "ALL";
}
@@ -2403,6 +2421,11 @@ public class SQLStatementParser extends SQLParser {
protected SQLAlterTableAddIndex parseAlterTableAddIndex() {
SQLAlterTableAddIndex item = new SQLAlterTableAddIndex();
+ if (identifierEquals("FULLTEXT")) {
+ lexer.nextToken();
+ item.setType("FULLTEXT");
+ }
+
if (lexer.token() == Token.UNIQUE) {
item.setUnique(true);
lexer.nextToken();
diff --git a/src/main/java/com/alibaba/druid/sql/repository/SchemaRepository.java b/src/main/java/com/alibaba/druid/sql/repository/SchemaRepository.java
index 4e5693135d..574cf405d4 100644
--- a/src/main/java/com/alibaba/druid/sql/repository/SchemaRepository.java
+++ b/src/main/java/com/alibaba/druid/sql/repository/SchemaRepository.java
@@ -22,10 +22,7 @@ import com.alibaba.druid.sql.ast.expr.SQLAllColumnExpr;
import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr;
import com.alibaba.druid.sql.ast.expr.SQLPropertyExpr;
import com.alibaba.druid.sql.ast.statement.*;
-import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlCreateTableStatement;
-import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectQueryBlock;
-import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlShowColumnsStatement;
-import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlShowCreateTableStatement;
+import com.alibaba.druid.sql.dialect.mysql.ast.statement.*;
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitorAdapter;
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleCreateTableStatement;
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelectQueryBlock;
@@ -283,8 +280,17 @@ public class SchemaRepository {
MySqlShowCreateTableStatement showCreateTableStmt = (MySqlShowCreateTableStatement) stmt;
SQLName table = showCreateTableStmt.getName();
SchemaObject schemaObject = findTable(table);
- MySqlCreateTableStatement createTableStmt = (MySqlCreateTableStatement) schemaObject.getStatement();
- createTableStmt.output(buf);
+ if (schemaObject == null) {
+ buf.append("ERROR 1146 (42S02): Table '" + table + "' doesn't exist\n");
+ } else {
+ MySqlCreateTableStatement createTableStmt = (MySqlCreateTableStatement) schemaObject.getStatement();
+ createTableStmt.output(buf);
+ }
+ } else if (stmt instanceof MySqlRenameTableStatement) {
+ MySqlRenameTableStatement renameStmt = (MySqlRenameTableStatement) stmt;
+ for (MySqlRenameTableStatement.Item item : renameStmt.getItems()) {
+ renameTable(item.getName(), item.getTo());
+ }
} else if (stmt instanceof SQLShowTablesStatement) {
SQLShowTablesStatement showTables = (SQLShowTablesStatement) stmt;
SQLName database = showTables.getDatabase();
@@ -337,6 +343,36 @@ public class SchemaRepository {
return null;
}
+ private boolean renameTable(SQLName name, SQLName to) {
+ Schema schema;
+ if (name instanceof SQLPropertyExpr) {
+ String schemaName = ((SQLPropertyExpr) name).getOwnernName();
+ schema = findSchema(schemaName);
+ } else {
+ schema = getDefaultSchema();
+ }
+
+ if (schema == null) {
+ return false;
+ }
+
+ String tableName = name.getSimpleName();
+ SchemaObject schemaObject = schema.findTable(tableName);
+ if (schemaObject != null) {
+ MySqlCreateTableStatement createTableStmt = (MySqlCreateTableStatement) schemaObject.getStatement();
+ if (createTableStmt != null) {
+ createTableStmt.setName(to.clone());
+ }
+
+ String toName = SQLUtils.normalize(to.getSimpleName()).toLowerCase();
+ schema.objects.put(toName, schemaObject);
+
+ String name_lower = SQLUtils.normalize(tableName).toLowerCase();
+ schema.objects.remove(name_lower);
+ }
+ return true;
+ }
+
private class MySqlResolveVisitor extends MySqlASTVisitorAdapter implements SchemaResolveVisitor {
private int options;
diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/select/MySqlCreateTable_showColumns_repository_test.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/select/MySqlCreateTable_showColumns_repository_test.java
index 565c14b7ef..42ff855097 100644
--- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/select/MySqlCreateTable_showColumns_repository_test.java
+++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/select/MySqlCreateTable_showColumns_repository_test.java
@@ -65,23 +65,23 @@ public class MySqlCreateTable_showColumns_repository_test extends MysqlTest {
assertEquals("+--------------+---------------+------+-----+---------------------+-----------------------------+\n" +
"| Field | Type | Null | Key | Default | Extra |\n" +
"+--------------+---------------+------+-----+---------------------+-----------------------------+\n" +
- "| id | bigint(20) | YES | PRI | NULL | auto_increment |\n" +
- "| c_tinyint | tinyint(4) | NO | PRI | 1 | |\n" +
- "| c_smallint | smallint(6) | NO | | 0 | |\n" +
- "| c_mediumint | mediumint(9) | NO | | NULL | |\n" +
- "| c_int | int(11) | NO | | NULL | |\n" +
- "| c_bigint | bigint(20) | NO | | NULL | |\n" +
- "| c_decimal | decimal(10,3) | NO | | NULL | |\n" +
- "| c_date | date | NO | | 0000-00-00 | |\n" +
- "| c_datetime | datetime | NO | | 0000-00-00 00:00:00 | |\n" +
- "| c_timestamp | timestamp | NO | | NULL | on update CURRENT_TIMESTAMP |\n" +
- "| c_time | time | NO | | NULL | |\n" +
- "| c_char | char(10) | NO | MUL | NULL | |\n" +
- "| c_varchar | varchar(10) | NO | MUL | hello | |\n" +
- "| c_blob | blob | NO | | NULL | |\n" +
- "| c_text | text | NO | | NULL | |\n" +
- "| c_mediumtext | mediumtext | NO | | NULL | |\n" +
- "| c_longblob | longblob | NO | | NULL | |\n" +
+ "| id | bigint(20) | NO | PRI | NULL | auto_increment |\n" +
+ "| c_tinyint | tinyint(4) | YES | PRI | 1 | |\n" +
+ "| c_smallint | smallint(6) | YES | | 0 | |\n" +
+ "| c_mediumint | mediumint(9) | YES | | NULL | |\n" +
+ "| c_int | int(11) | YES | | NULL | |\n" +
+ "| c_bigint | bigint(20) | YES | | NULL | |\n" +
+ "| c_decimal | decimal(10,3) | YES | | NULL | |\n" +
+ "| c_date | date | YES | | 0000-00-00 | |\n" +
+ "| c_datetime | datetime | YES | | 0000-00-00 00:00:00 | |\n" +
+ "| c_timestamp | timestamp | YES | | NULL | on update CURRENT_TIMESTAMP |\n" +
+ "| c_time | time | YES | | NULL | |\n" +
+ "| c_char | char(10) | YES | MUL | NULL | |\n" +
+ "| c_varchar | varchar(10) | YES | MUL | hello | |\n" +
+ "| c_blob | blob | YES | | NULL | |\n" +
+ "| c_text | text | YES | | NULL | |\n" +
+ "| c_mediumtext | mediumtext | YES | | NULL | |\n" +
+ "| c_longblob | longblob | YES | | NULL | |\n" +
"+--------------+---------------+------+-----+---------------------+-----------------------------+\n", repository.console("show columns from test1"));
repository.console("alter table test1 drop column c_decimal;");
@@ -90,22 +90,22 @@ public class MySqlCreateTable_showColumns_repository_test extends MysqlTest {
assertEquals("+--------------+--------------+------+-----+---------------------+-----------------------------+\n" +
"| Field | Type | Null | Key | Default | Extra |\n" +
"+--------------+--------------+------+-----+---------------------+-----------------------------+\n" +
- "| id | bigint(20) | YES | PRI | NULL | auto_increment |\n" +
- "| c_tinyint | tinyint(4) | NO | PRI | 1 | |\n" +
- "| c_smallint | smallint(6) | NO | | 0 | |\n" +
- "| c_mediumint | mediumint(9) | NO | | NULL | |\n" +
- "| c_int | int(11) | NO | | NULL | |\n" +
- "| c_bigint | bigint(20) | NO | | NULL | |\n" +
- "| c_date | date | NO | | 0000-00-00 | |\n" +
- "| c_datetime | datetime | NO | | 0000-00-00 00:00:00 | |\n" +
- "| c_timestamp | timestamp | NO | | NULL | on update CURRENT_TIMESTAMP |\n" +
- "| c_time | time | NO | | NULL | |\n" +
- "| c_char | char(10) | NO | MUL | NULL | |\n" +
- "| c_varchar | varchar(10) | NO | MUL | hello | |\n" +
- "| c_blob | blob | NO | | NULL | |\n" +
- "| c_text | text | NO | | NULL | |\n" +
- "| c_mediumtext | mediumtext | NO | | NULL | |\n" +
- "| c_longblob | longblob | NO | | NULL | |\n" +
+ "| id | bigint(20) | NO | PRI | NULL | auto_increment |\n" +
+ "| c_tinyint | tinyint(4) | YES | PRI | 1 | |\n" +
+ "| c_smallint | smallint(6) | YES | | 0 | |\n" +
+ "| c_mediumint | mediumint(9) | YES | | NULL | |\n" +
+ "| c_int | int(11) | YES | | NULL | |\n" +
+ "| c_bigint | bigint(20) | YES | | NULL | |\n" +
+ "| c_date | date | YES | | 0000-00-00 | |\n" +
+ "| c_datetime | datetime | YES | | 0000-00-00 00:00:00 | |\n" +
+ "| c_timestamp | timestamp | YES | | NULL | on update CURRENT_TIMESTAMP |\n" +
+ "| c_time | time | YES | | NULL | |\n" +
+ "| c_char | char(10) | YES | MUL | NULL | |\n" +
+ "| c_varchar | varchar(10) | YES | MUL | hello | |\n" +
+ "| c_blob | blob | YES | | NULL | |\n" +
+ "| c_text | text | YES | | NULL | |\n" +
+ "| c_mediumtext | mediumtext | YES | | NULL | |\n" +
+ "| c_longblob | longblob | YES | | NULL | |\n" +
"+--------------+--------------+------+-----+---------------------+-----------------------------+\n", repository.console("show columns from test1"));
repository.console("alter table test1 add column c_decimal decimal(10,3) DEFAULT NULL COMMENT 'decimal';");
@@ -114,23 +114,23 @@ public class MySqlCreateTable_showColumns_repository_test extends MysqlTest {
assertEquals("+--------------+---------------+------+-----+---------------------+-----------------------------+\n" +
"| Field | Type | Null | Key | Default | Extra |\n" +
"+--------------+---------------+------+-----+---------------------+-----------------------------+\n" +
- "| id | bigint(20) | YES | PRI | NULL | auto_increment |\n" +
- "| c_tinyint | tinyint(4) | NO | PRI | 1 | |\n" +
- "| c_smallint | smallint(6) | NO | | 0 | |\n" +
- "| c_mediumint | mediumint(9) | NO | | NULL | |\n" +
- "| c_int | int(11) | NO | | NULL | |\n" +
- "| c_bigint | bigint(20) | NO | | NULL | |\n" +
- "| c_date | date | NO | | 0000-00-00 | |\n" +
- "| c_datetime | datetime | NO | | 0000-00-00 00:00:00 | |\n" +
- "| c_timestamp | timestamp | NO | | NULL | on update CURRENT_TIMESTAMP |\n" +
- "| c_time | time | NO | | NULL | |\n" +
- "| c_char | char(10) | NO | MUL | NULL | |\n" +
- "| c_varchar | varchar(10) | NO | MUL | hello | |\n" +
- "| c_blob | blob | NO | | NULL | |\n" +
- "| c_text | text | NO | | NULL | |\n" +
- "| c_mediumtext | mediumtext | NO | | NULL | |\n" +
- "| c_longblob | longblob | NO | | NULL | |\n" +
- "| c_decimal | decimal(10,3) | NO | | NULL | |\n" +
+ "| id | bigint(20) | NO | PRI | NULL | auto_increment |\n" +
+ "| c_tinyint | tinyint(4) | YES | PRI | 1 | |\n" +
+ "| c_smallint | smallint(6) | YES | | 0 | |\n" +
+ "| c_mediumint | mediumint(9) | YES | | NULL | |\n" +
+ "| c_int | int(11) | YES | | NULL | |\n" +
+ "| c_bigint | bigint(20) | YES | | NULL | |\n" +
+ "| c_date | date | YES | | 0000-00-00 | |\n" +
+ "| c_datetime | datetime | YES | | 0000-00-00 00:00:00 | |\n" +
+ "| c_timestamp | timestamp | YES | | NULL | on update CURRENT_TIMESTAMP |\n" +
+ "| c_time | time | YES | | NULL | |\n" +
+ "| c_char | char(10) | YES | MUL | NULL | |\n" +
+ "| c_varchar | varchar(10) | YES | MUL | hello | |\n" +
+ "| c_blob | blob | YES | | NULL | |\n" +
+ "| c_text | text | YES | | NULL | |\n" +
+ "| c_mediumtext | mediumtext | YES | | NULL | |\n" +
+ "| c_longblob | longblob | YES | | NULL | |\n" +
+ "| c_decimal | decimal(10,3) | YES | | NULL | |\n" +
"+--------------+---------------+------+-----+---------------------+-----------------------------+\n", repository.console("show columns from test1"));
repository.console("ALTER TABLE test1 CHANGE COLUMN c_decimal c_decimal_1 INT(11) NOT NULL DEFAULT NULL FIRST id;");
@@ -140,23 +140,23 @@ public class MySqlCreateTable_showColumns_repository_test extends MysqlTest {
assertEquals("+--------------+--------------+------+-----+---------------------+-----------------------------+\n" +
"| Field | Type | Null | Key | Default | Extra |\n" +
"+--------------+--------------+------+-----+---------------------+-----------------------------+\n" +
- "| c_decimal_1 | INT(11) | YES | | NULL | |\n" +
- "| id | bigint(20) | YES | PRI | NULL | auto_increment |\n" +
- "| c_tinyint | tinyint(4) | NO | PRI | 1 | |\n" +
- "| c_smallint | smallint(6) | NO | | 0 | |\n" +
- "| c_mediumint | mediumint(9) | NO | | NULL | |\n" +
- "| c_int | int(11) | NO | | NULL | |\n" +
- "| c_bigint | bigint(20) | NO | | NULL | |\n" +
- "| c_date | date | NO | | 0000-00-00 | |\n" +
- "| c_datetime | datetime | NO | | 0000-00-00 00:00:00 | |\n" +
- "| c_timestamp | timestamp | NO | | NULL | on update CURRENT_TIMESTAMP |\n" +
- "| c_time | time | NO | | NULL | |\n" +
- "| c_char | char(10) | NO | MUL | NULL | |\n" +
- "| c_varchar | varchar(10) | NO | MUL | hello | |\n" +
- "| c_blob | blob | NO | | NULL | |\n" +
- "| c_text | text | NO | | NULL | |\n" +
- "| c_mediumtext | mediumtext | NO | | NULL | |\n" +
- "| c_longblob | longblob | NO | | NULL | |\n" +
+ "| c_decimal_1 | INT(11) | NO | | NULL | |\n" +
+ "| id | bigint(20) | NO | PRI | NULL | auto_increment |\n" +
+ "| c_tinyint | tinyint(4) | YES | PRI | 1 | |\n" +
+ "| c_smallint | smallint(6) | YES | | 0 | |\n" +
+ "| c_mediumint | mediumint(9) | YES | | NULL | |\n" +
+ "| c_int | int(11) | YES | | NULL | |\n" +
+ "| c_bigint | bigint(20) | YES | | NULL | |\n" +
+ "| c_date | date | YES | | 0000-00-00 | |\n" +
+ "| c_datetime | datetime | YES | | 0000-00-00 00:00:00 | |\n" +
+ "| c_timestamp | timestamp | YES | | NULL | on update CURRENT_TIMESTAMP |\n" +
+ "| c_time | time | YES | | NULL | |\n" +
+ "| c_char | char(10) | YES | MUL | NULL | |\n" +
+ "| c_varchar | varchar(10) | YES | MUL | hello | |\n" +
+ "| c_blob | blob | YES | | NULL | |\n" +
+ "| c_text | text | YES | | NULL | |\n" +
+ "| c_mediumtext | mediumtext | YES | | NULL | |\n" +
+ "| c_longblob | longblob | YES | | NULL | |\n" +
"+--------------+--------------+------+-----+---------------------+-----------------------------+\n", repository.console("show columns from test1"));
repository.console("ALTER TABLE test1 DROP PRIMARY KEY;");
@@ -189,23 +189,23 @@ public class MySqlCreateTable_showColumns_repository_test extends MysqlTest {
assertEquals("+--------------+--------------+------+-----+---------------------+-----------------------------+\n" +
"| Field | Type | Null | Key | Default | Extra |\n" +
"+--------------+--------------+------+-----+---------------------+-----------------------------+\n" +
- "| c_decimal_1 | INT(11) | YES | | NULL | |\n" +
- "| id | bigint(20) | YES | | NULL | auto_increment |\n" +
- "| c_tinyint | tinyint(4) | NO | MUL | 1 | |\n" +
- "| c_smallint | smallint(6) | NO | | 0 | |\n" +
- "| c_mediumint | mediumint(9) | NO | | NULL | |\n" +
- "| c_int | int(11) | NO | | NULL | |\n" +
- "| c_bigint | bigint(20) | NO | | NULL | |\n" +
- "| c_date | date | NO | | 0000-00-00 | |\n" +
- "| c_datetime | datetime | NO | | 0000-00-00 00:00:00 | |\n" +
- "| c_timestamp | timestamp | NO | | NULL | on update CURRENT_TIMESTAMP |\n" +
- "| c_time | time | NO | | NULL | |\n" +
- "| c_char | char(10) | NO | MUL | NULL | |\n" +
- "| c_varchar | varchar(10) | NO | MUL | hello | |\n" +
- "| c_blob | blob | NO | | NULL | |\n" +
- "| c_text | text | NO | | NULL | |\n" +
- "| c_mediumtext | mediumtext | NO | | NULL | |\n" +
- "| c_longblob | longblob | NO | | NULL | |\n" +
+ "| c_decimal_1 | INT(11) | NO | | NULL | |\n" +
+ "| id | bigint(20) | NO | | NULL | auto_increment |\n" +
+ "| c_tinyint | tinyint(4) | YES | MUL | 1 | |\n" +
+ "| c_smallint | smallint(6) | YES | | 0 | |\n" +
+ "| c_mediumint | mediumint(9) | YES | | NULL | |\n" +
+ "| c_int | int(11) | YES | | NULL | |\n" +
+ "| c_bigint | bigint(20) | YES | | NULL | |\n" +
+ "| c_date | date | YES | | 0000-00-00 | |\n" +
+ "| c_datetime | datetime | YES | | 0000-00-00 00:00:00 | |\n" +
+ "| c_timestamp | timestamp | YES | | NULL | on update CURRENT_TIMESTAMP |\n" +
+ "| c_time | time | YES | | NULL | |\n" +
+ "| c_char | char(10) | YES | MUL | NULL | |\n" +
+ "| c_varchar | varchar(10) | YES | MUL | hello | |\n" +
+ "| c_blob | blob | YES | | NULL | |\n" +
+ "| c_text | text | YES | | NULL | |\n" +
+ "| c_mediumtext | mediumtext | YES | | NULL | |\n" +
+ "| c_longblob | longblob | YES | | NULL | |\n" +
"+--------------+--------------+------+-----+---------------------+-----------------------------+\n", repository.console("show columns from test1"));
repository.console("ALTER TABLE test1 DROP INDEX k_d;");
@@ -236,23 +236,23 @@ public class MySqlCreateTable_showColumns_repository_test extends MysqlTest {
assertEquals("+--------------+--------------+------+-----+---------------------+-----------------------------+\n" +
"| Field | Type | Null | Key | Default | Extra |\n" +
"+--------------+--------------+------+-----+---------------------+-----------------------------+\n" +
- "| c_decimal_1 | INT(11) | YES | | NULL | |\n" +
- "| id | bigint(20) | YES | | NULL | auto_increment |\n" +
- "| c_tinyint | tinyint(4) | NO | MUL | 1 | |\n" +
- "| c_smallint | smallint(6) | NO | | 0 | |\n" +
- "| c_mediumint | mediumint(9) | NO | | NULL | |\n" +
- "| c_int | int(11) | NO | | NULL | |\n" +
- "| c_bigint | bigint(20) | NO | | NULL | |\n" +
- "| c_date | date | NO | | 0000-00-00 | |\n" +
- "| c_datetime | datetime | NO | | 0000-00-00 00:00:00 | |\n" +
- "| c_timestamp | timestamp | NO | | NULL | on update CURRENT_TIMESTAMP |\n" +
- "| c_time | time | NO | | NULL | |\n" +
- "| c_char | char(10) | NO | | NULL | |\n" +
- "| c_varchar | varchar(10) | NO | MUL | hello | |\n" +
- "| c_blob | blob | NO | | NULL | |\n" +
- "| c_text | text | NO | | NULL | |\n" +
- "| c_mediumtext | mediumtext | NO | | NULL | |\n" +
- "| c_longblob | longblob | NO | | NULL | |\n" +
+ "| c_decimal_1 | INT(11) | NO | | NULL | |\n" +
+ "| id | bigint(20) | NO | | NULL | auto_increment |\n" +
+ "| c_tinyint | tinyint(4) | YES | MUL | 1 | |\n" +
+ "| c_smallint | smallint(6) | YES | | 0 | |\n" +
+ "| c_mediumint | mediumint(9) | YES | | NULL | |\n" +
+ "| c_int | int(11) | YES | | NULL | |\n" +
+ "| c_bigint | bigint(20) | YES | | NULL | |\n" +
+ "| c_date | date | YES | | 0000-00-00 | |\n" +
+ "| c_datetime | datetime | YES | | 0000-00-00 00:00:00 | |\n" +
+ "| c_timestamp | timestamp | YES | | NULL | on update CURRENT_TIMESTAMP |\n" +
+ "| c_time | time | YES | | NULL | |\n" +
+ "| c_char | char(10) | YES | | NULL | |\n" +
+ "| c_varchar | varchar(10) | YES | MUL | hello | |\n" +
+ "| c_blob | blob | YES | | NULL | |\n" +
+ "| c_text | text | YES | | NULL | |\n" +
+ "| c_mediumtext | mediumtext | YES | | NULL | |\n" +
+ "| c_longblob | longblob | YES | | NULL | |\n" +
"+--------------+--------------+------+-----+---------------------+-----------------------------+\n", repository.console("show columns from test1"));
@@ -283,23 +283,23 @@ public class MySqlCreateTable_showColumns_repository_test extends MysqlTest {
assertEquals("+--------------+--------------+------+-----+---------------------+-----------------------------+\n" +
"| Field | Type | Null | Key | Default | Extra |\n" +
"+--------------+--------------+------+-----+---------------------+-----------------------------+\n" +
- "| c_decimal_1 | INT(11) | YES | | NULL | |\n" +
- "| id | bigint(20) | YES | | NULL | auto_increment |\n" +
- "| c_tinyint | tinyint(4) | NO | MUL | 1 | |\n" +
- "| c_smallint | smallint(6) | NO | | 0 | |\n" +
- "| c_mediumint | mediumint(9) | NO | | NULL | |\n" +
- "| c_int | int(11) | NO | | NULL | |\n" +
- "| c_bigint | bigint(20) | NO | | NULL | |\n" +
- "| c_date | date | NO | | 0000-00-00 | |\n" +
- "| c_datetime | datetime | NO | | 0000-00-00 00:00:00 | |\n" +
- "| c_timestamp | timestamp | NO | | NULL | on update CURRENT_TIMESTAMP |\n" +
- "| c_time | time | NO | | NULL | |\n" +
- "| c_char | char(10) | NO | | NULL | |\n" +
- "| c_varchar | varchar(10) | NO | | hello | |\n" +
- "| c_blob | blob | NO | | NULL | |\n" +
- "| c_text | text | NO | | NULL | |\n" +
- "| c_mediumtext | mediumtext | NO | | NULL | |\n" +
- "| c_longblob | longblob | NO | | NULL | |\n" +
+ "| c_decimal_1 | INT(11) | NO | | NULL | |\n" +
+ "| id | bigint(20) | NO | | NULL | auto_increment |\n" +
+ "| c_tinyint | tinyint(4) | YES | MUL | 1 | |\n" +
+ "| c_smallint | smallint(6) | YES | | 0 | |\n" +
+ "| c_mediumint | mediumint(9) | YES | | NULL | |\n" +
+ "| c_int | int(11) | YES | | NULL | |\n" +
+ "| c_bigint | bigint(20) | YES | | NULL | |\n" +
+ "| c_date | date | YES | | 0000-00-00 | |\n" +
+ "| c_datetime | datetime | YES | | 0000-00-00 00:00:00 | |\n" +
+ "| c_timestamp | timestamp | YES | | NULL | on update CURRENT_TIMESTAMP |\n" +
+ "| c_time | time | YES | | NULL | |\n" +
+ "| c_char | char(10) | YES | | NULL | |\n" +
+ "| c_varchar | varchar(10) | YES | | hello | |\n" +
+ "| c_blob | blob | YES | | NULL | |\n" +
+ "| c_text | text | YES | | NULL | |\n" +
+ "| c_mediumtext | mediumtext | YES | | NULL | |\n" +
+ "| c_longblob | longblob | YES | | NULL | |\n" +
"+--------------+--------------+------+-----+---------------------+-----------------------------+\n", repository.console("show columns from test1"));
repository.console("CREATE TABLE test2 like test1");
@@ -349,23 +349,23 @@ public class MySqlCreateTable_showColumns_repository_test extends MysqlTest {
assertEquals("+--------------+--------------+------+-----+---------+-------+\n" +
"| Field | Type | Null | Key | Default | Extra |\n" +
"+--------------+--------------+------+-----+---------+-------+\n" +
- "| c_decimal_1 | INT(11) | NO | | NULL | |\n" +
- "| id | bigint(20) | NO | | NULL | |\n" +
- "| c_tinyint | tinyint(4) | NO | | NULL | |\n" +
- "| c_smallint | smallint(6) | NO | | NULL | |\n" +
- "| c_mediumint | mediumint(9) | NO | | NULL | |\n" +
- "| c_int | int(11) | NO | | NULL | |\n" +
- "| c_bigint | bigint(20) | NO | | NULL | |\n" +
- "| c_date | date | NO | | NULL | |\n" +
- "| c_datetime | datetime | NO | | NULL | |\n" +
- "| c_timestamp | timestamp | NO | | NULL | |\n" +
- "| c_time | time | NO | | NULL | |\n" +
- "| c_char | char(10) | NO | | NULL | |\n" +
- "| c_varchar | varchar(10) | NO | | NULL | |\n" +
- "| c_blob | blob | NO | | NULL | |\n" +
- "| c_text | text | NO | | NULL | |\n" +
- "| c_mediumtext | mediumtext | NO | | NULL | |\n" +
- "| c_longblob | longblob | NO | | NULL | |\n" +
+ "| c_decimal_1 | INT(11) | YES | | NULL | |\n" +
+ "| id | bigint(20) | YES | | NULL | |\n" +
+ "| c_tinyint | tinyint(4) | YES | | NULL | |\n" +
+ "| c_smallint | smallint(6) | YES | | NULL | |\n" +
+ "| c_mediumint | mediumint(9) | YES | | NULL | |\n" +
+ "| c_int | int(11) | YES | | NULL | |\n" +
+ "| c_bigint | bigint(20) | YES | | NULL | |\n" +
+ "| c_date | date | YES | | NULL | |\n" +
+ "| c_datetime | datetime | YES | | NULL | |\n" +
+ "| c_timestamp | timestamp | YES | | NULL | |\n" +
+ "| c_time | time | YES | | NULL | |\n" +
+ "| c_char | char(10) | YES | | NULL | |\n" +
+ "| c_varchar | varchar(10) | YES | | NULL | |\n" +
+ "| c_blob | blob | YES | | NULL | |\n" +
+ "| c_text | text | YES | | NULL | |\n" +
+ "| c_mediumtext | mediumtext | YES | | NULL | |\n" +
+ "| c_longblob | longblob | YES | | NULL | |\n" +
"+--------------+--------------+------+-----+---------+-------+\n", repository.console("show columns from test3"));
repository.console("alter TABLE test3 add UNIQUE(c_tinyint)");
@@ -373,23 +373,23 @@ public class MySqlCreateTable_showColumns_repository_test extends MysqlTest {
assertEquals("+--------------+--------------+------+-----+---------+-------+\n" +
"| Field | Type | Null | Key | Default | Extra |\n" +
"+--------------+--------------+------+-----+---------+-------+\n" +
- "| c_decimal_1 | INT(11) | NO | | NULL | |\n" +
- "| id | bigint(20) | NO | | NULL | |\n" +
- "| c_tinyint | tinyint(4) | NO | UNI | NULL | |\n" +
- "| c_smallint | smallint(6) | NO | | NULL | |\n" +
- "| c_mediumint | mediumint(9) | NO | | NULL | |\n" +
- "| c_int | int(11) | NO | | NULL | |\n" +
- "| c_bigint | bigint(20) | NO | | NULL | |\n" +
- "| c_date | date | NO | | NULL | |\n" +
- "| c_datetime | datetime | NO | | NULL | |\n" +
- "| c_timestamp | timestamp | NO | | NULL | |\n" +
- "| c_time | time | NO | | NULL | |\n" +
- "| c_char | char(10) | NO | | NULL | |\n" +
- "| c_varchar | varchar(10) | NO | | NULL | |\n" +
- "| c_blob | blob | NO | | NULL | |\n" +
- "| c_text | text | NO | | NULL | |\n" +
- "| c_mediumtext | mediumtext | NO | | NULL | |\n" +
- "| c_longblob | longblob | NO | | NULL | |\n" +
+ "| c_decimal_1 | INT(11) | YES | | NULL | |\n" +
+ "| id | bigint(20) | YES | | NULL | |\n" +
+ "| c_tinyint | tinyint(4) | YES | UNI | NULL | |\n" +
+ "| c_smallint | smallint(6) | YES | | NULL | |\n" +
+ "| c_mediumint | mediumint(9) | YES | | NULL | |\n" +
+ "| c_int | int(11) | YES | | NULL | |\n" +
+ "| c_bigint | bigint(20) | YES | | NULL | |\n" +
+ "| c_date | date | YES | | NULL | |\n" +
+ "| c_datetime | datetime | YES | | NULL | |\n" +
+ "| c_timestamp | timestamp | YES | | NULL | |\n" +
+ "| c_time | time | YES | | NULL | |\n" +
+ "| c_char | char(10) | YES | | NULL | |\n" +
+ "| c_varchar | varchar(10) | YES | | NULL | |\n" +
+ "| c_blob | blob | YES | | NULL | |\n" +
+ "| c_text | text | YES | | NULL | |\n" +
+ "| c_mediumtext | mediumtext | YES | | NULL | |\n" +
+ "| c_longblob | longblob | YES | | NULL | |\n" +
"+--------------+--------------+------+-----+---------+-------+\n", repository.console("show columns from test3"));
repository.console("alter TABLE test3 add PRIMARY KEY(id)");
@@ -397,23 +397,23 @@ public class MySqlCreateTable_showColumns_repository_test extends MysqlTest {
assertEquals("+--------------+--------------+------+-----+---------+-------+\n" +
"| Field | Type | Null | Key | Default | Extra |\n" +
"+--------------+--------------+------+-----+---------+-------+\n" +
- "| c_decimal_1 | INT(11) | NO | | NULL | |\n" +
- "| id | bigint(20) | NO | PRI | NULL | |\n" +
- "| c_tinyint | tinyint(4) | NO | UNI | NULL | |\n" +
- "| c_smallint | smallint(6) | NO | | NULL | |\n" +
- "| c_mediumint | mediumint(9) | NO | | NULL | |\n" +
- "| c_int | int(11) | NO | | NULL | |\n" +
- "| c_bigint | bigint(20) | NO | | NULL | |\n" +
- "| c_date | date | NO | | NULL | |\n" +
- "| c_datetime | datetime | NO | | NULL | |\n" +
- "| c_timestamp | timestamp | NO | | NULL | |\n" +
- "| c_time | time | NO | | NULL | |\n" +
- "| c_char | char(10) | NO | | NULL | |\n" +
- "| c_varchar | varchar(10) | NO | | NULL | |\n" +
- "| c_blob | blob | NO | | NULL | |\n" +
- "| c_text | text | NO | | NULL | |\n" +
- "| c_mediumtext | mediumtext | NO | | NULL | |\n" +
- "| c_longblob | longblob | NO | | NULL | |\n" +
+ "| c_decimal_1 | INT(11) | YES | | NULL | |\n" +
+ "| id | bigint(20) | YES | PRI | NULL | |\n" +
+ "| c_tinyint | tinyint(4) | YES | UNI | NULL | |\n" +
+ "| c_smallint | smallint(6) | YES | | NULL | |\n" +
+ "| c_mediumint | mediumint(9) | YES | | NULL | |\n" +
+ "| c_int | int(11) | YES | | NULL | |\n" +
+ "| c_bigint | bigint(20) | YES | | NULL | |\n" +
+ "| c_date | date | YES | | NULL | |\n" +
+ "| c_datetime | datetime | YES | | NULL | |\n" +
+ "| c_timestamp | timestamp | YES | | NULL | |\n" +
+ "| c_time | time | YES | | NULL | |\n" +
+ "| c_char | char(10) | YES | | NULL | |\n" +
+ "| c_varchar | varchar(10) | YES | | NULL | |\n" +
+ "| c_blob | blob | YES | | NULL | |\n" +
+ "| c_text | text | YES | | NULL | |\n" +
+ "| c_mediumtext | mediumtext | YES | | NULL | |\n" +
+ "| c_longblob | longblob | YES | | NULL | |\n" +
"+--------------+--------------+------+-----+---------+-------+\n", repository.console("show columns from test3"));
repository.console("CREATE TABLE test4 as select a.* from test2 a");
@@ -586,22 +586,22 @@ public class MySqlCreateTable_showColumns_repository_test extends MysqlTest {
assertEquals("+--------------+--------------+------+-----+---------------------+-----------------------------+\n" +
"| Field | Type | Null | Key | Default | Extra |\n" +
"+--------------+--------------+------+-----+---------------------+-----------------------------+\n" +
- "| c_decimal_1 | INT(11) | YES | | NULL | |\n" +
- "| id | bigint(20) | YES | | NULL | auto_increment |\n" +
- "| c_smallint | smallint(6) | NO | | 0 | |\n" +
- "| c_mediumint | mediumint(9) | NO | | NULL | |\n" +
- "| c_int | int(11) | NO | MUL | NULL | |\n" +
- "| c_bigint | bigint(20) | NO | | NULL | |\n" +
- "| c_date | date | NO | | 0000-00-00 | |\n" +
- "| c_datetime | datetime | NO | | 0000-00-00 00:00:00 | |\n" +
- "| c_timestamp | timestamp | NO | | NULL | on update CURRENT_TIMESTAMP |\n" +
- "| c_time | time | NO | | NULL | |\n" +
- "| c_char | char(10) | NO | | NULL | |\n" +
- "| c_varchar | varchar(10) | NO | | hello | |\n" +
- "| c_blob | blob | NO | | NULL | |\n" +
- "| c_text | text | NO | | NULL | |\n" +
- "| c_mediumtext | mediumtext | NO | | NULL | |\n" +
- "| c_longblob | longblob | NO | | NULL | |\n" +
+ "| c_decimal_1 | INT(11) | NO | | NULL | |\n" +
+ "| id | bigint(20) | NO | | NULL | auto_increment |\n" +
+ "| c_smallint | smallint(6) | YES | | 0 | |\n" +
+ "| c_mediumint | mediumint(9) | YES | | NULL | |\n" +
+ "| c_int | int(11) | YES | MUL | NULL | |\n" +
+ "| c_bigint | bigint(20) | YES | | NULL | |\n" +
+ "| c_date | date | YES | | 0000-00-00 | |\n" +
+ "| c_datetime | datetime | YES | | 0000-00-00 00:00:00 | |\n" +
+ "| c_timestamp | timestamp | YES | | NULL | on update CURRENT_TIMESTAMP |\n" +
+ "| c_time | time | YES | | NULL | |\n" +
+ "| c_char | char(10) | YES | | NULL | |\n" +
+ "| c_varchar | varchar(10) | YES | | hello | |\n" +
+ "| c_blob | blob | YES | | NULL | |\n" +
+ "| c_text | text | YES | | NULL | |\n" +
+ "| c_mediumtext | mediumtext | YES | | NULL | |\n" +
+ "| c_longblob | longblob | YES | | NULL | |\n" +
"+--------------+--------------+------+-----+---------------------+-----------------------------+\n"
, repository.console("show columns from test1"));
@@ -658,24 +658,286 @@ public class MySqlCreateTable_showColumns_repository_test extends MysqlTest {
assertEquals("+--------------+--------------+------+-----+---------------------+-----------------------------+\n" +
"| Field | Type | Null | Key | Default | Extra |\n" +
"+--------------+--------------+------+-----+---------------------+-----------------------------+\n" +
- "| c_decimal_1 | INT(11) | YES | | NULL | |\n" +
- "| id | bigint(20) | YES | | NULL | auto_increment |\n" +
- "| c_char | char(32) | NO | | NULL | |\n" +
- "| c_smallint | smallint(6) | NO | | 0 | |\n" +
- "| c_mediumint | mediumint(9) | NO | | NULL | |\n" +
- "| c_int | int(11) | NO | MUL | NULL | |\n" +
- "| c_bigint | bigint(20) | NO | | NULL | |\n" +
- "| c_date | date | NO | | 0000-00-00 | |\n" +
- "| c_datetime | datetime | NO | | 0000-00-00 00:00:00 | |\n" +
- "| c_timestamp | timestamp | NO | | NULL | on update CURRENT_TIMESTAMP |\n" +
- "| c_time | time | NO | | NULL | |\n" +
- "| c_varchar | varchar(10) | NO | | hello | |\n" +
- "| c_blob | blob | NO | | NULL | |\n" +
- "| c_text | text | NO | | NULL | |\n" +
- "| c_mediumtext | mediumtext | NO | | NULL | |\n" +
- "| c_longblob | longblob | NO | | NULL | |\n" +
+ "| c_decimal_1 | INT(11) | NO | | NULL | |\n" +
+ "| id | bigint(20) | NO | | NULL | auto_increment |\n" +
+ "| c_char | char(32) | YES | | NULL | |\n" +
+ "| c_smallint | smallint(6) | YES | | 0 | |\n" +
+ "| c_mediumint | mediumint(9) | YES | | NULL | |\n" +
+ "| c_int | int(11) | YES | MUL | NULL | |\n" +
+ "| c_bigint | bigint(20) | YES | | NULL | |\n" +
+ "| c_date | date | YES | | 0000-00-00 | |\n" +
+ "| c_datetime | datetime | YES | | 0000-00-00 00:00:00 | |\n" +
+ "| c_timestamp | timestamp | YES | | NULL | on update CURRENT_TIMESTAMP |\n" +
+ "| c_time | time | YES | | NULL | |\n" +
+ "| c_varchar | varchar(10) | YES | | hello | |\n" +
+ "| c_blob | blob | YES | | NULL | |\n" +
+ "| c_text | text | YES | | NULL | |\n" +
+ "| c_mediumtext | mediumtext | YES | | NULL | |\n" +
+ "| c_longblob | longblob | YES | | NULL | |\n" +
"+--------------+--------------+------+-----+---------------------+-----------------------------+\n"
, repository.console("show columns from test1"));
+
+
+ repository.console("alter table test1 add CONSTRAINT unique name4_idx(id); ");
+
+ assertEquals("+--------------+--------------+------+-----+---------------------+-----------------------------+\n" +
+ "| Field | Type | Null | Key | Default | Extra |\n" +
+ "+--------------+--------------+------+-----+---------------------+-----------------------------+\n" +
+ "| c_decimal_1 | INT(11) | NO | | NULL | |\n" +
+ "| id | bigint(20) | NO | UNI | NULL | auto_increment |\n" +
+ "| c_char | char(32) | YES | | NULL | |\n" +
+ "| c_smallint | smallint(6) | YES | | 0 | |\n" +
+ "| c_mediumint | mediumint(9) | YES | | NULL | |\n" +
+ "| c_int | int(11) | YES | MUL | NULL | |\n" +
+ "| c_bigint | bigint(20) | YES | | NULL | |\n" +
+ "| c_date | date | YES | | 0000-00-00 | |\n" +
+ "| c_datetime | datetime | YES | | 0000-00-00 00:00:00 | |\n" +
+ "| c_timestamp | timestamp | YES | | NULL | on update CURRENT_TIMESTAMP |\n" +
+ "| c_time | time | YES | | NULL | |\n" +
+ "| c_varchar | varchar(10) | YES | | hello | |\n" +
+ "| c_blob | blob | YES | | NULL | |\n" +
+ "| c_text | text | YES | | NULL | |\n" +
+ "| c_mediumtext | mediumtext | YES | | NULL | |\n" +
+ "| c_longblob | longblob | YES | | NULL | |\n" +
+ "+--------------+--------------+------+-----+---------------------+-----------------------------+\n"
+
+ , repository.console("show columns from test1"));
+
+ repository.console("alter table test1 add FULLTEXT name4_idx_c_longblob(c_longblob); ");
+
+ assertEquals("CREATE TABLE `test1` (\n" +
+ "\tc_decimal_1 INT(11) NOT NULL DEFAULT NULL,\n" +
+ "\t`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',\n" +
+ "\tc_char char(32),\n" +
+ "\t`c_smallint` smallint(6) DEFAULT 0 COMMENT 'smallint',\n" +
+ "\t`c_mediumint` mediumint(9) DEFAULT NULL COMMENT 'mediumint',\n" +
+ "\t`c_int` int(11) DEFAULT NULL COMMENT 'int',\n" +
+ "\t`c_bigint` bigint(20) DEFAULT NULL COMMENT 'bigint',\n" +
+ "\t`c_date` date DEFAULT '0000-00-00' COMMENT 'date',\n" +
+ "\t`c_datetime` datetime DEFAULT '0000-00-00 00:00:00' COMMENT 'datetime',\n" +
+ "\t`c_timestamp` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'timestamp',\n" +
+ "\t`c_time` time DEFAULT NULL COMMENT 'time',\n" +
+ "\t`c_varchar` varchar(10) DEFAULT 'hello' COMMENT 'varchar',\n" +
+ "\t`c_blob` blob COMMENT 'blob',\n" +
+ "\t`c_text` text COMMENT 'text',\n" +
+ "\t`c_mediumtext` mediumtext COMMENT 'mediumtext',\n" +
+ "\t`c_longblob` longblob COMMENT 'longblob',\n" +
+ "\tKEY `k_c` (`c_int`),\n" +
+ "\tUNIQUE name4_idx (id),\n" +
+ "\tFULLTEXT INDEX name4_idx_c_longblob(c_longblob)\n" +
+ ") ENGINE = InnoDB AUTO_INCREMENT = 1769503 CHARSET = utf8mb4 COMMENT = '10000000'"
+
+ , repository.console("show create table test1"));
+
+
+ repository.console("alter table test1 add key name5_idx(c_bigint); ");
+
+ assertEquals("CREATE TABLE `test1` (\n" +
+ "\tc_decimal_1 INT(11) NOT NULL DEFAULT NULL,\n" +
+ "\t`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',\n" +
+ "\tc_char char(32),\n" +
+ "\t`c_smallint` smallint(6) DEFAULT 0 COMMENT 'smallint',\n" +
+ "\t`c_mediumint` mediumint(9) DEFAULT NULL COMMENT 'mediumint',\n" +
+ "\t`c_int` int(11) DEFAULT NULL COMMENT 'int',\n" +
+ "\t`c_bigint` bigint(20) DEFAULT NULL COMMENT 'bigint',\n" +
+ "\t`c_date` date DEFAULT '0000-00-00' COMMENT 'date',\n" +
+ "\t`c_datetime` datetime DEFAULT '0000-00-00 00:00:00' COMMENT 'datetime',\n" +
+ "\t`c_timestamp` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'timestamp',\n" +
+ "\t`c_time` time DEFAULT NULL COMMENT 'time',\n" +
+ "\t`c_varchar` varchar(10) DEFAULT 'hello' COMMENT 'varchar',\n" +
+ "\t`c_blob` blob COMMENT 'blob',\n" +
+ "\t`c_text` text COMMENT 'text',\n" +
+ "\t`c_mediumtext` mediumtext COMMENT 'mediumtext',\n" +
+ "\t`c_longblob` longblob COMMENT 'longblob',\n" +
+ "\tKEY `k_c` (`c_int`),\n" +
+ "\tUNIQUE name4_idx (id),\n" +
+ "\tFULLTEXT INDEX name4_idx_c_longblob(c_longblob),\n" +
+ "\tKEY name5_idx (c_bigint)\n" +
+ ") ENGINE = InnoDB AUTO_INCREMENT = 1769503 CHARSET = utf8mb4 COMMENT = '10000000'"
+
+ , repository.console("show create table test1"));
+
+ repository.console("alter table test1 drop index name4_idx");
+ assertEquals("CREATE TABLE `test1` (\n" +
+ "\tc_decimal_1 INT(11) NOT NULL DEFAULT NULL,\n" +
+ "\t`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',\n" +
+ "\tc_char char(32),\n" +
+ "\t`c_smallint` smallint(6) DEFAULT 0 COMMENT 'smallint',\n" +
+ "\t`c_mediumint` mediumint(9) DEFAULT NULL COMMENT 'mediumint',\n" +
+ "\t`c_int` int(11) DEFAULT NULL COMMENT 'int',\n" +
+ "\t`c_bigint` bigint(20) DEFAULT NULL COMMENT 'bigint',\n" +
+ "\t`c_date` date DEFAULT '0000-00-00' COMMENT 'date',\n" +
+ "\t`c_datetime` datetime DEFAULT '0000-00-00 00:00:00' COMMENT 'datetime',\n" +
+ "\t`c_timestamp` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'timestamp',\n" +
+ "\t`c_time` time DEFAULT NULL COMMENT 'time',\n" +
+ "\t`c_varchar` varchar(10) DEFAULT 'hello' COMMENT 'varchar',\n" +
+ "\t`c_blob` blob COMMENT 'blob',\n" +
+ "\t`c_text` text COMMENT 'text',\n" +
+ "\t`c_mediumtext` mediumtext COMMENT 'mediumtext',\n" +
+ "\t`c_longblob` longblob COMMENT 'longblob',\n" +
+ "\tKEY `k_c` (`c_int`),\n" +
+ "\tFULLTEXT INDEX name4_idx_c_longblob(c_longblob),\n" +
+ "\tKEY name5_idx (c_bigint)\n" +
+ ") ENGINE = InnoDB AUTO_INCREMENT = 1769503 CHARSET = utf8mb4 COMMENT = '10000000'"
+
+ , repository.console("show create table test1"));
+
+ repository.console("alter table test1 add primary key name5_pk(c_bigint); ");
+ assertEquals("CREATE TABLE `test1` (\n" +
+ "\tc_decimal_1 INT(11) NOT NULL DEFAULT NULL,\n" +
+ "\t`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',\n" +
+ "\tc_char char(32),\n" +
+ "\t`c_smallint` smallint(6) DEFAULT 0 COMMENT 'smallint',\n" +
+ "\t`c_mediumint` mediumint(9) DEFAULT NULL COMMENT 'mediumint',\n" +
+ "\t`c_int` int(11) DEFAULT NULL COMMENT 'int',\n" +
+ "\t`c_bigint` bigint(20) DEFAULT NULL COMMENT 'bigint',\n" +
+ "\t`c_date` date DEFAULT '0000-00-00' COMMENT 'date',\n" +
+ "\t`c_datetime` datetime DEFAULT '0000-00-00 00:00:00' COMMENT 'datetime',\n" +
+ "\t`c_timestamp` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'timestamp',\n" +
+ "\t`c_time` time DEFAULT NULL COMMENT 'time',\n" +
+ "\t`c_varchar` varchar(10) DEFAULT 'hello' COMMENT 'varchar',\n" +
+ "\t`c_blob` blob COMMENT 'blob',\n" +
+ "\t`c_text` text COMMENT 'text',\n" +
+ "\t`c_mediumtext` mediumtext COMMENT 'mediumtext',\n" +
+ "\t`c_longblob` longblob COMMENT 'longblob',\n" +
+ "\tKEY `k_c` (`c_int`),\n" +
+ "\tFULLTEXT INDEX name4_idx_c_longblob(c_longblob),\n" +
+ "\tKEY name5_idx (c_bigint),\n" +
+ "\tCONSTRAINT name5_pk PRIMARY KEY (c_bigint)\n" +
+ ") ENGINE = InnoDB AUTO_INCREMENT = 1769503 CHARSET = utf8mb4 COMMENT = '10000000'"
+
+ , repository.console("show create table test1"));
+
+ repository.console("alter table test1 drop primary key;");
+ assertEquals("CREATE TABLE `test1` (\n" +
+ "\tc_decimal_1 INT(11) NOT NULL DEFAULT NULL,\n" +
+ "\t`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',\n" +
+ "\tc_char char(32),\n" +
+ "\t`c_smallint` smallint(6) DEFAULT 0 COMMENT 'smallint',\n" +
+ "\t`c_mediumint` mediumint(9) DEFAULT NULL COMMENT 'mediumint',\n" +
+ "\t`c_int` int(11) DEFAULT NULL COMMENT 'int',\n" +
+ "\t`c_bigint` bigint(20) DEFAULT NULL COMMENT 'bigint',\n" +
+ "\t`c_date` date DEFAULT '0000-00-00' COMMENT 'date',\n" +
+ "\t`c_datetime` datetime DEFAULT '0000-00-00 00:00:00' COMMENT 'datetime',\n" +
+ "\t`c_timestamp` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'timestamp',\n" +
+ "\t`c_time` time DEFAULT NULL COMMENT 'time',\n" +
+ "\t`c_varchar` varchar(10) DEFAULT 'hello' COMMENT 'varchar',\n" +
+ "\t`c_blob` blob COMMENT 'blob',\n" +
+ "\t`c_text` text COMMENT 'text',\n" +
+ "\t`c_mediumtext` mediumtext COMMENT 'mediumtext',\n" +
+ "\t`c_longblob` longblob COMMENT 'longblob',\n" +
+ "\tKEY `k_c` (`c_int`),\n" +
+ "\tFULLTEXT INDEX name4_idx_c_longblob(c_longblob),\n" +
+ "\tKEY name5_idx (c_bigint)\n" +
+ ") ENGINE = InnoDB AUTO_INCREMENT = 1769503 CHARSET = utf8mb4 COMMENT = '10000000'"
+
+ , repository.console("show create table test1"));
+
+ repository.console("GRANT ALL PRIVILEGES ON *.* TO 'idbtmp_1208408_9'@'%' IDENTIFIED BY PASSWORD '*5E8A11FF574FCBC6440EB285D490AEE96B16E250' WITH GRANT OPTION");
+
+ repository.console("alter table test1 add unique key name_idx_23 (c_char(10))");
+ assertEquals("CREATE TABLE `test1` (\n" +
+ "\tc_decimal_1 INT(11) NOT NULL DEFAULT NULL,\n" +
+ "\t`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',\n" +
+ "\tc_char char(32),\n" +
+ "\t`c_smallint` smallint(6) DEFAULT 0 COMMENT 'smallint',\n" +
+ "\t`c_mediumint` mediumint(9) DEFAULT NULL COMMENT 'mediumint',\n" +
+ "\t`c_int` int(11) DEFAULT NULL COMMENT 'int',\n" +
+ "\t`c_bigint` bigint(20) DEFAULT NULL COMMENT 'bigint',\n" +
+ "\t`c_date` date DEFAULT '0000-00-00' COMMENT 'date',\n" +
+ "\t`c_datetime` datetime DEFAULT '0000-00-00 00:00:00' COMMENT 'datetime',\n" +
+ "\t`c_timestamp` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'timestamp',\n" +
+ "\t`c_time` time DEFAULT NULL COMMENT 'time',\n" +
+ "\t`c_varchar` varchar(10) DEFAULT 'hello' COMMENT 'varchar',\n" +
+ "\t`c_blob` blob COMMENT 'blob',\n" +
+ "\t`c_text` text COMMENT 'text',\n" +
+ "\t`c_mediumtext` mediumtext COMMENT 'mediumtext',\n" +
+ "\t`c_longblob` longblob COMMENT 'longblob',\n" +
+ "\tKEY `k_c` (`c_int`),\n" +
+ "\tFULLTEXT INDEX name4_idx_c_longblob(c_longblob),\n" +
+ "\tKEY name5_idx (c_bigint),\n" +
+ "\tUNIQUE name_idx_23 (c_char(10))\n" +
+ ") ENGINE = InnoDB AUTO_INCREMENT = 1769503 CHARSET = utf8mb4 COMMENT = '10000000'"
+
+ , repository.console("show create table test1"));
+
+
+ assertEquals("+--------------+--------------+------+-----+---------------------+-----------------------------+\n" +
+ "| Field | Type | Null | Key | Default | Extra |\n" +
+ "+--------------+--------------+------+-----+---------------------+-----------------------------+\n" +
+ "| c_decimal_1 | INT(11) | NO | | NULL | |\n" +
+ "| id | bigint(20) | NO | | NULL | auto_increment |\n" +
+ "| c_char | char(32) | YES | UNI | NULL | |\n" +
+ "| c_smallint | smallint(6) | YES | | 0 | |\n" +
+ "| c_mediumint | mediumint(9) | YES | | NULL | |\n" +
+ "| c_int | int(11) | YES | MUL | NULL | |\n" +
+ "| c_bigint | bigint(20) | YES | MUL | NULL | |\n" +
+ "| c_date | date | YES | | 0000-00-00 | |\n" +
+ "| c_datetime | datetime | YES | | 0000-00-00 00:00:00 | |\n" +
+ "| c_timestamp | timestamp | YES | | NULL | on update CURRENT_TIMESTAMP |\n" +
+ "| c_time | time | YES | | NULL | |\n" +
+ "| c_varchar | varchar(10) | YES | | hello | |\n" +
+ "| c_blob | blob | YES | | NULL | |\n" +
+ "| c_text | text | YES | | NULL | |\n" +
+ "| c_mediumtext | mediumtext | YES | | NULL | |\n" +
+ "| c_longblob | longblob | YES | | NULL | |\n" +
+ "+--------------+--------------+------+-----+---------------------+-----------------------------+\n"
+
+ , repository.console("show columns from test1"));
+
+ repository.console("alter table test1 drop c_char;");
+ assertEquals("CREATE TABLE `test1` (\n" +
+ "\tc_decimal_1 INT(11) NOT NULL DEFAULT NULL,\n" +
+ "\t`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',\n" +
+ "\t`c_smallint` smallint(6) DEFAULT 0 COMMENT 'smallint',\n" +
+ "\t`c_mediumint` mediumint(9) DEFAULT NULL COMMENT 'mediumint',\n" +
+ "\t`c_int` int(11) DEFAULT NULL COMMENT 'int',\n" +
+ "\t`c_bigint` bigint(20) DEFAULT NULL COMMENT 'bigint',\n" +
+ "\t`c_date` date DEFAULT '0000-00-00' COMMENT 'date',\n" +
+ "\t`c_datetime` datetime DEFAULT '0000-00-00 00:00:00' COMMENT 'datetime',\n" +
+ "\t`c_timestamp` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'timestamp',\n" +
+ "\t`c_time` time DEFAULT NULL COMMENT 'time',\n" +
+ "\t`c_varchar` varchar(10) DEFAULT 'hello' COMMENT 'varchar',\n" +
+ "\t`c_blob` blob COMMENT 'blob',\n" +
+ "\t`c_text` text COMMENT 'text',\n" +
+ "\t`c_mediumtext` mediumtext COMMENT 'mediumtext',\n" +
+ "\t`c_longblob` longblob COMMENT 'longblob',\n" +
+ "\tKEY `k_c` (`c_int`),\n" +
+ "\tFULLTEXT INDEX name4_idx_c_longblob(c_longblob),\n" +
+ "\tKEY name5_idx (c_bigint)\n" +
+ ") ENGINE = InnoDB AUTO_INCREMENT = 1769503 CHARSET = utf8mb4 COMMENT = '10000000'"
+
+ , repository.console("show create table test1"));
+
+ repository.console("rename table test1 to test1_xx");
+
+ assertEquals("ERROR 1146 (42S02): Table 'test1' doesn't exist\n"
+
+ , repository.console("show create table test1"));
+
+ assertEquals("CREATE TABLE test1_xx (\n" +
+ "\tc_decimal_1 INT(11) NOT NULL DEFAULT NULL,\n" +
+ "\t`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',\n" +
+ "\t`c_smallint` smallint(6) DEFAULT 0 COMMENT 'smallint',\n" +
+ "\t`c_mediumint` mediumint(9) DEFAULT NULL COMMENT 'mediumint',\n" +
+ "\t`c_int` int(11) DEFAULT NULL COMMENT 'int',\n" +
+ "\t`c_bigint` bigint(20) DEFAULT NULL COMMENT 'bigint',\n" +
+ "\t`c_date` date DEFAULT '0000-00-00' COMMENT 'date',\n" +
+ "\t`c_datetime` datetime DEFAULT '0000-00-00 00:00:00' COMMENT 'datetime',\n" +
+ "\t`c_timestamp` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'timestamp',\n" +
+ "\t`c_time` time DEFAULT NULL COMMENT 'time',\n" +
+ "\t`c_varchar` varchar(10) DEFAULT 'hello' COMMENT 'varchar',\n" +
+ "\t`c_blob` blob COMMENT 'blob',\n" +
+ "\t`c_text` text COMMENT 'text',\n" +
+ "\t`c_mediumtext` mediumtext COMMENT 'mediumtext',\n" +
+ "\t`c_longblob` longblob COMMENT 'longblob',\n" +
+ "\tKEY `k_c` (`c_int`),\n" +
+ "\tFULLTEXT INDEX name4_idx_c_longblob(c_longblob),\n" +
+ "\tKEY name5_idx (c_bigint)\n" +
+ ") ENGINE = InnoDB AUTO_INCREMENT = 1769503 CHARSET = utf8mb4 COMMENT = '10000000'"
+
+ , repository.console("show create table test1_xx"));
+
}
}
diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/select/MySqlCreateTable_showColumns_test.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/select/MySqlCreateTable_showColumns_test.java
index c6adbf0019..3a0c89a226 100644
--- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/select/MySqlCreateTable_showColumns_test.java
+++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/select/MySqlCreateTable_showColumns_test.java
@@ -65,23 +65,23 @@ public class MySqlCreateTable_showColumns_test extends MysqlTest {
assertEquals("+--------------+---------------+------+-----+---------------------+-----------------------------+\n" +
"| Field | Type | Null | Key | Default | Extra |\n" +
"+--------------+---------------+------+-----+---------------------+-----------------------------+\n" +
- "| id | bigint(20) | YES | PRI | NULL | auto_increment |\n" +
- "| c_tinyint | tinyint(4) | NO | PRI | 1 | |\n" +
- "| c_smallint | smallint(6) | NO | | 0 | |\n" +
- "| c_mediumint | mediumint(9) | NO | | NULL | |\n" +
- "| c_int | int(11) | NO | | NULL | |\n" +
- "| c_bigint | bigint(20) | NO | | NULL | |\n" +
- "| c_decimal | decimal(10,3) | NO | | NULL | |\n" +
- "| c_date | date | NO | | 0000-00-00 | |\n" +
- "| c_datetime | datetime | NO | | 0000-00-00 00:00:00 | |\n" +
- "| c_timestamp | timestamp | NO | | NULL | on update CURRENT_TIMESTAMP |\n" +
- "| c_time | time | NO | | NULL | |\n" +
- "| c_char | char(10) | NO | MUL | NULL | |\n" +
- "| c_varchar | varchar(10) | NO | MUL | hello | |\n" +
- "| c_blob | blob | NO | | NULL | |\n" +
- "| c_text | text | NO | | NULL | |\n" +
- "| c_mediumtext | mediumtext | NO | | NULL | |\n" +
- "| c_longblob | longblob | NO | | NULL | |\n" +
+ "| id | bigint(20) | NO | PRI | NULL | auto_increment |\n" +
+ "| c_tinyint | tinyint(4) | YES | PRI | 1 | |\n" +
+ "| c_smallint | smallint(6) | YES | | 0 | |\n" +
+ "| c_mediumint | mediumint(9) | YES | | NULL | |\n" +
+ "| c_int | int(11) | YES | | NULL | |\n" +
+ "| c_bigint | bigint(20) | YES | | NULL | |\n" +
+ "| c_decimal | decimal(10,3) | YES | | NULL | |\n" +
+ "| c_date | date | YES | | 0000-00-00 | |\n" +
+ "| c_datetime | datetime | YES | | 0000-00-00 00:00:00 | |\n" +
+ "| c_timestamp | timestamp | YES | | NULL | on update CURRENT_TIMESTAMP |\n" +
+ "| c_time | time | YES | | NULL | |\n" +
+ "| c_char | char(10) | YES | MUL | NULL | |\n" +
+ "| c_varchar | varchar(10) | YES | MUL | hello | |\n" +
+ "| c_blob | blob | YES | | NULL | |\n" +
+ "| c_text | text | YES | | NULL | |\n" +
+ "| c_mediumtext | mediumtext | YES | | NULL | |\n" +
+ "| c_longblob | longblob | YES | | NULL | |\n" +
"+--------------+---------------+------+-----+---------------------+-----------------------------+\n", buf.toString());
}
}