From 8b51ecf0217a48750353a8a6e74ed444ad69994d Mon Sep 17 00:00:00 2001 From: wenshao Date: Sun, 21 May 2017 11:28:30 +0800 Subject: [PATCH] improved sql parser. --- .../alibaba/druid/sql/ast/SQLPartition.java | 130 +++--------- .../sql/ast/statement/SQLConstraintImpl.java | 2 +- .../dialect/mysql/parser/MySqlExprParser.java | 2 +- .../mysql/visitor/MySqlOutputVisitor.java | 17 +- .../oracle/ast/OracleSegmentAttributes.java | 57 +++++ .../ast/OracleSegmentAttributesImpl.java | 140 ++++++++++++ .../oracle/ast/stmt/OracleConstraint.java | 3 + .../ast/stmt/OracleCreateTableStatement.java | 117 ++++++++-- .../oracle/ast/stmt/OraclePrimaryKey.java | 10 - .../ast/stmt/OracleUsingIndexClause.java | 31 +-- .../parser/OracleCreateTableParser.java | 199 ++++++------------ .../oracle/parser/OracleExprParser.java | 176 ++++++++++++++-- .../oracle/visitor/OracleASTVisitor.java | 4 + .../visitor/OracleASTVisitorAdapter.java | 8 + .../oracle/visitor/OracleOutputVisitor.java | 81 +++---- .../visitor/OracleSchemaStatVisitor.java | 8 + .../druid/sql/parser/SQLExprParser.java | 11 + .../alibaba/druid/sql/parser/SQLParser.java | 1 + .../sql/visitor/SQLASTOutputVisitor.java | 97 +++++++-- .../bvt/sql/MappingTest_createTable_2.java | 4 +- .../druid/bvt/sql/mysql/MySqlFormatTest.java | 4 +- .../bvt/sql/mysql/MySqlHintStatementTest.java | 4 +- .../mysql/create/MySqlCeateTableTest34.java | 12 +- .../mysql/create/MySqlCreateTableTest14.java | 28 +-- .../mysql/create/MySqlCreateTableTest22.java | 2 +- .../mysql/create/MySqlCreateTableTest23.java | 2 +- .../mysql/create/MySqlCreateTableTest24.java | 2 +- .../mysql/create/MySqlCreateTableTest25.java | 2 +- .../mysql/create/MySqlCreateTableTest26.java | 2 +- .../mysql/create/MySqlCreateTableTest27.java | 2 +- .../mysql/create/MySqlCreateTableTest28.java | 2 +- .../mysql/create/MySqlCreateTableTest29.java | 2 +- .../mysql/create/MySqlCreateTableTest30.java | 2 +- .../mysql/create/MySqlCreateTableTest31.java | 2 +- .../mysql/create/MySqlCreateTableTest32.java | 2 +- .../mysql/create/MySqlCreateTableTest33.java | 2 +- .../mysql/create/MySqlCreateTableTest34.java | 2 +- .../mysql/create/MySqlCreateTableTest35.java | 2 +- .../mysql/create/MySqlCreateTableTest36.java | 2 +- .../mysql/create/MySqlCreateTableTest37.java | 2 +- .../mysql/create/MySqlCreateTableTest38.java | 2 +- .../mysql/create/MySqlCreateTableTest39.java | 2 +- .../mysql/create/MySqlCreateTableTest40.java | 2 +- .../mysql/create/MySqlCreateTableTest41.java | 4 +- .../mysql/create/MySqlCreateTableTest42.java | 2 +- .../mysql/create/MySqlCreateTableTest43.java | 2 +- .../mysql/create/MySqlCreateTableTest44.java | 2 +- .../mysql/create/MySqlCreateTableTest45.java | 4 +- .../mysql/create/MySqlCreateTableTest46.java | 2 +- .../mysql/create/MySqlCreateTableTest47.java | 10 +- .../mysql/create/MySqlCreateTableTest48.java | 10 +- .../mysql/create/MySqlCreateTableTest49.java | 12 +- .../mysql/create/MySqlCreateTableTest50.java | 2 +- .../mysql/create/MySqlCreateTableTest51.java | 2 +- .../mysql/create/MySqlCreateTableTest52.java | 14 +- .../mysql/create/MySqlCreateTableTest53.java | 46 ++-- .../mysql/create/MySqlCreateTableTest54.java | 106 +++++----- .../mysql/create/MySqlCreateTableTest55.java | 2 +- .../mysql/create/MySqlCreateTableTest56.java | 4 +- .../mysql/create/MySqlCreateTableTest57.java | 20 +- .../mysql/create/MySqlCreateTableTest58.java | 88 ++++---- .../mysql/create/MySqlCreateTableTest59.java | 2 +- .../mysql/create/MySqlCreateTableTest60.java | 4 +- .../mysql/create/MySqlCreateTableTest61.java | 8 +- .../mysql/create/MySqlCreateTableTest63.java | 8 +- .../mysql/create/MySqlCreateTableTest64.java | 4 +- .../mysql/create/MySqlCreateTableTest65.java | 4 +- .../mysql/create/MySqlCreateTableTest66.java | 12 +- .../mysql/create/MySqlCreateTableTest67.java | 44 ++-- .../mysql/create/MySqlCreateTableTest68.java | 4 +- .../mysql/create/MySqlCreateTableTest69.java | 4 +- .../mysql/create/MySqlCreateTableTest70.java | 44 ++-- .../mysql/create/MySqlCreateTableTest71.java | 12 +- .../mysql/create/MySqlCreateTableTest72.java | 12 +- .../mysql/create/MySqlCreateTableTest73.java | 8 +- .../mysql/create/MySqlCreateTableTest74.java | 26 +-- .../mysql/create/MySqlCreateTableTest75.java | 68 +++--- .../mysql/create/MySqlCreateTableTest76.java | 68 +++--- ...anbaseCreateTableTest_partitionByHash.java | 4 +- ...nbaseCreateTableTest_partitionByHash2.java | 24 +-- ...eanbaseCreateTableTest_partitionByKey.java | 4 +- ...eanbaseCreateTableTest_rangePartition.java | 24 +-- ...anbaseCreateTableTest_rangePartition2.java | 24 +-- ...anbaseCreateTableTest_rangePartition3.java | 24 +-- ...anbaseCreateTableTest_rangePartition4.java | 24 +-- ...anbaseCreateTableTest_rangePartition5.java | 4 +- ...OceanbaseCreateTableTest_subPartition.java | 4 +- ...ceanbaseCreateTableTest_subPartition2.java | 4 +- ...ceanbaseCreateTableTest_subPartition3.java | 2 +- ...ceanbaseCreateTableTest_subPartition4.java | 2 +- 90 files changed, 1135 insertions(+), 857 deletions(-) create mode 100644 src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/OracleSegmentAttributes.java create mode 100644 src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/OracleSegmentAttributesImpl.java diff --git a/src/main/java/com/alibaba/druid/sql/ast/SQLPartition.java b/src/main/java/com/alibaba/druid/sql/ast/SQLPartition.java index bc3a7a2ba9..19169341cc 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/SQLPartition.java +++ b/src/main/java/com/alibaba/druid/sql/ast/SQLPartition.java @@ -18,11 +18,13 @@ package com.alibaba.druid.sql.ast; import java.util.ArrayList; import java.util.List; +import com.alibaba.druid.sql.dialect.oracle.ast.OracleSegmentAttributes; +import com.alibaba.druid.sql.dialect.oracle.ast.OracleSegmentAttributesImpl; import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleLobStorageClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleStorageClause; import com.alibaba.druid.sql.visitor.SQLASTVisitor; -public class SQLPartition extends SQLObjectImpl { +public class SQLPartition extends OracleSegmentAttributesImpl implements OracleSegmentAttributes { protected SQLName name; @@ -35,21 +37,16 @@ public class SQLPartition extends SQLObjectImpl { // for mysql protected SQLExpr dataDirectory; protected SQLExpr indexDirectory; - protected SQLName tableSpace; protected SQLExpr maxRows; protected SQLExpr minRows; protected SQLExpr engine; protected SQLExpr comment; - private SQLExpr ptcfree; - private SQLExpr pctused; - private SQLExpr initrans; - private SQLExpr maxtrans; - private OracleStorageClause storage; - private SQLName tablespace; - private Boolean compress; + // for oracle + protected boolean segmentCreationImmediate; + protected boolean segmentCreationDeferred; - private OracleLobStorageClause lobStorage; + private SQLObject lobStorage; public SQLName getName() { @@ -118,19 +115,6 @@ public class SQLPartition extends SQLObjectImpl { this.dataDirectory = dataDirectory; } - - - public SQLName getTableSpace() { - return tableSpace; - } - - public void setTableSpace(SQLName tableSpace) { - if (tableSpace != null) { - tableSpace.setParent(this); - } - this.tableSpace = tableSpace; - } - public SQLExpr getMaxRows() { return maxRows; } @@ -181,103 +165,41 @@ public class SQLPartition extends SQLObjectImpl { acceptChild(visitor, values); acceptChild(visitor, dataDirectory); acceptChild(visitor, indexDirectory); - acceptChild(visitor, tableSpace); + acceptChild(visitor, tablespace); acceptChild(visitor, maxRows); acceptChild(visitor, minRows); acceptChild(visitor, engine); acceptChild(visitor, comment); - acceptChild(visitor, ptcfree); - acceptChild(visitor, pctused); - acceptChild(visitor, initrans); - acceptChild(visitor, maxtrans); acceptChild(visitor, storage); } visitor.endVisit(this); } - public SQLExpr getPtcfree() { - return ptcfree; - } - - public void setPtcfree(SQLExpr ptcfree) { - if (ptcfree != null) { - ptcfree.setParent(this); - } - this.ptcfree = ptcfree; - } - - public SQLExpr getPctused() { - return pctused; - } - - public void setPctused(SQLExpr pctused) { - if (pctused != null) { - pctused.setParent(this); - } - this.pctused = pctused; - } - - public SQLExpr getInitrans() { - return initrans; - } - - public void setInitrans(SQLExpr initrans) { - if (initrans != null) { - initrans.setParent(this); - } - this.initrans = initrans; - } - - public SQLExpr getMaxtrans() { - return maxtrans; - } - - public void setMaxtrans(SQLExpr maxtrans) { - if (maxtrans != null) { - maxtrans.setParent(this); - } - this.maxtrans = maxtrans; - } - - public OracleStorageClause getStorage() { - return storage; - } - - public void setStorage(OracleStorageClause storage) { - if (storage != null) { - storage.setParent(this); - } - this.storage = storage; - } - - public SQLName getTablespace() { - return tablespace; - } - - public void setTablespace(SQLName tablespace) { - if (tablespace != null) { - tablespace.setParent(this); - } - this.tablespace = tablespace; - } - - public Boolean getCompress() { - return compress; - } - - public void setCompress(Boolean compress) { - this.compress = compress; - } - - public OracleLobStorageClause getLobStorage() { + public SQLObject getLobStorage() { return lobStorage; } - public void setLobStorage(OracleLobStorageClause lobStorage) { + public void setLobStorage(SQLObject lobStorage) { if (lobStorage != null) { lobStorage.setParent(this); } this.lobStorage = lobStorage; } + + public boolean isSegmentCreationImmediate() { + return segmentCreationImmediate; + } + + public void setSegmentCreationImmediate(boolean segmentCreationImmediate) { + this.segmentCreationImmediate = segmentCreationImmediate; + } + + public boolean isSegmentCreationDeferred() { + return segmentCreationDeferred; + } + + public void setSegmentCreationDeferred(boolean segmentCreationDeferred) { + this.segmentCreationDeferred = segmentCreationDeferred; + } } diff --git a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLConstraintImpl.java b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLConstraintImpl.java index 2efc338538..2db6703d5c 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLConstraintImpl.java +++ b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLConstraintImpl.java @@ -23,7 +23,7 @@ import java.util.List; public abstract class SQLConstraintImpl extends SQLObjectImpl implements SQLConstraint { - private SQLName name; + protected SQLName name; private Boolean enable; private Boolean validate; private Boolean rely; 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 5cbc7a8438..6f8946b39c 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 @@ -954,7 +954,7 @@ public class MySqlExprParser extends SQLExprParser { lexer.nextToken(); } SQLName tableSpace = this.name(); - partitionDef.setTableSpace(tableSpace); + partitionDef.setTablespace(tableSpace); } else if (lexer.token() == Token.INDEX) { lexer.nextToken(); acceptIdentifier("DIRECTORY"); 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 d69916112b..f1c9dfe747 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 @@ -512,22 +512,7 @@ public class MySqlOutputVisitor extends SQLASTOutputVisitor implements MySqlASTV x.getLike().accept(this); } - int size = x.getTableElementList().size(); - if (size > 0) { - print0(" ("); - incrementIndent(); - println(); - for (int i = 0; i < size; ++i) { - if (i != 0) { - print0(", "); - println(); - } - x.getTableElementList().get(i).accept(this); - } - decrementIndent(); - println(); - print(')'); - } + printTableElements(x.getTableElementList()); for (Map.Entry option : x.getTableOptions().entrySet()) { String key = option.getKey(); diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/OracleSegmentAttributes.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/OracleSegmentAttributes.java new file mode 100644 index 0000000000..e98aa4ed5e --- /dev/null +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/OracleSegmentAttributes.java @@ -0,0 +1,57 @@ +/* + * Copyright 1999-2017 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.sql.dialect.oracle.ast; + +import com.alibaba.druid.sql.ast.SQLName; +import com.alibaba.druid.sql.ast.SQLObject; + +/** + * Created by wenshao on 21/05/2017. + */ +public interface OracleSegmentAttributes extends SQLObject { + + SQLName getTablespace(); + void setTablespace(SQLName name); + + Boolean getCompress(); + + void setCompress(Boolean compress); + + Integer getCompressLevel(); + + void setCompressLevel(Integer compressLevel); + + Integer getInitrans(); + void setInitrans(Integer initrans); + + Integer getMaxtrans(); + void setMaxtrans(Integer maxtrans); + + Integer getPctincrease(); + void setPctincrease(Integer pctincrease); + + Integer getPctused(); + void setPctused(Integer pctused); + + Integer getPctfree(); + void setPctfree(Integer ptcfree); + + Boolean getLogging(); + void setLogging(Boolean logging); + + SQLObject getStorage(); + void setStorage(SQLObject storage); +} diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/OracleSegmentAttributesImpl.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/OracleSegmentAttributesImpl.java new file mode 100644 index 0000000000..3dde93ed0b --- /dev/null +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/OracleSegmentAttributesImpl.java @@ -0,0 +1,140 @@ +/* + * Copyright 1999-2017 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.sql.dialect.oracle.ast; + +import com.alibaba.druid.sql.ast.SQLName; +import com.alibaba.druid.sql.ast.SQLObject; +import com.alibaba.druid.sql.ast.SQLObjectImpl; + +/** + * Created by wenshao on 21/05/2017. + */ +public abstract class OracleSegmentAttributesImpl extends SQLObjectImpl implements OracleSegmentAttributes { + private Integer pctfree; + private Integer pctused; + private Integer initrans; + + private Integer maxtrans; + private Integer pctincrease; + private Integer freeLists; + private Boolean compress; + private Integer compressLevel; + private Integer pctthreshold; + + private Boolean logging; + + protected SQLName tablespace; + protected SQLObject storage; + + public SQLName getTablespace() { + return tablespace; + } + + public void setTablespace(SQLName tablespace) { + if (tablespace != null) { + tablespace.setParent(this); + } + this.tablespace = tablespace; + } + + public Boolean getCompress() { + return compress; + } + + public void setCompress(Boolean compress) { + this.compress = compress; + } + + public Integer getCompressLevel() { + return compressLevel; + } + + public void setCompressLevel(Integer compressLevel) { + this.compressLevel = compressLevel; + } + + public Integer getPctthreshold() { + return pctthreshold; + } + + public void setPctthreshold(Integer pctthreshold) { + this.pctthreshold = pctthreshold; + } + + public Integer getPctfree() { + return pctfree; + } + + public void setPctfree(Integer ptcfree) { + this.pctfree = ptcfree; + } + + public Integer getPctused() { + return pctused; + } + + public void setPctused(Integer ptcused) { + this.pctused = ptcused; + } + + public Integer getInitrans() { + return initrans; + } + + public void setInitrans(Integer initrans) { + this.initrans = initrans; + } + + public Integer getMaxtrans() { + return maxtrans; + } + + public void setMaxtrans(Integer maxtrans) { + this.maxtrans = maxtrans; + } + + public Integer getPctincrease() { + return pctincrease; + } + + public void setPctincrease(Integer pctincrease) { + this.pctincrease = pctincrease; + } + + public Integer getFreeLists() { + return freeLists; + } + + public void setFreeLists(Integer freeLists) { + this.freeLists = freeLists; + } + + public Boolean getLogging() { + return logging; + } + + public void setLogging(Boolean logging) { + this.logging = logging; + } + + public SQLObject getStorage() { + return storage; + } + + public void setStorage(SQLObject storage) { + this.storage = storage; + } +} diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleConstraint.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleConstraint.java index 6d89d67218..ef4bb9a814 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleConstraint.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleConstraint.java @@ -34,6 +34,9 @@ public interface OracleConstraint extends OracleSQLObject, SQLConstraint, SQLTab void setEnable(Boolean enable); + Boolean getValidate(); + void setValidate(Boolean validate); + Initially getInitially(); void setInitially(Initially value); diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleCreateTableStatement.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleCreateTableStatement.java index 514c7e7d0e..2dcfb37925 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleCreateTableStatement.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleCreateTableStatement.java @@ -15,17 +15,24 @@ */ package com.alibaba.druid.sql.dialect.oracle.ast.stmt; -import com.alibaba.druid.sql.ast.SQLExpr; import com.alibaba.druid.sql.ast.SQLName; +import com.alibaba.druid.sql.ast.SQLObject; import com.alibaba.druid.sql.ast.SQLPartitionBy; import com.alibaba.druid.sql.ast.statement.SQLCreateTableStatement; +import com.alibaba.druid.sql.dialect.oracle.ast.OracleSQLObject; +import com.alibaba.druid.sql.dialect.oracle.ast.OracleSQLObjectImpl; +import com.alibaba.druid.sql.dialect.oracle.ast.OracleSegmentAttributes; +import com.alibaba.druid.sql.dialect.oracle.ast.OracleSegmentAttributesImpl; import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleLobStorageClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleStorageClause; import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor; import com.alibaba.druid.sql.visitor.SQLASTVisitor; import com.alibaba.druid.util.JdbcConstants; -public class OracleCreateTableStatement extends SQLCreateTableStatement implements OracleDDLStatement { +import java.util.ArrayList; +import java.util.List; + +public class OracleCreateTableStatement extends SQLCreateTableStatement implements OracleDDLStatement, OracleSegmentAttributes { private SQLName tablespace; @@ -41,13 +48,15 @@ public class OracleCreateTableStatement extends SQLCreateTableStatement implemen private boolean organizationIndex = false; - private SQLExpr ptcfree; - private SQLExpr pctused; - private SQLExpr initrans; - private SQLExpr maxtrans; + private Integer pctfree; + private Integer pctused; + private Integer initrans; + private Integer maxtrans; + private Integer pctincrease; private Boolean logging; private Boolean compress; + private Integer compressLevel; private boolean onCommit; private boolean preserveRows; @@ -60,6 +69,11 @@ public class OracleCreateTableStatement extends SQLCreateTableStatement implemen private boolean forOLTP; private Boolean enableRowMovement; + + private List clusterColumns = new ArrayList(); + private SQLName cluster; + + private Organization organization; public OracleCreateTableStatement() { super (JdbcConstants.ORACLE); @@ -129,44 +143,52 @@ public class OracleCreateTableStatement extends SQLCreateTableStatement implemen this.compress = compress; } - public SQLExpr getPtcfree() { - return ptcfree; + public Integer getCompressLevel() { + return compressLevel; } - public void setPtcfree(SQLExpr ptcfree) { - this.ptcfree = ptcfree; + public void setCompressLevel(Integer compressLevel) { + this.compressLevel = compressLevel; } - public SQLExpr getPctused() { + public Integer getPctfree() { + return pctfree; + } + + public void setPctfree(Integer pctfree) { + this.pctfree = pctfree; + } + + public Integer getPctused() { return pctused; } - public void setPctused(SQLExpr pctused) { + public void setPctused(Integer pctused) { this.pctused = pctused; } - public SQLExpr getInitrans() { + public Integer getInitrans() { return initrans; } - public void setInitrans(SQLExpr initrans) { + public void setInitrans(Integer initrans) { this.initrans = initrans; } - public SQLExpr getMaxtrans() { + public Integer getMaxtrans() { return maxtrans; } - public void setMaxtrans(SQLExpr maxtrans) { + public void setMaxtrans(Integer maxtrans) { this.maxtrans = maxtrans; } - public boolean isOrganizationIndex() { - return organizationIndex; + public Integer getPctincrease() { + return pctincrease; } - public void setOrganizationIndex(boolean organizationIndex) { - this.organizationIndex = organizationIndex; + public void setPctincrease(Integer pctincrease) { + this.pctincrease = pctincrease; } public Boolean getParallel() { @@ -209,11 +231,11 @@ public class OracleCreateTableStatement extends SQLCreateTableStatement implemen return storage; } - public void setStorage(OracleStorageClause storage) { + public void setStorage(SQLObject storage) { if (storage != null) { storage.setParent(this); } - this.storage = storage; + this.storage = (OracleStorageClause) storage; } public boolean isForOLTP() { @@ -232,6 +254,32 @@ public class OracleCreateTableStatement extends SQLCreateTableStatement implemen this.enableRowMovement = enableRowMovement; } + public List getClusterColumns() { + return clusterColumns; + } + + public SQLName getCluster() { + return cluster; + } + + public void setCluster(SQLName cluster) { + if (cluster != null) { + cluster.setParent(this); + } + this.cluster = cluster; + } + + public Organization getOrganization() { + return organization; + } + + public void setOrganization(Organization organization) { + if (organization != null) { + organization.setParent(this); + } + this.organization = organization; + } + public void accept0(OracleASTVisitor visitor) { if (visitor.visit(this)) { this.acceptChild(visitor, tableSource); @@ -247,4 +295,29 @@ public class OracleCreateTableStatement extends SQLCreateTableStatement implemen public static enum DeferredSegmentCreation { IMMEDIATE, DEFERRED } + + public static class Organization extends OracleSegmentAttributesImpl implements OracleSegmentAttributes, OracleSQLObject { + public String type; + + protected void accept0(SQLASTVisitor visitor) { + this.accept0((OracleASTVisitor) visitor); + } + + public void accept0(OracleASTVisitor visitor) { + if (visitor.visit(this)) { + acceptChild(visitor, tablespace); + acceptChild(visitor, storage); + } + visitor.endVisit(this); + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + } } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OraclePrimaryKey.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OraclePrimaryKey.java index cdd7595fa6..04fbe0842c 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OraclePrimaryKey.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OraclePrimaryKey.java @@ -29,8 +29,6 @@ import com.alibaba.druid.sql.visitor.SQLASTVisitor; public class OraclePrimaryKey extends SQLPrimaryKeyImpl implements OracleConstraint, SQLPrimaryKey, SQLTableElement { - private SQLName name; - private OracleUsingIndexClause using; private SQLName exceptionsInto; private Boolean enable; @@ -61,14 +59,6 @@ public class OraclePrimaryKey extends SQLPrimaryKeyImpl implements OracleConstra this.deferrable = deferrable; } - public SQLName getName() { - return name; - } - - public void setName(SQLName name) { - this.name = name; - } - public List getColumns() { return columns; } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleUsingIndexClause.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleUsingIndexClause.java index a08c0961eb..a60dad8782 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleUsingIndexClause.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleUsingIndexClause.java @@ -17,6 +17,7 @@ package com.alibaba.druid.sql.dialect.oracle.ast.stmt; import com.alibaba.druid.sql.ast.SQLExpr; import com.alibaba.druid.sql.ast.SQLName; +import com.alibaba.druid.sql.ast.SQLPartition; import com.alibaba.druid.sql.dialect.oracle.ast.OracleSQLObjectImpl; import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleStorageClause; import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor; @@ -44,7 +45,7 @@ public class OracleUsingIndexClause extends OracleSQLObjectImpl { private boolean nocompress = false; private Boolean logging = null; - private List localPartitionIndex = new ArrayList(); + private List localPartitionIndex = new ArrayList(); public OracleUsingIndexClause(){ @@ -156,33 +157,7 @@ public class OracleUsingIndexClause extends OracleSQLObjectImpl { this.logging = logging; } - public List getLocalPartitionIndex() { + public List getLocalPartitionIndex() { return localPartitionIndex; } - - public static class PartitionedItem extends OracleSQLObjectImpl { - private SQLName partition; - private SQLName tablespace; - - @Override - public void accept0(OracleASTVisitor visitor) { - - } - - public SQLName getPartition() { - return partition; - } - - public void setPartition(SQLName partition) { - this.partition = partition; - } - - public SQLName getTablespace() { - return tablespace; - } - - public void setTablespace(SQLName tablespace) { - this.tablespace = tablespace; - } - } } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleCreateTableParser.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleCreateTableParser.java index fe4d255e86..0014d1bb78 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleCreateTableParser.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleCreateTableParser.java @@ -22,13 +22,12 @@ import com.alibaba.druid.sql.ast.SQLPartitionBy; import com.alibaba.druid.sql.ast.SQLPartitionByHash; import com.alibaba.druid.sql.ast.SQLPartitionByList; import com.alibaba.druid.sql.ast.SQLPartitionByRange; -import com.alibaba.druid.sql.ast.SQLPartitionValue; import com.alibaba.druid.sql.ast.SQLSubPartition; import com.alibaba.druid.sql.ast.SQLSubPartitionBy; import com.alibaba.druid.sql.ast.SQLSubPartitionByHash; import com.alibaba.druid.sql.ast.SQLSubPartitionByList; -import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr; import com.alibaba.druid.sql.ast.expr.SQLIntegerExpr; +import com.alibaba.druid.sql.ast.expr.SQLNumericLiteralExpr; import com.alibaba.druid.sql.ast.statement.SQLCreateTableStatement; import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleLobStorageClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleStorageClause; @@ -37,11 +36,7 @@ import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleCreateTableStatement. import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelect; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSupplementalIdKey; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSupplementalLogGrp; -import com.alibaba.druid.sql.parser.Lexer; -import com.alibaba.druid.sql.parser.ParserException; -import com.alibaba.druid.sql.parser.SQLCreateTableParser; -import com.alibaba.druid.sql.parser.Token; -import com.sun.org.apache.xpath.internal.operations.Bool; +import com.alibaba.druid.sql.parser.*; public class OracleCreateTableParser extends SQLCreateTableParser { @@ -61,11 +56,9 @@ public class OracleCreateTableParser extends SQLCreateTableParser { OracleCreateTableStatement stmt = (OracleCreateTableStatement) super.parseCrateTable(acceptCreate); for (;;) { - if (lexer.token() == Token.TABLESPACE) { - lexer.nextToken(); - stmt.setTablespace(this.exprParser.name()); - continue; - } else if (identifierEquals("IN_MEMORY_METADATA")) { + this.getExprParser().parseSegmentAttributes(stmt); + + if (identifierEquals("IN_MEMORY_METADATA")) { lexer.nextToken(); stmt.setInMemoryMetadata(true); continue; @@ -77,14 +70,6 @@ public class OracleCreateTableParser extends SQLCreateTableParser { lexer.nextToken(); stmt.setParallel(false); continue; - } else if (lexer.token() == Token.LOGGING) { - lexer.nextToken(); - stmt.setLogging(Boolean.TRUE); - continue; - } else if (identifierEquals("NOLOGGING")) { - lexer.nextToken(); - stmt.setLogging(Boolean.FALSE); - continue; } else if (lexer.token() == Token.CACHE) { lexer.nextToken(); stmt.setCache(Boolean.TRUE); @@ -122,6 +107,11 @@ public class OracleCreateTableParser extends SQLCreateTableParser { } else if (identifierEquals("COMPRESS")) { lexer.nextToken(); stmt.setCompress(Boolean.TRUE); + + if (lexer.token() == Token.LITERAL_INT) { + int compressLevel = ((SQLNumericLiteralExpr)this.exprParser.primary()).getNumber().intValue(); + stmt.setCompressLevel(compressLevel); + } continue; } else if (lexer.token() == Token.FOR) { lexer.nextToken(); @@ -149,26 +139,16 @@ public class OracleCreateTableParser extends SQLCreateTableParser { OracleStorageClause storage = ((OracleExprParser) this.exprParser).parseStorage(); stmt.setStorage(storage); continue; - } else if (identifierEquals("organization")) { - lexer.nextToken(); - if (lexer.token() == Token.INDEX) { - lexer.nextToken(); - stmt.setOrganizationIndex(true); - } else if (identifierEquals("EXTERNAL")) { - lexer.nextToken(); - accept(Token.LPAREN); - throw new ParserException("TODO " + lexer.info()); - } else { - throw new ParserException("TODO " + lexer.info()); - } + } else if (identifierEquals("ORGANIZATION")) { + parseOrganization(stmt); continue; - } else if (lexer.token() == Token.PCTFREE) { + } else if (identifierEquals("CLUSTER")) { lexer.nextToken(); - stmt.setPtcfree(this.exprParser.expr()); - continue; - } else if (identifierEquals("PCTUSED")) { - lexer.nextToken(); - stmt.setPctused(this.exprParser.expr()); + SQLName cluster = this.exprParser.name(); + stmt.setCluster(cluster); + accept(Token.LPAREN); + this.exprParser.names(stmt.getClusterColumns(), cluster); + accept(Token.RPAREN); continue; } else if (lexer.token() == Token.STORAGE) { OracleStorageClause storage = ((OracleExprParser) this.exprParser).parseStorage(); @@ -178,14 +158,6 @@ public class OracleCreateTableParser extends SQLCreateTableParser { OracleLobStorageClause lobStorage = ((OracleExprParser) this.exprParser).parseLobStorage(); stmt.setLobStorage(lobStorage); continue; - } else if (lexer.token() == Token.INITRANS) { - lexer.nextToken(); - stmt.setInitrans(this.exprParser.expr()); - continue; - } else if (lexer.token() == Token.MAXTRANS) { - lexer.nextToken(); - stmt.setMaxtrans(this.exprParser.expr()); - continue; } else if (lexer.token() == Token.SEGMENT) { lexer.nextToken(); accept(Token.CREATION); @@ -214,7 +186,7 @@ public class OracleCreateTableParser extends SQLCreateTableParser { if (lexer.token() == Token.LPAREN) { lexer.nextToken(); for (;;) { - SQLPartition partition = this.parsePartition(); + SQLPartition partition = this.getExprParser().parsePartition(); partitionByHash.addPartition(partition); if (lexer.token() == Token.COMMA) { lexer.nextToken(); @@ -250,6 +222,38 @@ public class OracleCreateTableParser extends SQLCreateTableParser { return stmt; } + private void parseOrganization(OracleCreateTableStatement stmt) { + OracleCreateTableStatement.Organization organization = new OracleCreateTableStatement.Organization(); + acceptIdentifier("ORGANIZATION"); + if (lexer.token() == Token.INDEX) { + lexer.nextToken(); + organization.setType("INDEX"); + this.getExprParser().parseSegmentAttributes(organization); + + // index_org_table_clause http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7002.htm#i2129638 + if (identifierEquals("PCTTHRESHOLD")) { + lexer.nextToken(); + + if (lexer.token() == Token.LITERAL_INT) { + int pctthreshold = ((SQLNumericLiteralExpr) this.exprParser.primary()).getNumber().intValue(); + organization.setPctthreshold(pctthreshold); + } + } + } else if (identifierEquals("HEAP")) { + lexer.nextToken(); + organization.setType("HEAP"); + this.getExprParser().parseSegmentAttributes(organization); + } else if (identifierEquals("EXTERNAL")) { + lexer.nextToken(); + organization.setType("EXTERNAL"); + accept(Token.LPAREN); + throw new ParserException("TODO " + lexer.info()); + } else { + throw new ParserException("TODO " + lexer.info()); + } + stmt.setOrganization(organization); + } + protected SQLPartitionByList partitionByList() { acceptIdentifier("LIST"); SQLPartitionByList partitionByList = new SQLPartitionByList(); @@ -335,7 +339,7 @@ public class OracleCreateTableParser extends SQLCreateTableParser { accept(Token.LPAREN); for (;;) { - SQLPartition partition = parsePartition(); + SQLPartition partition = this.getExprParser().parsePartition(); clause.addPartition(partition); @@ -350,97 +354,6 @@ public class OracleCreateTableParser extends SQLCreateTableParser { accept(Token.RPAREN); } - protected SQLPartition parsePartition() { - accept(Token.PARTITION); - SQLPartition partition = new SQLPartition(); - partition.setName(this.exprParser.name()); - - SQLPartitionValue values = this.exprParser.parsePartitionValues(); - if (values != null) { - partition.setValues(values); - } - - if (lexer.token() == Token.LPAREN) { - lexer.nextToken(); - - for (;;) { - SQLSubPartition subPartition = parseSubPartition(); - - partition.addSubPartition(subPartition); - - if (lexer.token() == Token.COMMA) { - lexer.nextToken(); - continue; - } - - break; - } - - accept(Token.RPAREN); - } else if (identifierEquals("SUBPARTITIONS")) { - lexer.nextToken(); - SQLExpr subPartitionsCount = this.exprParser.primary(); - partition.setSubPartitionsCount(subPartitionsCount); - } - - for (;;) { - if (lexer.token() == Token.TABLESPACE) { - lexer.nextToken(); - partition.setTablespace(this.exprParser.name()); - continue; - } else if (lexer.token() == Token.PCTFREE) { - lexer.nextToken(); - partition.setPtcfree(this.exprParser.expr()); - continue; - } else if (identifierEquals("PCTUSED")) { - lexer.nextToken(); - partition.setPctused(this.exprParser.expr()); - continue; - } else if (lexer.token() == Token.STORAGE) { - OracleStorageClause storage = ((OracleExprParser) this.exprParser).parseStorage(); - partition.setStorage(storage); - continue; - } else if (lexer.token() == Token.INITRANS) { - lexer.nextToken(); - partition.setInitrans(this.exprParser.expr()); - continue; - } else if (lexer.token() == Token.MAXTRANS) { - lexer.nextToken(); - partition.setMaxtrans(this.exprParser.expr()); - continue; - } else if (lexer.token() == Token.NOCOMPRESS) { - lexer.nextToken(); - partition.setCompress(Boolean.FALSE); - continue; - } else if (identifierEquals("COMPRESS")) { - lexer.nextToken(); - partition.setCompress(Boolean.TRUE); - continue; - } else if (lexer.token() == Token.LOB) { - OracleLobStorageClause lobStorage = ((OracleExprParser) this.exprParser).parseLobStorage(); - partition.setLobStorage(lobStorage); - continue; - } - break; - } - return partition; - } - - protected SQLSubPartition parseSubPartition() { - acceptIdentifier("SUBPARTITION"); - - SQLSubPartition subPartition = new SQLSubPartition(); - SQLName name = this.exprParser.name(); - subPartition.setName(name); - - SQLPartitionValue values = this.exprParser.parsePartitionValues(); - if (values != null) { - subPartition.setValues(values); - } - - return subPartition; - } - protected void partitionClauseRest(SQLPartitionBy clause) { if (identifierEquals("PARTITIONS")) { lexer.nextToken(); @@ -487,7 +400,7 @@ public class OracleCreateTableParser extends SQLCreateTableParser { accept(Token.LPAREN); for (;;) { - SQLSubPartition subPartition = parseSubPartition(); + SQLSubPartition subPartition = this.getExprParser().parseSubPartition(); subPartition.setParent(byList); byList.getSubPartitionTemplate().add(subPartition); @@ -593,4 +506,10 @@ public class OracleCreateTableParser extends SQLCreateTableParser { stmt.getTableElementList().add(idKey); } } + + public OracleExprParser getExprParser() { + return (OracleExprParser) exprParser; + } + + } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleExprParser.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleExprParser.java index 9c16df41bf..8d95544a53 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleExprParser.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleExprParser.java @@ -17,14 +17,8 @@ package com.alibaba.druid.sql.dialect.oracle.parser; import java.math.BigInteger; -import com.alibaba.druid.sql.ast.SQLDataType; -import com.alibaba.druid.sql.ast.SQLDataTypeImpl; -import com.alibaba.druid.sql.ast.SQLExpr; -import com.alibaba.druid.sql.ast.SQLKeep; +import com.alibaba.druid.sql.ast.*; import com.alibaba.druid.sql.ast.SQLKeep.DenseRank; -import com.alibaba.druid.sql.ast.SQLName; -import com.alibaba.druid.sql.ast.SQLOrderBy; -import com.alibaba.druid.sql.ast.SQLOrderingSpecification; import com.alibaba.druid.sql.ast.expr.SQLAggregateExpr; import com.alibaba.druid.sql.ast.expr.SQLAggregateOption; import com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr; @@ -44,12 +38,11 @@ import com.alibaba.druid.sql.ast.expr.SQLVariantRefExpr; import com.alibaba.druid.sql.ast.statement.SQLCharacterDataType; import com.alibaba.druid.sql.ast.statement.SQLCheck; import com.alibaba.druid.sql.ast.statement.SQLColumnDefinition; -import com.alibaba.druid.sql.ast.statement.SQLForeignKeyConstraint; -import com.alibaba.druid.sql.ast.statement.SQLSelectOrderByItem; import com.alibaba.druid.sql.ast.statement.SQLUnique; import com.alibaba.druid.sql.dialect.oracle.ast.OracleDataTypeIntervalDay; import com.alibaba.druid.sql.dialect.oracle.ast.OracleDataTypeIntervalYear; import com.alibaba.druid.sql.dialect.oracle.ast.OracleDataTypeTimestamp; +import com.alibaba.druid.sql.dialect.oracle.ast.OracleSegmentAttributes; import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleLobStorageClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleStorageClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleStorageClause.FlashCacheType; @@ -471,6 +464,7 @@ public class OracleExprParser extends SQLExprParser { case KEEP_DUPLICATES: case EXCEPTIONS: case PURGE: + case OUTER: sqlExpr = new SQLIdentifierExpr(lexer.stringVal()); lexer.nextToken(); return primaryRest(sqlExpr); @@ -1075,15 +1069,9 @@ public class OracleExprParser extends SQLExprParser { // http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5010.htm#i2125897 for (;;) { - accept(Token.PARTITION); - OracleUsingIndexClause.PartitionedItem item = new OracleUsingIndexClause.PartitionedItem(); - item.setPartition(this.name()); - if (lexer.token() == Token.TABLESPACE) { - lexer.nextToken(); - item.setTablespace(this.name()); - } - - using.getLocalPartitionIndex().add(item); + SQLPartition partition = this.parsePartition(); + partition.setParent(using); + using.getLocalPartitionIndex().add(partition); if (lexer.token() == Token.COMMA) { lexer.nextToken(); @@ -1091,7 +1079,7 @@ public class OracleExprParser extends SQLExprParser { } else if (lexer.token() == Token.RPAREN) { break; } else { - throw new ParserException("TODO " + lexer.token()); + throw new ParserException("TODO " + lexer.info()); } } accept(Token.RPAREN); @@ -1390,7 +1378,18 @@ public class OracleExprParser extends SQLExprParser { constraint.setEnable(true); continue; } - + + if (identifierEquals("VALIDATE")) { + lexer.nextToken(); + constraint.setValidate(Boolean.TRUE); + continue; + } + if (identifierEquals("NOVALIDATE")) { + lexer.nextToken(); + constraint.setValidate(Boolean.FALSE); + continue; + } + if (lexer.token() == Token.INITIALLY) { lexer.nextToken(); @@ -1434,4 +1433,141 @@ public class OracleExprParser extends SQLExprParser { protected SQLCheck createCheck() { return new OracleCheck(); } + + protected SQLPartition parsePartition() { + accept(Token.PARTITION); + SQLPartition partition = new SQLPartition(); + partition.setName(this.name()); + + SQLPartitionValue values = this.parsePartitionValues(); + if (values != null) { + partition.setValues(values); + } + + if (lexer.token() == Token.LPAREN) { + lexer.nextToken(); + + for (;;) { + SQLSubPartition subPartition = parseSubPartition(); + + partition.addSubPartition(subPartition); + + if (lexer.token() == Token.COMMA) { + lexer.nextToken(); + continue; + } + + break; + } + + accept(Token.RPAREN); + } else if (identifierEquals("SUBPARTITIONS")) { + lexer.nextToken(); + SQLExpr subPartitionsCount = this.primary(); + partition.setSubPartitionsCount(subPartitionsCount); + } + + for (;;) { + parseSegmentAttributes(partition); + + if (lexer.token() == Token.LOB) { + OracleLobStorageClause lobStorage = this.parseLobStorage(); + partition.setLobStorage(lobStorage); + continue; + } + + if (lexer.token() == Token.SEGMENT || identifierEquals("SEGMENT")) { + lexer.nextToken(); + accept(Token.CREATION); + if (lexer.token() == Token.IMMEDIATE) { + lexer.nextToken(); + partition.setSegmentCreationImmediate(true); + } else if (lexer.token() == Token.DEFERRED) { + lexer.nextToken(); + partition.setSegmentCreationDeferred(true); + } + continue; + } + break; + } + return partition; + } + + protected SQLSubPartition parseSubPartition() { + acceptIdentifier("SUBPARTITION"); + + SQLSubPartition subPartition = new SQLSubPartition(); + SQLName name = this.name(); + subPartition.setName(name); + + SQLPartitionValue values = this.parsePartitionValues(); + if (values != null) { + subPartition.setValues(values); + } + + return subPartition; + } + + public void parseSegmentAttributes(OracleSegmentAttributes attributes) { + for (;;) { + if (lexer.token() == Token.TABLESPACE) { + lexer.nextToken(); + attributes.setTablespace(this.name()); + continue; + } else if (lexer.token() == Token.NOCOMPRESS || identifierEquals("NOCOMPRESS")) { + lexer.nextToken(); + attributes.setCompress(Boolean.FALSE); + continue; + } else if (identifierEquals("COMPRESS")) { + lexer.nextToken(); + attributes.setCompress(Boolean.TRUE); + + if (lexer.token() == Token.LITERAL_INT) { + int compressLevel = this.parseIntValue(); + attributes.setCompressLevel(compressLevel); + } else if (identifierEquals("BASIC")) { + lexer.nextToken(); + // TODO COMPRESS BASIC + } + continue; + } else if (identifierEquals("NOCOMPRESS")) { + lexer.nextToken(); + attributes.setCompress(Boolean.FALSE); + continue; + } else if (lexer.token() == Token.LOGGING || identifierEquals("LOGGING")) { + lexer.nextToken(); + attributes.setLogging(Boolean.TRUE); + continue; + } else if (identifierEquals("NOLOGGING")) { + lexer.nextToken(); + attributes.setLogging(Boolean.FALSE); + continue; + } else if (lexer.token() == Token.INITRANS) { + lexer.nextToken(); + attributes.setInitrans(this.parseIntValue()); + continue; + } else if (lexer.token() == Token.MAXTRANS) { + lexer.nextToken(); + attributes.setMaxtrans(this.parseIntValue()); + } else if (lexer.token() == Token.PCTINCREASE) { + lexer.nextToken(); + attributes.setPctincrease(this.parseIntValue()); + continue; + } else if (lexer.token() == Token.PCTFREE) { + lexer.nextToken(); + attributes.setPctfree(this.parseIntValue()); + continue; + } else if (lexer.token() == Token.STORAGE || identifierEquals("STORAGE")) { + OracleStorageClause storage = this.parseStorage(); + attributes.setStorage(storage); + continue; + } else if (identifierEquals("PCTUSED")) { + lexer.nextToken(); + attributes.setPctused(this.parseIntValue()); + continue; + } else { + break; + } + } + } } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleASTVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleASTVisitor.java index e769222c49..4c41ecd0c9 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleASTVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleASTVisitor.java @@ -448,4 +448,8 @@ public interface OracleASTVisitor extends SQLASTVisitor { boolean visit(OracleSupplementalLogGrp x); void endVisit(OracleSupplementalLogGrp x); + + boolean visit(OracleCreateTableStatement.Organization x); + + void endVisit(OracleCreateTableStatement.Organization x); } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleASTVisitorAdapter.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleASTVisitorAdapter.java index b1aeb06632..d6bf5ace95 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleASTVisitorAdapter.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleASTVisitorAdapter.java @@ -1086,4 +1086,12 @@ public class OracleASTVisitorAdapter extends SQLASTVisitorAdapter implements Ora public void endVisit(OracleSupplementalLogGrp x) { } + + public boolean visit(OracleCreateTableStatement.Organization x) { + return true; + } + + public void endVisit(OracleCreateTableStatement.Organization x) { + + } } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleOutputVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleOutputVisitor.java index 562e706259..6a5ecb7efe 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleOutputVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleOutputVisitor.java @@ -28,6 +28,7 @@ import com.alibaba.druid.sql.ast.statement.SQLJoinTableSource.JoinType; import com.alibaba.druid.sql.dialect.oracle.ast.OracleDataTypeIntervalDay; import com.alibaba.druid.sql.dialect.oracle.ast.OracleDataTypeIntervalYear; import com.alibaba.druid.sql.dialect.oracle.ast.OracleDataTypeTimestamp; +import com.alibaba.druid.sql.dialect.oracle.ast.OracleSegmentAttributes; import com.alibaba.druid.sql.dialect.oracle.ast.clause.CycleClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.FlashbackQueryClause.AsOfFlashbackQueryClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.FlashbackQueryClause.AsOfSnapshotClause; @@ -2092,28 +2093,14 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS public boolean visit(OracleCreateTableStatement x) { this.visit((SQLCreateTableStatement) x); - if (x.isOrganizationIndex()) { + if (x.getOrganization() != null) { println(); - print0(ucase ? "ORGANIZATION INDEX" : "organization index"); + incrementIndent(); + x.getOrganization().accept(this); + decrementIndent(); } - if (x.getPtcfree() != null) { - println(); - print0(ucase ? "PCTFREE " : "pctfree "); - x.getPtcfree().accept(this); - } - - if (x.getInitrans() != null) { - println(); - print0(ucase ? "INITRANS " : "initrans "); - x.getInitrans().accept(this); - } - - if (x.getMaxtrans() != null) { - println(); - print0(ucase ? "MAXTRANS " : "maxtrans "); - x.getMaxtrans().accept(this); - } + printOracleSegmentAttributes(x); if (x.isInMemoryMetadata()) { println(); @@ -2141,33 +2128,6 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS print0(ucase ? "NOCACHE" : "nocache"); } - if (x.getCompress() == Boolean.FALSE) { - println(); - print0(ucase ? "NOCOMPRESS" : "nocompress"); - } else if (x.getCompress() == Boolean.TRUE) { - println(); - print0(ucase ? "COMPRESS" : "compress"); - } - - if (x.getLogging() == Boolean.TRUE) { - println(); - print0(ucase ? "LOGGING" : "logging"); - } else if (x.getLogging() == Boolean.FALSE) { - println(); - print0(ucase ? "NOLOGGING" : "nologging"); - } - - if (x.getTablespace() != null) { - println(); - print0(ucase ? "TABLESPACE " : "tablespace "); - x.getTablespace().accept(this); - } - - if (x.getStorage() != null) { - println(); - x.getStorage().accept(this); - } - if (x.getLobStorage() != null) { println(); x.getLobStorage().accept(this); @@ -2188,6 +2148,15 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS x.getPartitioning().accept(this); } + if (x.getCluster() != null) { + println(); + print0(ucase ? "CLUSTER " : "cluster "); + x.getCluster().accept(this); + print0(" ("); + printAndAccept(x.getClusterColumns(), ","); + print0(")"); + } + if (x.getSelect() != null) { println(); print0(ucase ? "AS" : "as"); @@ -3127,4 +3096,24 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS public void endVisit(OracleSupplementalLogGrp x) { } + + + + public boolean visit(OracleCreateTableStatement.Organization x) { + print0(ucase ? "ORGANIZATION " : "organization "); + print0(ucase ? x.getType() : x.getType().toLowerCase()); + + printOracleSegmentAttributes(x); + + if (x.getPctthreshold() != null) { + println(); + print0(ucase ? "PCTTHRESHOLD " : "pctthreshold "); + print(x.getPctfree()); + } + return false; + } + + public void endVisit(OracleCreateTableStatement.Organization x) { + + } } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleSchemaStatVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleSchemaStatVisitor.java index 6c236b6589..775792b38d 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleSchemaStatVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleSchemaStatVisitor.java @@ -1419,4 +1419,12 @@ public class OracleSchemaStatVisitor extends SchemaStatVisitor implements Oracle public void endVisit(OracleSupplementalLogGrp x) { } + + public boolean visit(OracleCreateTableStatement.Organization x) { + return false; + } + + public void endVisit(OracleCreateTableStatement.Organization x) { + + } } diff --git a/src/main/java/com/alibaba/druid/sql/parser/SQLExprParser.java b/src/main/java/com/alibaba/druid/sql/parser/SQLExprParser.java index cf8e9f20ef..0bc28625d9 100644 --- a/src/main/java/com/alibaba/druid/sql/parser/SQLExprParser.java +++ b/src/main/java/com/alibaba/druid/sql/parser/SQLExprParser.java @@ -191,6 +191,17 @@ public class SQLExprParser extends SQLParser { return intExpr; } + public int parseIntValue() { + if (lexer.token() == Token.LITERAL_INT) { + Number number = this.lexer.integerValue(); + int intVal = ((Integer) number).intValue(); + lexer.nextToken(); + return intVal; + } else { + throw new ParserException("not int. " + lexer.info()); + } + } + public SQLExpr primary() { List beforeComments = null; if (lexer.isKeepComments() && lexer.hasComment()) { diff --git a/src/main/java/com/alibaba/druid/sql/parser/SQLParser.java b/src/main/java/com/alibaba/druid/sql/parser/SQLParser.java index c49436e228..3f32928b2b 100644 --- a/src/main/java/com/alibaba/druid/sql/parser/SQLParser.java +++ b/src/main/java/com/alibaba/druid/sql/parser/SQLParser.java @@ -119,6 +119,7 @@ public class SQLParser { case LOB: case END: case DEFERRED: + case OUTER: alias = lexer.stringVal(); lexer.nextToken(); break; diff --git a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java index ccf21b3f53..3724cf2ab4 100644 --- a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java @@ -33,6 +33,7 @@ import com.alibaba.druid.sql.ast.statement.SQLInsertStatement.ValuesClause; import com.alibaba.druid.sql.ast.statement.SQLJoinTableSource.JoinType; import com.alibaba.druid.sql.ast.statement.SQLMergeStatement.MergeInsertClause; import com.alibaba.druid.sql.ast.statement.SQLMergeStatement.MergeUpdateClause; +import com.alibaba.druid.sql.dialect.oracle.ast.OracleSegmentAttributes; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelectQueryBlock; import com.alibaba.druid.util.JdbcConstants; @@ -1722,6 +1723,25 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter implements Paramet return false; } + protected void printTableElements(List tableElementList) { + int size = tableElementList.size(); + if (size > 0) { + print0(" ("); + incrementIndent(); + println(); + for (int i = 0; i < size; ++i) { + if (i != 0) { + print0(","); + println(); + } + tableElementList.get(i).accept(this); + } + decrementIndent(); + println(); + print(')'); + } + } + public boolean visit(SQLCreateTableStatement x) { print0(ucase ? "CREATE TABLE " : "create table "); if (SQLCreateTableStatement.Type.GLOBAL_TEMPORARY.equals(x.getType())) { @@ -1732,23 +1752,7 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter implements Paramet printTableSourceExpr(x.getName()); - int size = x.getTableElementList().size(); - - if (size > 0) { - print0(" ("); - incrementIndent(); - println(); - for (int i = 0; i < size; ++i) { - if (i != 0) { - print(','); - println(); - } - x.getTableElementList().get(i).accept(this); - } - decrementIndent(); - println(); - print(')'); - } + printTableElements(x.getTableElementList()); if (x.getInherits() != null) { print0(ucase ? " INHERITS (" : " inherits ("); @@ -3571,15 +3575,16 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter implements Paramet decrementIndent(); } - if (x.getTableSpace() != null) { - print0(ucase ? " TABLESPACE " : " tablespace "); - x.getTableSpace().accept(this); - } + incrementIndent(); + printOracleSegmentAttributes(x); + if (x.getEngine() != null) { - print0(ucase ? " STORAGE ENGINE " : " storage engine "); + println(); + print0(ucase ? "STORAGE ENGINE " : "storage engine "); x.getEngine().accept(this); } + decrementIndent(); if (x.getMaxRows() != null) { print0(ucase ? " MAX_ROWS " : " max_rows "); @@ -4141,4 +4146,52 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter implements Paramet x.getConnectBy().accept(this); } } + + public void printOracleSegmentAttributes(OracleSegmentAttributes x) { + + if (x.getPctfree() != null) { + println(); + print0(ucase ? "PCTFREE " : "pctfree "); + print(x.getPctfree()); + } + + if (x.getInitrans() != null) { + println(); + print0(ucase ? "INITRANS " : "initrans "); + print(x.getInitrans()); + } + + if (x.getMaxtrans() != null) { + println(); + print0(ucase ? "MAXTRANS " : "maxtrans "); + print(x.getMaxtrans()); + } + + if (x.getCompress() == Boolean.FALSE) { + println(); + print0(ucase ? "NOCOMPRESS" : "nocompress"); + } else if (x.getCompress() == Boolean.TRUE) { + println(); + print0(ucase ? "COMPRESS" : "compress"); + } + + if (x.getLogging() == Boolean.TRUE) { + println(); + print0(ucase ? "LOGGING" : "logging"); + } else if (x.getLogging() == Boolean.FALSE) { + println(); + print0(ucase ? "NOLOGGING" : "nologging"); + } + + if (x.getTablespace() != null) { + println(); + print0(ucase ? "TABLESPACE " : "tablespace "); + x.getTablespace().accept(this); + } + + if (x.getStorage() != null) { + println(); + x.getStorage().accept(this); + } + } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/MappingTest_createTable_2.java b/src/test/java/com/alibaba/druid/bvt/sql/MappingTest_createTable_2.java index 5655f13d23..1399f1de28 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/MappingTest_createTable_2.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/MappingTest_createTable_2.java @@ -31,8 +31,8 @@ public class MappingTest_createTable_2 extends TestCase { public void test_mapping_createTable_mysql() throws Exception { String result = SQLUtils.refactor(sql, JdbcConstants.MYSQL, mapping); assertEquals("CREATE TABLE database_target.table_target (\n" + - "\tsource_key int, \n" + - "\tsource_value varchar(32), \n" + + "\tsource_key int,\n" + + "\tsource_value varchar(32),\n" + "\tPRIMARY KEY (source_key)\n" + ")", result); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/MySqlFormatTest.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/MySqlFormatTest.java index d680db81a1..2d6a4018ce 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/MySqlFormatTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/MySqlFormatTest.java @@ -26,8 +26,8 @@ public class MySqlFormatTest extends TestCase { public void test_0() throws Exception { String text = "CREATE TABLE customer (a INT, b CHAR (20), INDEX (a));"; Assert.assertEquals("CREATE TABLE customer (\n" + // - "\ta INT, \n" + // - "\tb CHAR(20), \n" + // + "\ta INT,\n" + // + "\tb CHAR(20),\n" + // "\tINDEX(a)\n" + // ");", SQLUtils.format(text, JdbcUtils.MYSQL)); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/MySqlHintStatementTest.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/MySqlHintStatementTest.java index 9d4d95b29c..f849ae1bc6 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/MySqlHintStatementTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/MySqlHintStatementTest.java @@ -41,8 +41,8 @@ public class MySqlHintStatementTest extends TestCase { + "\n/*!40101 SET character_set_client = utf8 */;" + "\n" + "\nCREATE TABLE `item_similarity` (" - + "\n\t`id` bigint(20) UNSIGNED NOT NULL, " - + "\n\t`sellerId` bigint(20) DEFAULT NULL, " + + "\n\t`id` bigint(20) UNSIGNED NOT NULL," + + "\n\t`sellerId` bigint(20) DEFAULT NULL," + "\n\tPRIMARY KEY (`id`)" + "\n) ENGINE = InnoDB CHARSET = utf8;" + "\n" diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCeateTableTest34.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCeateTableTest34.java index e803f264b3..714825911a 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCeateTableTest34.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCeateTableTest34.java @@ -48,12 +48,12 @@ public class MySqlCeateTableTest34 extends TestCase { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE \"item_extra\" (\n" + - "\t\"id\" int(10) UNSIGNED NOT NULL AUTO_INCREMENT, \n" + - "\t\"item_id\" int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '商品id', \n" + - "\t\"type\" tinyint(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '扩展属性类型,0:虚拟商品', \n" + - "\t\"attr_key\" varchar(50) NOT NULL COMMENT '扩展属性key', \n" + - "\t\"attr_value\" varchar(500) NOT NULL COMMENT '扩展属性value', \n" + - "\tPRIMARY KEY ('id'), \n" + + "\t\"id\" int(10) UNSIGNED NOT NULL AUTO_INCREMENT,\n" + + "\t\"item_id\" int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '商品id',\n" + + "\t\"type\" tinyint(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '扩展属性类型,0:虚拟商品',\n" + + "\t\"attr_key\" varchar(50) NOT NULL COMMENT '扩展属性key',\n" + + "\t\"attr_value\" varchar(500) NOT NULL COMMENT '扩展属性value',\n" + + "\tPRIMARY KEY ('id'),\n" + "\tKEY \"idx_item_type_kv\" ('item_id', 'type', 'attr_key', 'attr_value'(191))\n" + ")", output); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest14.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest14.java index 2f3a7fe39e..013cb186fc 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest14.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest14.java @@ -45,24 +45,24 @@ public class MySqlCreateTableTest14 extends MysqlTest { SQLStatement stmt = statementList.get(0); Assert.assertEquals("CREATE TABLE `OptionList` (" - + "\n\t`ID` int(11) NOT NULL AUTO_INCREMENT, " - + "\n\t`OptionID` int(11) DEFAULT NULL COMMENT '选项ID', " - + "\n\t`QuizID` int(11) DEFAULT NULL COMMENT '竞猜题目ID', " - + "\n\t`OptionName` varchar(500) DEFAULT NULL COMMENT '选项名称', " - + "\n\t`OptionCount` int(11) DEFAULT NULL COMMENT '选择的人数', " - + "\n\tPRIMARY KEY (`ID`), " - + "\n\tKEY `quizId` USING BTREE (`QuizID`), " + + "\n\t`ID` int(11) NOT NULL AUTO_INCREMENT," + + "\n\t`OptionID` int(11) DEFAULT NULL COMMENT '选项ID'," + + "\n\t`QuizID` int(11) DEFAULT NULL COMMENT '竞猜题目ID'," + + "\n\t`OptionName` varchar(500) DEFAULT NULL COMMENT '选项名称'," + + "\n\t`OptionCount` int(11) DEFAULT NULL COMMENT '选择的人数'," + + "\n\tPRIMARY KEY (`ID`)," + + "\n\tKEY `quizId` USING BTREE (`QuizID`)," + "\n\tKEY `optionId` USING BTREE (`OptionID`)" + "\n) ENGINE = InnoDB CHARSET = gbk COMMENT = ''", // SQLUtils.toMySqlString(stmt)); Assert.assertEquals("create table `OptionList` (" - + "\n\t`ID` int(11) not null auto_increment, " - + "\n\t`OptionID` int(11) default null comment '选项ID', " - + "\n\t`QuizID` int(11) default null comment '竞猜题目ID', " - + "\n\t`OptionName` varchar(500) default null comment '选项名称', " - + "\n\t`OptionCount` int(11) default null comment '选择的人数', " - + "\n\tprimary key (`ID`), " - + "\n\tkey `quizId` using BTREE (`QuizID`), " + + "\n\t`ID` int(11) not null auto_increment," + + "\n\t`OptionID` int(11) default null comment '选项ID'," + + "\n\t`QuizID` int(11) default null comment '竞猜题目ID'," + + "\n\t`OptionName` varchar(500) default null comment '选项名称'," + + "\n\t`OptionCount` int(11) default null comment '选择的人数'," + + "\n\tprimary key (`ID`)," + + "\n\tkey `quizId` using BTREE (`QuizID`)," + "\n\tkey `optionId` using BTREE (`OptionID`)" + "\n) engine = InnoDB charset = gbk comment = ''", // SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION)); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest22.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest22.java index d816c21b0d..1d0c6b9398 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest22.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest22.java @@ -57,7 +57,7 @@ public class MySqlCreateTableTest22 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE t1 (" + // - "\n\tc1 INT STORAGE DISK, " + // + "\n\tc1 INT STORAGE DISK," + // "\n\tc2 INT STORAGE MEMORY" + // "\n) TABLESPACE ts_1 ENGINE = NDB", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest23.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest23.java index 60f5bdc37c..9ae2d71ff1 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest23.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest23.java @@ -56,7 +56,7 @@ public class MySqlCreateTableTest23 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE lookup (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tINDEX USING BTREE(id)" + // "\n) ENGINE = MEMORY", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest24.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest24.java index 60480559aa..8c3d3b0be6 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest24.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest24.java @@ -56,7 +56,7 @@ public class MySqlCreateTableTest24 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE lookup (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tINDEX USING BTREE(id)" + // "\n) AVG_ROW_LENGTH = 1024", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest25.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest25.java index 32b239fc73..8899c3196d 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest25.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest25.java @@ -56,7 +56,7 @@ public class MySqlCreateTableTest25 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE lookup (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tINDEX USING BTREE(id)" + // "\n) AVG_ROW_LENGTH = 1024", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest26.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest26.java index ac6f7fec7a..48fb65b8db 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest26.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest26.java @@ -56,7 +56,7 @@ public class MySqlCreateTableTest26 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE lookup (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tINDEX USING BTREE(id)" + // "\n) MAX_ROWS = 1024", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest27.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest27.java index fdedac3400..23b5a378fa 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest27.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest27.java @@ -56,7 +56,7 @@ public class MySqlCreateTableTest27 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE lookup (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tINDEX USING BTREE(id)" + // "\n) MAX_ROWS = 1024", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest28.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest28.java index 075d763a28..0cb082f216 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest28.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest28.java @@ -56,7 +56,7 @@ public class MySqlCreateTableTest28 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE lookup (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tINDEX USING BTREE(id)" + // "\n) MIN_ROWS = 1024", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest29.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest29.java index 91bbf4b742..c7ccd76ac7 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest29.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest29.java @@ -56,7 +56,7 @@ public class MySqlCreateTableTest29 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE user (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tINDEX USING BTREE(id)" + // "\n) MIN_ROWS = 1024", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest30.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest30.java index 38ce197a02..a8b96f931b 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest30.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest30.java @@ -56,7 +56,7 @@ public class MySqlCreateTableTest30 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE lookup (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tINDEX USING BTREE(id)" + // "\n) DELAY_KEY_WRITE = 0", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest31.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest31.java index d809f45ad7..da5fa46b3b 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest31.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest31.java @@ -56,7 +56,7 @@ public class MySqlCreateTableTest31 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE lookup (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tINDEX USING BTREE(id)" + // "\n) DELAY_KEY_WRITE = 1", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest32.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest32.java index 403a8052e0..1692fcf6dd 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest32.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest32.java @@ -56,7 +56,7 @@ public class MySqlCreateTableTest32 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE lookup (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tINDEX USING BTREE(id)" + // "\n) DATA DIRECTORY = 'aaa'", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest33.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest33.java index 70decda605..f602be0ef1 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest33.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest33.java @@ -56,7 +56,7 @@ public class MySqlCreateTableTest33 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE lookup (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tINDEX USING BTREE(id)" + // "\n) CONNECTION = 'aaa'", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest34.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest34.java index b8b2340480..b637cdf423 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest34.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest34.java @@ -56,7 +56,7 @@ public class MySqlCreateTableTest34 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE lookup (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tINDEX USING BTREE(id)" + // "\n) CHECKSUM = 1", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest35.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest35.java index 03f81f683f..3032f2c065 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest35.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest35.java @@ -56,7 +56,7 @@ public class MySqlCreateTableTest35 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE lookup (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tINDEX USING BTREE(id)" + // "\n) AUTO_INCREMENT = 1", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest36.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest36.java index a6596cc095..9f928fe0c3 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest36.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest36.java @@ -56,7 +56,7 @@ public class MySqlCreateTableTest36 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE lookup (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tINDEX USING BTREE(id)" + // "\n) STATS_AUTO_RECALC = 1", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest37.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest37.java index a0e32e472e..4f38ac70e7 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest37.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest37.java @@ -56,7 +56,7 @@ public class MySqlCreateTableTest37 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE lookup (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tINDEX USING BTREE(id)" + // "\n) STATS_AUTO_RECALC = DEFAULT", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest38.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest38.java index 8647e31dbf..a5058dcd3a 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest38.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest38.java @@ -56,7 +56,7 @@ public class MySqlCreateTableTest38 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE lookup (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tINDEX USING BTREE(id)" + // "\n) STATS_PERSISTENT = DEFAULT", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest39.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest39.java index db78b2db2e..025f839ef0 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest39.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest39.java @@ -56,7 +56,7 @@ public class MySqlCreateTableTest39 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE lookup (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tINDEX USING BTREE(id)" + // "\n) STATS_PERSISTENT = 1", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest40.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest40.java index 332992a44f..0a51e29f99 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest40.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest40.java @@ -55,7 +55,7 @@ public class MySqlCreateTableTest40 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE t1 (" + // - "\n\tcol1 INT, " + // + "\n\tcol1 INT," + // "\n\tcol2 CHAR(5)" + // "\n)" + "\nPARTITION BY HASH (col1)", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest41.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest41.java index 57f2765e8e..0b4da1e2c2 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest41.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest41.java @@ -56,8 +56,8 @@ public class MySqlCreateTableTest41 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE tk (" + // - "\n\tcol1 INT, " + // - "\n\tcol2 CHAR(5), " + // + "\n\tcol1 INT," + // + "\n\tcol2 CHAR(5)," + // "\n\tcol3 DATE" + // "\n)" + "\nPARTITION BY LINEAR KEY (col3) PARTITIONS 5", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest42.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest42.java index 13f2e8af34..950a280aa1 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest42.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest42.java @@ -63,7 +63,7 @@ public class MySqlCreateTableTest42 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE rc (" + // - "\n\ta INT NOT NULL, " + // + "\n\ta INT NOT NULL," + // "\n\tb INT NOT NULL" + // "\n)" + "\nPARTITION BY RANGE COLUMNS (a, b)" diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest43.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest43.java index dae8f05da1..8de1842a26 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest43.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest43.java @@ -63,7 +63,7 @@ public class MySqlCreateTableTest43 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE client_firms (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tname VARCHAR(35)" + // "\n)" + "\nPARTITION BY LIST (id)" diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest44.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest44.java index b0a0e05046..801cff9069 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest44.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest44.java @@ -63,7 +63,7 @@ public class MySqlCreateTableTest44 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE lc (" + // - "\n\ta INT NULL, " + // + "\n\ta INT NULL," + // "\n\tb INT NULL" + // "\n)" + // "\nPARTITION BY LIST COLUMNS (a, b)" diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest45.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest45.java index 3351238353..0d6275058c 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest45.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest45.java @@ -69,8 +69,8 @@ public class MySqlCreateTableTest45 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE th (" + // - "\n\tid INT, " + // - "\n\tname VARCHAR(30), " + // + "\n\tid INT," + // + "\n\tname VARCHAR(30)," + // "\n\tadate DATE" + // "\n)" + // "\nPARTITION BY LIST (YEAR(adate))" + // diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest46.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest46.java index 3f96c368fb..5e39a6285b 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest46.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest46.java @@ -50,7 +50,7 @@ public class MySqlCreateTableTest46 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE lookup (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tINDEX USING BTREE(id)" + // "\n) STATS_PERSISTENT = 1", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest47.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest47.java index 29f399cdc2..74584681e4 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest47.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest47.java @@ -54,11 +54,11 @@ public class MySqlCreateTableTest47 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE issuestatus ("// - + "\n\tID VARCHAR(60) NOT NULL, "// - + "\n\tSEQUENCE DECIMAL(18, 0), "// - + "\n\tpname VARCHAR(60), "// - + "\n\tDESCRIPTION TEXT, "// - + "\n\tICONURL VARCHAR(255), "// + + "\n\tID VARCHAR(60) NOT NULL,"// + + "\n\tSEQUENCE DECIMAL(18, 0),"// + + "\n\tpname VARCHAR(60),"// + + "\n\tDESCRIPTION TEXT,"// + + "\n\tICONURL VARCHAR(255),"// + "\n\tCONSTRAINT PK_issuestatus PRIMARY KEY (ID)"// + "\n)", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest48.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest48.java index 5bf025778b..c2df48a698 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest48.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest48.java @@ -55,11 +55,11 @@ public class MySqlCreateTableTest48 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE AO_E8B6CC_REPO_TO_CHANGESET ("// - + "\n\tCHANGESET_ID INTEGER, "// - + "\n\tID INTEGER NOT NULL AUTO_INCREMENT, "// - + "\n\tREPOSITORY_ID INTEGER, "// - + "\n\tCONSTRAINT fk_ao_e8b6cc_repo_to_changeset_repository_id FOREIGN KEY (REPOSITORY_ID) REFERENCES AO_E8B6CC_REPOSITORY_MAPPING (ID), "// - + "\n\tCONSTRAINT fk_ao_e8b6cc_repo_to_changeset_changeset_id FOREIGN KEY (CHANGESET_ID) REFERENCES AO_E8B6CC_CHANGESET_MAPPING (ID), "// + + "\n\tCHANGESET_ID INTEGER,"// + + "\n\tID INTEGER NOT NULL AUTO_INCREMENT,"// + + "\n\tREPOSITORY_ID INTEGER,"// + + "\n\tCONSTRAINT fk_ao_e8b6cc_repo_to_changeset_repository_id FOREIGN KEY (REPOSITORY_ID) REFERENCES AO_E8B6CC_REPOSITORY_MAPPING (ID),"// + + "\n\tCONSTRAINT fk_ao_e8b6cc_repo_to_changeset_changeset_id FOREIGN KEY (CHANGESET_ID) REFERENCES AO_E8B6CC_CHANGESET_MAPPING (ID),"// + "\n\tPRIMARY KEY (ID)"// + "\n) ENGINE = InnoDB",// output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest49.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest49.java index 286bb90574..59951775b3 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest49.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest49.java @@ -56,12 +56,12 @@ public class MySqlCreateTableTest49 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE tauth (" // - + "\n\tcid varchar(36) NOT NULL UNIQUE, "// - + "\n\tcdesc varchar(200), "// - + "\n\tcname varchar(100) NOT NULL, "// - + "\n\tcseq decimal(22, 0), "// - + "\n\tcurl varchar(200), "// - + "\n\tcpid varchar(36), "// + + "\n\tcid varchar(36) NOT NULL UNIQUE,"// + + "\n\tcdesc varchar(200),"// + + "\n\tcname varchar(100) NOT NULL,"// + + "\n\tcseq decimal(22, 0),"// + + "\n\tcurl varchar(200),"// + + "\n\tcpid varchar(36),"// + "\n\tPRIMARY KEY (cid)"// + "\n)",// output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest50.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest50.java index a69d3b3ee5..85b581013d 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest50.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest50.java @@ -51,7 +51,7 @@ public class MySqlCreateTableTest50 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE `test`.`a` (" // - + "\n\t`ida` INT NOT NULL COMMENT 'aaa', "// + + "\n\t`ida` INT NOT NULL COMMENT 'aaa',"// + "\n\tPRIMARY KEY (`ida`)"// + "\n) COMMENT = 'bb'",// output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest51.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest51.java index 43ec2c6c3c..a3d7ba5cdc 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest51.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest51.java @@ -52,7 +52,7 @@ public class MySqlCreateTableTest51 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); // System.out.println(output); Assert.assertEquals("CREATE TABLE `test` (" // - + "\n\t`Id` int(11) NOT NULL, "// + + "\n\t`Id` int(11) NOT NULL,"// + "\n\t`text` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL"// + "\n) ENGINE = InnoDB CHARSET = gbk",// output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest52.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest52.java index b58730b877..da06135c50 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest52.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest52.java @@ -56,13 +56,13 @@ public class MySqlCreateTableTest52 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE `ins_ebay_auth` ("// - +"\n\t`auth_id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键id', " // - +"\n\t`usr_id` int(10) NOT NULL COMMENT '外键,用户表', "// - +"\n\t`status` char(1) COLLATE utf8_bin NOT NULL COMMENT '状态 0.有效?1.无效', "// - +"\n\t`ebay_token` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'eBay授权码', "// - +"\n\t`ebay_name` varchar(50) NOT NULL COMMENT 'eBay唯一名', "// - +"\n\t`create_time` datetime NOT NULL COMMENT '授权时间', "// - +"\n\t`invalid_time` datetime NOT NULL COMMENT '授权失效时间', "// + +"\n\t`auth_id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键id'," // + +"\n\t`usr_id` int(10) NOT NULL COMMENT '外键,用户表',"// + +"\n\t`status` char(1) COLLATE utf8_bin NOT NULL COMMENT '状态 0.有效?1.无效',"// + +"\n\t`ebay_token` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'eBay授权码',"// + +"\n\t`ebay_name` varchar(50) NOT NULL COMMENT 'eBay唯一名',"// + +"\n\t`create_time` datetime NOT NULL COMMENT '授权时间',"// + +"\n\t`invalid_time` datetime NOT NULL COMMENT '授权失效时间',"// +"\n\tPRIMARY KEY (`auth_id`)" +"\n) ENGINE = InnoDB CHARSET = utf8 COLLATE utf8_bin COMMENT = 'INS_EBAY_AUTH'", output); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest53.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest53.java index 1d55c64547..161376f6c8 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest53.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest53.java @@ -58,13 +58,13 @@ public class MySqlCreateTableTest53 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE `ins_ebay_auth` ("// - +"\n\t`auth_id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键id', " // - +"\n\t`usr_id` int(10) NOT NULL COMMENT '外键,用户表', "// - +"\n\t`status` char(1) COLLATE utf8_bin NOT NULL COMMENT '状态 0.有效?1.无效', "// - +"\n\t`ebay_token` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'eBay授权码', "// - +"\n\t`ebay_name` varchar(50) NOT NULL COMMENT 'eBay唯一名', "// - +"\n\t`create_time` datetime NOT NULL COMMENT '授权时间', "// - +"\n\t`invalid_time` datetime NOT NULL COMMENT '授权失效时间', "// + +"\n\t`auth_id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键id'," // + +"\n\t`usr_id` int(10) NOT NULL COMMENT '外键,用户表',"// + +"\n\t`status` char(1) COLLATE utf8_bin NOT NULL COMMENT '状态 0.有效?1.无效',"// + +"\n\t`ebay_token` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'eBay授权码',"// + +"\n\t`ebay_name` varchar(50) NOT NULL COMMENT 'eBay唯一名',"// + +"\n\t`create_time` datetime NOT NULL COMMENT '授权时间',"// + +"\n\t`invalid_time` datetime NOT NULL COMMENT '授权失效时间',"// +"\n\tPRIMARY KEY USING BTREE (`auth_id`)" +"\n) ENGINE = InnoDB CHARSET = utf8 COLLATE utf8_bin COMMENT = 'INS_EBAY_AUTH'", output); } @@ -100,14 +100,14 @@ public class MySqlCreateTableTest53 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE `ins_ebay_auth` ("// - +"\n\t`auth_id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键id', " // - +"\n\t`usr_id` int(10) NOT NULL COMMENT '外键,用户表', "// - +"\n\t`status` char(1) COLLATE utf8_bin NOT NULL COMMENT '状态 0.有效?1.无效', "// - +"\n\t`ebay_token` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'eBay授权码', "// - +"\n\t`ebay_name` varchar(50) NOT NULL COMMENT 'eBay唯一名', "// - +"\n\t`create_time` datetime NOT NULL COMMENT '授权时间', "// - +"\n\t`invalid_time` datetime NOT NULL COMMENT '授权失效时间', "// - +"\n\tPRIMARY KEY USING BTREE (`auth_id`), " + +"\n\t`auth_id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键id'," // + +"\n\t`usr_id` int(10) NOT NULL COMMENT '外键,用户表',"// + +"\n\t`status` char(1) COLLATE utf8_bin NOT NULL COMMENT '状态 0.有效?1.无效',"// + +"\n\t`ebay_token` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'eBay授权码',"// + +"\n\t`ebay_name` varchar(50) NOT NULL COMMENT 'eBay唯一名',"// + +"\n\t`create_time` datetime NOT NULL COMMENT '授权时间',"// + +"\n\t`invalid_time` datetime NOT NULL COMMENT '授权失效时间',"// + +"\n\tPRIMARY KEY USING BTREE (`auth_id`)," +"\n\tINDEX `ind_usr_id` USING BTREE(`usr_id`)" +"\n) ENGINE = InnoDB CHARSET = utf8 COLLATE utf8_bin COMMENT = 'INS_EBAY_AUTH'", output); } @@ -143,14 +143,14 @@ public class MySqlCreateTableTest53 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE `ins_ebay_auth` ("// - +"\n\t`auth_id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键id', " // - +"\n\t`usr_id` int(10) NOT NULL COMMENT '外键,用户表', "// - +"\n\t`status` char(1) COLLATE utf8_bin NOT NULL COMMENT '状态 0.有效?1.无效', "// - +"\n\t`ebay_token` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'eBay授权码', "// - +"\n\t`ebay_name` varchar(50) NOT NULL COMMENT 'eBay唯一名', "// - +"\n\t`create_time` datetime NOT NULL COMMENT '授权时间', "// - +"\n\t`invalid_time` datetime NOT NULL COMMENT '授权失效时间', "// - +"\n\tPRIMARY KEY USING BTREE (`auth_id`), " + +"\n\t`auth_id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键id'," // + +"\n\t`usr_id` int(10) NOT NULL COMMENT '外键,用户表',"// + +"\n\t`status` char(1) COLLATE utf8_bin NOT NULL COMMENT '状态 0.有效?1.无效',"// + +"\n\t`ebay_token` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'eBay授权码',"// + +"\n\t`ebay_name` varchar(50) NOT NULL COMMENT 'eBay唯一名',"// + +"\n\t`create_time` datetime NOT NULL COMMENT '授权时间',"// + +"\n\t`invalid_time` datetime NOT NULL COMMENT '授权失效时间',"// + +"\n\tPRIMARY KEY USING BTREE (`auth_id`)," +"\n\tKEY `ind_usr_id` USING BTREE (`usr_id`)" +"\n) ENGINE = InnoDB CHARSET = utf8 COLLATE utf8_bin COMMENT = 'INS_EBAY_AUTH'", output); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest54.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest54.java index 062198abef..c44085c0ef 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest54.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest54.java @@ -45,7 +45,7 @@ public class MySqlCreateTableTest54 extends MysqlTest { Assert.assertEquals(0, visitor.getConditions().size()); String output = SQLUtils.toMySqlString(stmt); - Assert.assertEquals("CREATE TABLE t1 (" + "\n\tyear YEAR(4), " + "\n\tmonth INT(2) UNSIGNED ZEROFILL, " + Assert.assertEquals("CREATE TABLE t1 (" + "\n\tyear YEAR(4)," + "\n\tmonth INT(2) UNSIGNED ZEROFILL," + "\n\tday INT(2) UNSIGNED ZEROFILL" + "\n)", output); } @@ -99,64 +99,64 @@ public class MySqlCreateTableTest54 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE `t_activity_node` (" - + "\n\t`id` bigint(20) NOT NULL, " - + "\n\t`sellerId` bigint(20) DEFAULT NULL, " - + "\n\t`canvas_id` bigint(20) NOT NULL COMMENT '画布ID', " - + "\n\t`view_node_id` bigint(20) NOT NULL COMMENT '对应显示的节点id', " - + "\n\t`activity_type` int(11) NOT NULL COMMENT '活动类型', " - + "\n\t`node_type` int(11) NOT NULL COMMENT '节点类型', " - + "\n\t`node_title` varchar(200) NOT NULL COMMENT '节点标题', " - + "\n\t`status` int(11) NOT NULL DEFAULT '0' COMMENT '页面的显示状态', " - + "\n\t`update_status` int(11) DEFAULT NULL COMMENT '节点创建后的修改状态', " - + "\n\t`execute_status` int(11) DEFAULT NULL COMMENT '节点当前的执行状态', " - + "\n\t`start_time` datetime DEFAULT NULL COMMENT '该节点活动的开始时间', " - + "\n\t`end_time` datetime DEFAULT NULL COMMENT '该节点活动的结束时间', " - + "\n\t`activity_start_time` datetime DEFAULT NULL COMMENT '营销活动的开始时间', " - + "\n\t`activity_end_time` datetime DEFAULT NULL COMMENT '营销活动的结束时间', " - + "\n\t`report_start_time` datetime DEFAULT NULL COMMENT '该节点活动效果报告的开始时间', " - + "\n\t`report_end_time` datetime DEFAULT NULL COMMENT '该节点活动效果报告的结束时间', " - + "\n\t`cron_rule` varchar(100) DEFAULT NULL COMMENT '周期性营销的时间表达式', " - + "\n\t`split_rule` varchar(1000) DEFAULT NULL COMMENT '节点拆分规则', " - + "\n\t`search_json` varchar(5000) DEFAULT NULL COMMENT '索引查找的条件字符串', " - + "\n\t`filter_json` varchar(1000) DEFAULT NULL COMMENT '各种过滤条件的设置', " - + "\n\t`buyer_count` int(11) DEFAULT NULL COMMENT '营销的会员数量', " - + "\n\t`gmt_modified` datetime NOT NULL COMMENT '活动最后修改时间', " - + "\n\t`gmt_create` datetime NOT NULL COMMENT '活动创建时间', " - + "\n\tPRIMARY KEY (`id`), " - + "\n\tKEY `canvas_id` (`canvas_id`), " - + "\n\tKEY `sid_ty_time` (`sellerId`, `node_type`, `start_time`), " + + "\n\t`id` bigint(20) NOT NULL," + + "\n\t`sellerId` bigint(20) DEFAULT NULL," + + "\n\t`canvas_id` bigint(20) NOT NULL COMMENT '画布ID'," + + "\n\t`view_node_id` bigint(20) NOT NULL COMMENT '对应显示的节点id'," + + "\n\t`activity_type` int(11) NOT NULL COMMENT '活动类型'," + + "\n\t`node_type` int(11) NOT NULL COMMENT '节点类型'," + + "\n\t`node_title` varchar(200) NOT NULL COMMENT '节点标题'," + + "\n\t`status` int(11) NOT NULL DEFAULT '0' COMMENT '页面的显示状态'," + + "\n\t`update_status` int(11) DEFAULT NULL COMMENT '节点创建后的修改状态'," + + "\n\t`execute_status` int(11) DEFAULT NULL COMMENT '节点当前的执行状态'," + + "\n\t`start_time` datetime DEFAULT NULL COMMENT '该节点活动的开始时间'," + + "\n\t`end_time` datetime DEFAULT NULL COMMENT '该节点活动的结束时间'," + + "\n\t`activity_start_time` datetime DEFAULT NULL COMMENT '营销活动的开始时间'," + + "\n\t`activity_end_time` datetime DEFAULT NULL COMMENT '营销活动的结束时间'," + + "\n\t`report_start_time` datetime DEFAULT NULL COMMENT '该节点活动效果报告的开始时间'," + + "\n\t`report_end_time` datetime DEFAULT NULL COMMENT '该节点活动效果报告的结束时间'," + + "\n\t`cron_rule` varchar(100) DEFAULT NULL COMMENT '周期性营销的时间表达式'," + + "\n\t`split_rule` varchar(1000) DEFAULT NULL COMMENT '节点拆分规则'," + + "\n\t`search_json` varchar(5000) DEFAULT NULL COMMENT '索引查找的条件字符串'," + + "\n\t`filter_json` varchar(1000) DEFAULT NULL COMMENT '各种过滤条件的设置'," + + "\n\t`buyer_count` int(11) DEFAULT NULL COMMENT '营销的会员数量'," + + "\n\t`gmt_modified` datetime NOT NULL COMMENT '活动最后修改时间'," + + "\n\t`gmt_create` datetime NOT NULL COMMENT '活动创建时间'," + + "\n\tPRIMARY KEY (`id`)," + + "\n\tKEY `canvas_id` (`canvas_id`)," + + "\n\tKEY `sid_ty_time` (`sellerId`, `node_type`, `start_time`)," + "\n\tCONSTRAINT `t_activity_node_ibfk_1` FOREIGN KEY (`canvas_id`) REFERENCES `t_activity_canvas` (`id`) ON DELETE CASCADE ON UPDATE CASCADE" + "\n) ENGINE = InnoDB CHARSET = utf8", output); } { String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); Assert.assertEquals("create table `t_activity_node` (" - + "\n\t`id` bigint(20) not null, " - + "\n\t`sellerId` bigint(20) default null, " - + "\n\t`canvas_id` bigint(20) not null comment '画布ID', " - + "\n\t`view_node_id` bigint(20) not null comment '对应显示的节点id', " - + "\n\t`activity_type` int(11) not null comment '活动类型', " - + "\n\t`node_type` int(11) not null comment '节点类型', " - + "\n\t`node_title` varchar(200) not null comment '节点标题', " - + "\n\t`status` int(11) not null default '0' comment '页面的显示状态', " - + "\n\t`update_status` int(11) default null comment '节点创建后的修改状态', " - + "\n\t`execute_status` int(11) default null comment '节点当前的执行状态', " - + "\n\t`start_time` datetime default null comment '该节点活动的开始时间', " - + "\n\t`end_time` datetime default null comment '该节点活动的结束时间', " - + "\n\t`activity_start_time` datetime default null comment '营销活动的开始时间', " - + "\n\t`activity_end_time` datetime default null comment '营销活动的结束时间', " - + "\n\t`report_start_time` datetime default null comment '该节点活动效果报告的开始时间', " - + "\n\t`report_end_time` datetime default null comment '该节点活动效果报告的结束时间', " - + "\n\t`cron_rule` varchar(100) default null comment '周期性营销的时间表达式', " - + "\n\t`split_rule` varchar(1000) default null comment '节点拆分规则', " - + "\n\t`search_json` varchar(5000) default null comment '索引查找的条件字符串', " - + "\n\t`filter_json` varchar(1000) default null comment '各种过滤条件的设置', " - + "\n\t`buyer_count` int(11) default null comment '营销的会员数量', " - + "\n\t`gmt_modified` datetime not null comment '活动最后修改时间', " - + "\n\t`gmt_create` datetime not null comment '活动创建时间', " - + "\n\tprimary key (`id`), " - + "\n\tkey `canvas_id` (`canvas_id`), " - + "\n\tkey `sid_ty_time` (`sellerId`, `node_type`, `start_time`), " + + "\n\t`id` bigint(20) not null," + + "\n\t`sellerId` bigint(20) default null," + + "\n\t`canvas_id` bigint(20) not null comment '画布ID'," + + "\n\t`view_node_id` bigint(20) not null comment '对应显示的节点id'," + + "\n\t`activity_type` int(11) not null comment '活动类型'," + + "\n\t`node_type` int(11) not null comment '节点类型'," + + "\n\t`node_title` varchar(200) not null comment '节点标题'," + + "\n\t`status` int(11) not null default '0' comment '页面的显示状态'," + + "\n\t`update_status` int(11) default null comment '节点创建后的修改状态'," + + "\n\t`execute_status` int(11) default null comment '节点当前的执行状态'," + + "\n\t`start_time` datetime default null comment '该节点活动的开始时间'," + + "\n\t`end_time` datetime default null comment '该节点活动的结束时间'," + + "\n\t`activity_start_time` datetime default null comment '营销活动的开始时间'," + + "\n\t`activity_end_time` datetime default null comment '营销活动的结束时间'," + + "\n\t`report_start_time` datetime default null comment '该节点活动效果报告的开始时间'," + + "\n\t`report_end_time` datetime default null comment '该节点活动效果报告的结束时间'," + + "\n\t`cron_rule` varchar(100) default null comment '周期性营销的时间表达式'," + + "\n\t`split_rule` varchar(1000) default null comment '节点拆分规则'," + + "\n\t`search_json` varchar(5000) default null comment '索引查找的条件字符串'," + + "\n\t`filter_json` varchar(1000) default null comment '各种过滤条件的设置'," + + "\n\t`buyer_count` int(11) default null comment '营销的会员数量'," + + "\n\t`gmt_modified` datetime not null comment '活动最后修改时间'," + + "\n\t`gmt_create` datetime not null comment '活动创建时间'," + + "\n\tprimary key (`id`)," + + "\n\tkey `canvas_id` (`canvas_id`)," + + "\n\tkey `sid_ty_time` (`sellerId`, `node_type`, `start_time`)," + "\n\tconstraint `t_activity_node_ibfk_1` foreign key (`canvas_id`) references `t_activity_canvas` (`id`) on delete cascade on update cascade" + "\n) engine = InnoDB charset = utf8", output); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest55.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest55.java index b8b517c105..a5f521dd4c 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest55.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest55.java @@ -46,7 +46,7 @@ public class MySqlCreateTableTest55 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE tableA (" // - + "\n\tdatasn varchar(100) NOT NULL, " // + + "\n\tdatasn varchar(100) NOT NULL," // + "\n\tPRIMARY KEY (datasn)" // + "\n) ENGINE = MRG_MyISAM CHARSET = utf8 UNION = (tableB)", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest56.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest56.java index e115d260f2..55bab8f075 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest56.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest56.java @@ -47,14 +47,14 @@ public class MySqlCreateTableTest56 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE tableA (" // - + "\n\tdatasn varchar(100) NOT NULL, " // + + "\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\tdatasn varchar(100) not null," // + "\n\tprimary key (datasn)" // + "\n) engine = MRG_MyISAM charset = utf8 union = (tableB, tableC)", output); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest57.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest57.java index 6171ce9013..dfbd3494ef 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest57.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest57.java @@ -50,11 +50,11 @@ public class MySqlCreateTableTest57 extends MysqlTest { Assert.assertEquals(0, visitor.getConditions().size()); String output = SQLUtils.toMySqlString(stmt); - Assert.assertEquals("CREATE TABLE `t_cpi_driskconfig_bak` (" + "\n\t`Sequence` bigint(20) NOT NULL AUTO_INCREMENT, " - + "\n\t`comcode` varchar(20) BINARY NOT NULL, " + "\n\t`riskcode` varchar(10) BINARY NOT NULL, " - + "\n\t`configcodehead` varchar(30) BINARY NOT NULL, " + "\n\t`configcodebody` varchar(100) BINARY , " - + "\n\t`configvalue` varchar(200) BINARY , " + "\n\t`inputdate` datetime NOT NULL, " - + "\n\t`validstatus` char(1) NOT NULL, " + "\n\t`remark` varchar(3000), " + "\n\t`flag` varchar(10), " + Assert.assertEquals("CREATE TABLE `t_cpi_driskconfig_bak` (" + "\n\t`Sequence` bigint(20) NOT NULL AUTO_INCREMENT," + + "\n\t`comcode` varchar(20) BINARY NOT NULL," + "\n\t`riskcode` varchar(10) BINARY NOT NULL," + + "\n\t`configcodehead` varchar(30) BINARY NOT NULL," + "\n\t`configcodebody` varchar(100) BINARY ," + + "\n\t`configvalue` varchar(200) BINARY ," + "\n\t`inputdate` datetime NOT NULL," + + "\n\t`validstatus` char(1) NOT NULL," + "\n\t`remark` varchar(3000)," + "\n\t`flag` varchar(10)," + "\n\tPRIMARY KEY (`Sequence`)" + "\n) ENGINE = InnoDB AUTO_INCREMENT = 49 CHARSET = utf8",output); } @@ -83,11 +83,11 @@ public class MySqlCreateTableTest57 extends MysqlTest { Assert.assertEquals(0, visitor.getConditions().size()); String output = SQLUtils.toMySqlString(stmt); - Assert.assertEquals("CREATE TABLE `t_cpi_driskconfig_bak` (" + "\n\t`Sequence` bigint(20) NOT NULL AUTO_INCREMENT, " - + "\n\t`comcode` binary(20) NOT NULL, " + "\n\t`riskcode` varchar(10) BINARY NOT NULL, " - + "\n\t`configcodehead` varchar(30) BINARY NOT NULL, " + "\n\t`configcodebody` varchar(100) BINARY , " - + "\n\t`configvalue` varchar(200) BINARY , " + "\n\t`inputdate` datetime NOT NULL, " - + "\n\t`validstatus` char(1) NOT NULL, " + "\n\t`remark` varchar(3000), " + "\n\t`flag` varchar(10), " + Assert.assertEquals("CREATE TABLE `t_cpi_driskconfig_bak` (" + "\n\t`Sequence` bigint(20) NOT NULL AUTO_INCREMENT," + + "\n\t`comcode` binary(20) NOT NULL," + "\n\t`riskcode` varchar(10) BINARY NOT NULL," + + "\n\t`configcodehead` varchar(30) BINARY NOT NULL," + "\n\t`configcodebody` varchar(100) BINARY ," + + "\n\t`configvalue` varchar(200) BINARY ," + "\n\t`inputdate` datetime NOT NULL," + + "\n\t`validstatus` char(1) NOT NULL," + "\n\t`remark` varchar(3000)," + "\n\t`flag` varchar(10)," + "\n\tPRIMARY KEY (`Sequence`)" + "\n) ENGINE = InnoDB AUTO_INCREMENT = 49 CHARSET = utf8",output); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest58.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest58.java index 61ea84045e..51d6726016 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest58.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest58.java @@ -49,56 +49,56 @@ public class MySqlCreateTableTest58 extends MysqlTest { { 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`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`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); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest59.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest59.java index 8df1d6dfb0..47988b8102 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest59.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest59.java @@ -38,7 +38,7 @@ public class MySqlCreateTableTest59 extends MysqlTest { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE t3 (" // - + "\n\ta long, " // + + "\n\ta long," // + "\n\tb long byte" // + "\n)", output); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest60.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest60.java index 2c38d8c701..0e2c782341 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest60.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest60.java @@ -39,14 +39,14 @@ public class MySqlCreateTableTest60 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE t10 (" - + "\n\tpk int PRIMARY KEY AUTO_INCREMENT, " + + "\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\tpk int primary key auto_increment," + "\n\tf1 varchar(65500) charset latin1 " + "\n)", output); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest61.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest61.java index 0f929f1442..7bbaa2dc74 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest61.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest61.java @@ -39,16 +39,16 @@ public class MySqlCreateTableTest61 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE t (" - + "\n\tpk int PRIMARY KEY AUTO_INCREMENT, " - + "\n\ta timestamp NULL DEFAULT current_timestamp ON UPDATE current_timestamp, " + + "\n\tpk int PRIMARY KEY AUTO_INCREMENT," + + "\n\ta timestamp NULL 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 null default current_timestamp on update current_timestamp, " + + "\n\tpk int primary key auto_increment," + + "\n\ta timestamp null default current_timestamp on update current_timestamp," + "\n\tb timestamp null" + "\n)", output); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest63.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest63.java index b46ea6f615..d6f9bdca26 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest63.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest63.java @@ -39,16 +39,16 @@ public class MySqlCreateTableTest63 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE t (" - + "\n\tpk int PRIMARY KEY AUTO_INCREMENT, " - + "\n\ta TIMESTAMP, " + + "\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\tpk int primary key auto_increment," + + "\n\ta TIMESTAMP," + "\n\tkey (a desc)" + "\n)", output); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest64.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest64.java index a435fa96b5..f7b214c376 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest64.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest64.java @@ -39,14 +39,14 @@ public class MySqlCreateTableTest64 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE t (" - + "\n\tc char(10), " + + "\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\tc char(10)," + "\n\tunique a using hash (c(1))" + "\n) charset = utf8mb4 engine = heap", output); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest65.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest65.java index da9278d1d5..1e4bc92e2a 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest65.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest65.java @@ -39,14 +39,14 @@ public class MySqlCreateTableTest65 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE t (" - + "\n\tc char(10), " + + "\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\tc char(10)," + "\n\tunique a using btree (c(1))" + "\n) charset = utf8mb4 engine = heap", output); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest66.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest66.java index 886e3841a4..d1c3e451bb 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest66.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest66.java @@ -48,9 +48,9 @@ public class MySqlCreateTableTest66 extends MysqlTest { { 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\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" @@ -61,9 +61,9 @@ public class MySqlCreateTableTest66 extends MysqlTest { { 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\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" diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest67.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest67.java index 4c6074c1a4..55d7196dd1 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest67.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest67.java @@ -43,29 +43,33 @@ public class MySqlCreateTableTest67 extends MysqlTest { { 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); + Assert.assertEquals("CREATE TABLE t1 (\n" + + "\ta INT NOT NULL,\n" + + "\tPRIMARY KEY (a)\n" + + ") ENGINE = InnoDB TABLESPACE ts1\n" + + "PARTITION BY RANGE (a) PARTITIONS 3\n" + + "(\n" + + "\tPARTITION P1 VALUES LESS THAN (2),\n" + + "\tPARTITION P2 VALUES LESS THAN (4)\n" + + "\t\tTABLESPACE ts2,\n" + + "\tPARTITION P3 VALUES LESS THAN (6)\n" + + "\t\tTABLESPACE 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); + Assert.assertEquals("create table t1 (\n" + + "\ta INT not null,\n" + + "\tprimary key (a)\n" + + ") engine = InnoDB tablespace ts1\n" + + "partition by range (a) partitions 3\n" + + "(\n" + + "\tpartition P1 values less than (2),\n" + + "\tpartition P2 values less than (4)\n" + + "\t\ttablespace ts2,\n" + + "\tpartition P3 values less than (6)\n" + + "\t\ttablespace ts3\n" + + ")", output); } } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest68.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest68.java index 1690dc0bb7..5aac03997e 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest68.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest68.java @@ -50,7 +50,7 @@ public class MySqlCreateTableTest68 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE t1 (" - + "\n\tyear_col INT, " + + "\n\tyear_col INT," + "\n\tsome_data INT" + "\n)" + "\nPARTITION BY RANGE (year_col)" @@ -67,7 +67,7 @@ public class MySqlCreateTableTest68 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); Assert.assertEquals("create table t1 (" - + "\n\tyear_col INT, " + + "\n\tyear_col INT," + "\n\tsome_data INT" + "\n)" + "\npartition by range (year_col)" diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest69.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest69.java index 0ce54eaf44..46f1c2d914 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest69.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest69.java @@ -45,7 +45,7 @@ public class MySqlCreateTableTest69 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE t1 (" - + "\n\ts1 INT, " + + "\n\ts1 INT," + "\n\ts2 INT AS (EXP(s1)) SORTED" + "\n)" + "\nPARTITION BY LIST (s2)" @@ -57,7 +57,7 @@ public class MySqlCreateTableTest69 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); Assert.assertEquals("create table t1 (" - + "\n\ts1 INT, " + + "\n\ts1 INT," + "\n\ts2 INT as (EXP(s1)) sorted" + "\n)" + "\npartition by list (s2)" diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest70.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest70.java index e5b9ae4b5f..f03e9fef82 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest70.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest70.java @@ -62,17 +62,17 @@ public class MySqlCreateTableTest70 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE `app_customer_license` (" - + "\n\t`id` bigint(20) NOT NULL AUTO_INCREMENT, " - + "\n\t`created_by` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, " - + "\n\t`created_date` datetime NOT NULL, " - + "\n\t`last_modified_by` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, " - + "\n\t`last_modified_date` datetime NULL DEFAULT NULL, " - + "\n\t`version` bigint(20) NOT NULL, " - + "\n\t`device_id` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, " - + "\n\t`customer_info` bigint(20) NULL DEFAULT NULL, " - + "\n\tPRIMARY KEY (`id`), " - + "\n\tFOREIGN KEY (`customer_info`) REFERENCES `app_customer_info` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, " - + "\n\tINDEX `fk_app_customer_info_id` USING BTREE(`customer_info`), " + + "\n\t`id` bigint(20) NOT NULL AUTO_INCREMENT," + + "\n\t`created_by` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL," + + "\n\t`created_date` datetime NOT NULL," + + "\n\t`last_modified_by` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL," + + "\n\t`last_modified_date` datetime NULL DEFAULT NULL," + + "\n\t`version` bigint(20) NOT NULL," + + "\n\t`device_id` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL," + + "\n\t`customer_info` bigint(20) NULL DEFAULT NULL," + + "\n\tPRIMARY KEY (`id`)," + + "\n\tFOREIGN KEY (`customer_info`) REFERENCES `app_customer_info` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT," + + "\n\tINDEX `fk_app_customer_info_id` USING BTREE(`customer_info`)," + "\n\tUNIQUE `idx_app_customer_license_deviceId` USING BTREE (`device_id`)" + "\n) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE utf8_general_ci AUTO_INCREMENT = 1 ROW_FORMAT = DYNAMIC", output); } @@ -80,17 +80,17 @@ public class MySqlCreateTableTest70 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); Assert.assertEquals("create table `app_customer_license` (" - + "\n\t`id` bigint(20) not null auto_increment, " - + "\n\t`created_by` varchar(50) character set utf8 collate utf8_general_ci not null, " - + "\n\t`created_date` datetime not null, " - + "\n\t`last_modified_by` varchar(50) character set utf8 collate utf8_general_ci null default null, " - + "\n\t`last_modified_date` datetime null default null, " - + "\n\t`version` bigint(20) not null, " - + "\n\t`device_id` varchar(20) character set utf8 collate utf8_general_ci not null, " - + "\n\t`customer_info` bigint(20) null default null, " - + "\n\tprimary key (`id`), " - + "\n\tforeign key (`customer_info`) references `app_customer_info` (`id`) on delete restrict on update restrict, " - + "\n\tindex `fk_app_customer_info_id` using BTREE(`customer_info`), " + + "\n\t`id` bigint(20) not null auto_increment," + + "\n\t`created_by` varchar(50) character set utf8 collate utf8_general_ci not null," + + "\n\t`created_date` datetime not null," + + "\n\t`last_modified_by` varchar(50) character set utf8 collate utf8_general_ci null default null," + + "\n\t`last_modified_date` datetime null default null," + + "\n\t`version` bigint(20) not null," + + "\n\t`device_id` varchar(20) character set utf8 collate utf8_general_ci not null," + + "\n\t`customer_info` bigint(20) null default null," + + "\n\tprimary key (`id`)," + + "\n\tforeign key (`customer_info`) references `app_customer_info` (`id`) on delete restrict on update restrict," + + "\n\tindex `fk_app_customer_info_id` using BTREE(`customer_info`)," + "\n\tunique `idx_app_customer_license_deviceId` using BTREE (`device_id`)" + "\n) engine = InnoDB character set = utf8 collate utf8_general_ci auto_increment = 1 row_format = DYNAMIC", output); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest71.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest71.java index 928e02a2df..8f708ef1d3 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest71.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest71.java @@ -47,9 +47,9 @@ public class MySqlCreateTableTest71 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE xx (" - + "\n\tid bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'aa', " - + "\n\tgmt_create datetime NOT NULL COMMENT '创建时间', " - + "\n\tgmt_modified datetime NOT NULL COMMENT '修改时间', " + + "\n\tid bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'aa'," + + "\n\tgmt_create datetime NOT NULL COMMENT '创建时间'," + + "\n\tgmt_modified datetime NOT NULL COMMENT '修改时间'," + "\n\tPRIMARY KEY (id)" + "\n) COMMENT = 're'", output); } @@ -57,9 +57,9 @@ public class MySqlCreateTableTest71 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); Assert.assertEquals("create table xx (" - + "\n\tid bigint unsigned not null auto_increment comment 'aa', " - + "\n\tgmt_create datetime not null comment '创建时间', " - + "\n\tgmt_modified datetime not null comment '修改时间', " + + "\n\tid bigint unsigned not null auto_increment comment 'aa'," + + "\n\tgmt_create datetime not null comment '创建时间'," + + "\n\tgmt_modified datetime not null comment '修改时间'," + "\n\tprimary key (id)" + "\n) comment = 're'", output); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest72.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest72.java index a4f1058d6c..736baf6056 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest72.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest72.java @@ -49,9 +49,9 @@ public class MySqlCreateTableTest72 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE \"MessageInstance\" (" - + "\n\t\"id\" int(11) NOT NULL AUTO_INCREMENT, " - + "\n\t\"messageId\" int(11) NOT NULL, " - + "\n\tPRIMARY KEY ('id'), " + + "\n\t\"id\" int(11) NOT NULL AUTO_INCREMENT," + + "\n\t\"messageId\" int(11) NOT NULL," + + "\n\tPRIMARY KEY ('id')," + "\n\tKEY \"ix_messageId\" ('messageId')" + "\n)", output); } @@ -59,9 +59,9 @@ public class MySqlCreateTableTest72 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); Assert.assertEquals("create table \"MessageInstance\" (" - + "\n\t\"id\" int(11) not null auto_increment, " - + "\n\t\"messageId\" int(11) not null, " - + "\n\tprimary key ('id'), " + + "\n\t\"id\" int(11) not null auto_increment," + + "\n\t\"messageId\" int(11) not null," + + "\n\tprimary key ('id')," + "\n\tkey \"ix_messageId\" ('messageId')" + "\n)", output); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest73.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest73.java index bb7e1541b2..68435e6582 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest73.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest73.java @@ -47,8 +47,8 @@ public class MySqlCreateTableTest73 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE total (" - + "\n\tid INT NOT NULL AUTO_INCREMENT, " - + "\n\tmessage CHAR(20), " + + "\n\tid INT NOT NULL AUTO_INCREMENT," + + "\n\tmessage CHAR(20)," + "\n\tINDEX(a)" + "\n) ENGINE = MERGE UNION = (t1, t2) INSERT_METHOD = LAST", output); } @@ -56,8 +56,8 @@ public class MySqlCreateTableTest73 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); Assert.assertEquals("create table total (" - + "\n\tid INT not null auto_increment, " - + "\n\tmessage CHAR(20), " + + "\n\tid INT not null auto_increment," + + "\n\tmessage CHAR(20)," + "\n\tindex(a)" + "\n) engine = MERGE union = (t1, t2) insert_method = LAST", output); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest74.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest74.java index 84ad86e037..921416362a 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest74.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest74.java @@ -43,19 +43,19 @@ public class MySqlCreateTableTest74 extends MysqlTest { MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor(); stmt.accept(visitor); - Column column = visitor.getColumn("test.simple_test", "col_key"); + Column column = visitor.getColumn("test.simple_test","col_key"); Assert.assertNotNull(column); Assert.assertEquals("bigint", column.getDataType()); { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE test.simple_test (\n" + - "\tcol_key bigint(20) NOT NULL AUTO_INCREMENT, \n" + - "\tcol1 varchar(45) NULL, \n" + - "\tcol2 tinyint(4) NULL, \n" + - "\tcol3 datetime NULL, \n" + - "\tcol4 timestamp NULL DEFAULT current_timestamp ON UPDATE current_timestamp, \n" + - "\tPRIMARY KEY (col_key), \n" + + "\tcol_key bigint(20) NOT NULL AUTO_INCREMENT,\n" + + "\tcol1 varchar(45) NULL,\n" + + "\tcol2 tinyint(4) NULL,\n" + + "\tcol3 datetime NULL,\n" + + "\tcol4 timestamp NULL DEFAULT current_timestamp ON UPDATE current_timestamp,\n" + + "\tPRIMARY KEY (col_key),\n" + "\tUNIQUE v1_unique (col_key ASC)\n" + ")", output); } @@ -63,12 +63,12 @@ public class MySqlCreateTableTest74 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); Assert.assertEquals("create table test.simple_test (\n" + - "\tcol_key bigint(20) not null auto_increment, \n" + - "\tcol1 varchar(45) null, \n" + - "\tcol2 tinyint(4) null, \n" + - "\tcol3 datetime null, \n" + - "\tcol4 timestamp null default current_timestamp on update current_timestamp, \n" + - "\tprimary key (col_key), \n" + + "\tcol_key bigint(20) not null auto_increment,\n" + + "\tcol1 varchar(45) null,\n" + + "\tcol2 tinyint(4) null,\n" + + "\tcol3 datetime null,\n" + + "\tcol4 timestamp null default current_timestamp on update current_timestamp,\n" + + "\tprimary key (col_key),\n" + "\tunique v1_unique (col_key asc)\n" + ")", output); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest75.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest75.java index 3716785df8..a652552615 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest75.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest75.java @@ -62,23 +62,23 @@ public class MySqlCreateTableTest75 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE `sys_msg_entry_0320` (\n" + - "\t`provider_dsp_name` varchar(256) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '消息提供者的显示名,提供给一些需要统一发送名称的系统消息', \n" + - "\t`template_data` varchar(2048) NOT NULL /*!50616 COLUMN_FORMAT COMPRESSED */ COMMENT '模板渲染时使用的数据,key-value对', \n" + - "\t`template_merge_data` varchar(512) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '对于需要合并的消息,被合并的参数放在此处理', \n" + - "\t`expiration_date` datetime NOT NULL COMMENT '失效日期,精度到天,查询和任务处理时使用', \n" + - "\t`merge_key` varchar(128) DEFAULT NULL COMMENT '消息合并主键,合并成功的消息,不参与计数', \n" + - "\t`out_id` varchar(256) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '外部关联源的id', \n" + - "\t`number_expiration_date` datetime DEFAULT NULL COMMENT '计数过期时间', \n" + - "\t`hidden` int(11) DEFAULT '0' COMMENT '标记是否在吊顶展示,1表示隐藏,0表示展示', \n" + - "\t`popup` tinyint(3) UNSIGNED DEFAULT '0' COMMENT '表示消息提醒方式:0-数字提醒,1-layer,2-popup', \n" + - "\t`tag_id` bigint(20) UNSIGNED DEFAULT NULL COMMENT 'TAG标志', \n" + - "\t`attribute` varchar(512) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '消息的一些属性', \n" + - "\t`original_msg_ids` varchar(1024) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '原始消息ID,多个id用半角逗号隔开', \n" + - "\tPRIMARY KEY (`id`), \n" + - "\tKEY `idx_expiration_date` (`expiration_date`), \n" + - "\tKEY `k_rid_hidd_cid` (`receiver_id`, `hidden`, `cat_id`, `expiration_date`), \n" + - "\tKEY `k_rid_aid_tid` (`receiver_id`, `app_id`, `type_id`, `expiration_date`), \n" + - "\tKEY `k_rid_stat_popup` (`receiver_id`, `status`, `popup`, `expiration_date`), \n" + + "\t`provider_dsp_name` varchar(256) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '消息提供者的显示名,提供给一些需要统一发送名称的系统消息',\n" + + "\t`template_data` varchar(2048) NOT NULL /*!50616 COLUMN_FORMAT COMPRESSED */ COMMENT '模板渲染时使用的数据,key-value对',\n" + + "\t`template_merge_data` varchar(512) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '对于需要合并的消息,被合并的参数放在此处理',\n" + + "\t`expiration_date` datetime NOT NULL COMMENT '失效日期,精度到天,查询和任务处理时使用',\n" + + "\t`merge_key` varchar(128) DEFAULT NULL COMMENT '消息合并主键,合并成功的消息,不参与计数',\n" + + "\t`out_id` varchar(256) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '外部关联源的id',\n" + + "\t`number_expiration_date` datetime DEFAULT NULL COMMENT '计数过期时间',\n" + + "\t`hidden` int(11) DEFAULT '0' COMMENT '标记是否在吊顶展示,1表示隐藏,0表示展示',\n" + + "\t`popup` tinyint(3) UNSIGNED DEFAULT '0' COMMENT '表示消息提醒方式:0-数字提醒,1-layer,2-popup',\n" + + "\t`tag_id` bigint(20) UNSIGNED DEFAULT NULL COMMENT 'TAG标志',\n" + + "\t`attribute` varchar(512) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '消息的一些属性',\n" + + "\t`original_msg_ids` varchar(1024) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '原始消息ID,多个id用半角逗号隔开',\n" + + "\tPRIMARY KEY (`id`),\n" + + "\tKEY `idx_expiration_date` (`expiration_date`),\n" + + "\tKEY `k_rid_hidd_cid` (`receiver_id`, `hidden`, `cat_id`, `expiration_date`),\n" + + "\tKEY `k_rid_aid_tid` (`receiver_id`, `app_id`, `type_id`, `expiration_date`),\n" + + "\tKEY `k_rid_stat_popup` (`receiver_id`, `status`, `popup`, `expiration_date`),\n" + "\tKEY `k_tid` (`tag_id`)\n" + ") ENGINE = InnoDB AUTO_INCREMENT = 167279613030 CHARSET = gbk COMMENT = '消息实体表'", output); } @@ -86,23 +86,23 @@ public class MySqlCreateTableTest75 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); Assert.assertEquals("create table `sys_msg_entry_0320` (\n" + - "\t`provider_dsp_name` varchar(256) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '消息提供者的显示名,提供给一些需要统一发送名称的系统消息', \n" + - "\t`template_data` varchar(2048) not null /*!50616 COLUMN_FORMAT COMPRESSED */ comment '模板渲染时使用的数据,key-value对', \n" + - "\t`template_merge_data` varchar(512) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '对于需要合并的消息,被合并的参数放在此处理', \n" + - "\t`expiration_date` datetime not null comment '失效日期,精度到天,查询和任务处理时使用', \n" + - "\t`merge_key` varchar(128) default null comment '消息合并主键,合并成功的消息,不参与计数', \n" + - "\t`out_id` varchar(256) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '外部关联源的id', \n" + - "\t`number_expiration_date` datetime default null comment '计数过期时间', \n" + - "\t`hidden` int(11) default '0' comment '标记是否在吊顶展示,1表示隐藏,0表示展示', \n" + - "\t`popup` tinyint(3) unsigned default '0' comment '表示消息提醒方式:0-数字提醒,1-layer,2-popup', \n" + - "\t`tag_id` bigint(20) unsigned default null comment 'TAG标志', \n" + - "\t`attribute` varchar(512) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '消息的一些属性', \n" + - "\t`original_msg_ids` varchar(1024) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '原始消息ID,多个id用半角逗号隔开', \n" + - "\tprimary key (`id`), \n" + - "\tkey `idx_expiration_date` (`expiration_date`), \n" + - "\tkey `k_rid_hidd_cid` (`receiver_id`, `hidden`, `cat_id`, `expiration_date`), \n" + - "\tkey `k_rid_aid_tid` (`receiver_id`, `app_id`, `type_id`, `expiration_date`), \n" + - "\tkey `k_rid_stat_popup` (`receiver_id`, `status`, `popup`, `expiration_date`), \n" + + "\t`provider_dsp_name` varchar(256) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '消息提供者的显示名,提供给一些需要统一发送名称的系统消息',\n" + + "\t`template_data` varchar(2048) not null /*!50616 COLUMN_FORMAT COMPRESSED */ comment '模板渲染时使用的数据,key-value对',\n" + + "\t`template_merge_data` varchar(512) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '对于需要合并的消息,被合并的参数放在此处理',\n" + + "\t`expiration_date` datetime not null comment '失效日期,精度到天,查询和任务处理时使用',\n" + + "\t`merge_key` varchar(128) default null comment '消息合并主键,合并成功的消息,不参与计数',\n" + + "\t`out_id` varchar(256) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '外部关联源的id',\n" + + "\t`number_expiration_date` datetime default null comment '计数过期时间',\n" + + "\t`hidden` int(11) default '0' comment '标记是否在吊顶展示,1表示隐藏,0表示展示',\n" + + "\t`popup` tinyint(3) unsigned default '0' comment '表示消息提醒方式:0-数字提醒,1-layer,2-popup',\n" + + "\t`tag_id` bigint(20) unsigned default null comment 'TAG标志',\n" + + "\t`attribute` varchar(512) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '消息的一些属性',\n" + + "\t`original_msg_ids` varchar(1024) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '原始消息ID,多个id用半角逗号隔开',\n" + + "\tprimary key (`id`),\n" + + "\tkey `idx_expiration_date` (`expiration_date`),\n" + + "\tkey `k_rid_hidd_cid` (`receiver_id`, `hidden`, `cat_id`, `expiration_date`),\n" + + "\tkey `k_rid_aid_tid` (`receiver_id`, `app_id`, `type_id`, `expiration_date`),\n" + + "\tkey `k_rid_stat_popup` (`receiver_id`, `status`, `popup`, `expiration_date`),\n" + "\tkey `k_tid` (`tag_id`)\n" + ") engine = InnoDB auto_increment = 167279613030 charset = gbk comment = '消息实体表'", output); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest76.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest76.java index 1c4e8d015a..d2b69ccb48 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest76.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/create/MySqlCreateTableTest76.java @@ -62,23 +62,23 @@ public class MySqlCreateTableTest76 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE `sys_msg_entry_0320` (\n" + - "\t`provider_dsp_name` varchar(256) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '消息提供者的显示名,提供给一些需要统一发送名称的系统消息', \n" + - "\t`template_data` varchar(2048) NOT NULL /*!50616 COLUMN_FORMAT COMPRESSED */ COMMENT '模板渲染时使用的数据,key-value对', \n" + - "\t`template_merge_data` varchar(512) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '对于需要合并的消息,被合并的参数放在此处理', \n" + - "\t`expiration_date` datetime NOT NULL COMMENT '失效日期,精度到天,查询和任务处理时使用', \n" + - "\t`merge_key` varchar(128) DEFAULT NULL COMMENT '消息合并主键,合并成功的消息,不参与计数', \n" + - "\t`out_id` varchar(256) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '外部关联源的id', \n" + - "\t`number_expiration_date` datetime DEFAULT NULL COMMENT '计数过期时间', \n" + - "\t`hidden` int(11) DEFAULT '0' COMMENT '标记是否在吊顶展示,1表示隐藏,0表示展示', \n" + - "\t`popup` tinyint(3) UNSIGNED DEFAULT '0' COMMENT '表示消息提醒方式:0-数字提醒,1-layer,2-popup', \n" + - "\t`tag_id` bigint(20) UNSIGNED DEFAULT NULL COMMENT 'TAG标志', \n" + - "\t`attribute` varchar(512) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '消息的一些属性', \n" + - "\t`original_msg_ids` varchar(1024) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '原始消息ID,多个id用半角逗号隔开', \n" + - "\tPRIMARY KEY (`id`), \n" + - "\tKEY `idx_expiration_date` (`expiration_date`), \n" + - "\tKEY `k_rid_hidd_cid` (`receiver_id`, `hidden`, `cat_id`, `expiration_date`), \n" + - "\tKEY `k_rid_aid_tid` (`receiver_id`, `app_id`, `type_id`, `expiration_date`), \n" + - "\tKEY `k_rid_stat_popup` (`receiver_id`, `status`, `popup`, `expiration_date`), \n" + + "\t`provider_dsp_name` varchar(256) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '消息提供者的显示名,提供给一些需要统一发送名称的系统消息',\n" + + "\t`template_data` varchar(2048) NOT NULL /*!50616 COLUMN_FORMAT COMPRESSED */ COMMENT '模板渲染时使用的数据,key-value对',\n" + + "\t`template_merge_data` varchar(512) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '对于需要合并的消息,被合并的参数放在此处理',\n" + + "\t`expiration_date` datetime NOT NULL COMMENT '失效日期,精度到天,查询和任务处理时使用',\n" + + "\t`merge_key` varchar(128) DEFAULT NULL COMMENT '消息合并主键,合并成功的消息,不参与计数',\n" + + "\t`out_id` varchar(256) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '外部关联源的id',\n" + + "\t`number_expiration_date` datetime DEFAULT NULL COMMENT '计数过期时间',\n" + + "\t`hidden` int(11) DEFAULT '0' COMMENT '标记是否在吊顶展示,1表示隐藏,0表示展示',\n" + + "\t`popup` tinyint(3) UNSIGNED DEFAULT '0' COMMENT '表示消息提醒方式:0-数字提醒,1-layer,2-popup',\n" + + "\t`tag_id` bigint(20) UNSIGNED DEFAULT NULL COMMENT 'TAG标志',\n" + + "\t`attribute` varchar(512) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '消息的一些属性',\n" + + "\t`original_msg_ids` varchar(1024) /*!50616 COLUMN_FORMAT COMPRESSED */ DEFAULT NULL COMMENT '原始消息ID,多个id用半角逗号隔开',\n" + + "\tPRIMARY KEY (`id`),\n" + + "\tKEY `idx_expiration_date` (`expiration_date`),\n" + + "\tKEY `k_rid_hidd_cid` (`receiver_id`, `hidden`, `cat_id`, `expiration_date`),\n" + + "\tKEY `k_rid_aid_tid` (`receiver_id`, `app_id`, `type_id`, `expiration_date`),\n" + + "\tKEY `k_rid_stat_popup` (`receiver_id`, `status`, `popup`, `expiration_date`),\n" + "\tKEY `k_tid` (`tag_id`)\n" + ") ENGINE = InnoDB AUTO_INCREMENT = 167279613030 CHARSET = gbk COMMENT = '消息实体表'", output); } @@ -86,23 +86,23 @@ public class MySqlCreateTableTest76 extends MysqlTest { { String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); Assert.assertEquals("create table `sys_msg_entry_0320` (\n" + - "\t`provider_dsp_name` varchar(256) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '消息提供者的显示名,提供给一些需要统一发送名称的系统消息', \n" + - "\t`template_data` varchar(2048) not null /*!50616 COLUMN_FORMAT COMPRESSED */ comment '模板渲染时使用的数据,key-value对', \n" + - "\t`template_merge_data` varchar(512) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '对于需要合并的消息,被合并的参数放在此处理', \n" + - "\t`expiration_date` datetime not null comment '失效日期,精度到天,查询和任务处理时使用', \n" + - "\t`merge_key` varchar(128) default null comment '消息合并主键,合并成功的消息,不参与计数', \n" + - "\t`out_id` varchar(256) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '外部关联源的id', \n" + - "\t`number_expiration_date` datetime default null comment '计数过期时间', \n" + - "\t`hidden` int(11) default '0' comment '标记是否在吊顶展示,1表示隐藏,0表示展示', \n" + - "\t`popup` tinyint(3) unsigned default '0' comment '表示消息提醒方式:0-数字提醒,1-layer,2-popup', \n" + - "\t`tag_id` bigint(20) unsigned default null comment 'TAG标志', \n" + - "\t`attribute` varchar(512) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '消息的一些属性', \n" + - "\t`original_msg_ids` varchar(1024) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '原始消息ID,多个id用半角逗号隔开', \n" + - "\tprimary key (`id`), \n" + - "\tkey `idx_expiration_date` (`expiration_date`), \n" + - "\tkey `k_rid_hidd_cid` (`receiver_id`, `hidden`, `cat_id`, `expiration_date`), \n" + - "\tkey `k_rid_aid_tid` (`receiver_id`, `app_id`, `type_id`, `expiration_date`), \n" + - "\tkey `k_rid_stat_popup` (`receiver_id`, `status`, `popup`, `expiration_date`), \n" + + "\t`provider_dsp_name` varchar(256) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '消息提供者的显示名,提供给一些需要统一发送名称的系统消息',\n" + + "\t`template_data` varchar(2048) not null /*!50616 COLUMN_FORMAT COMPRESSED */ comment '模板渲染时使用的数据,key-value对',\n" + + "\t`template_merge_data` varchar(512) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '对于需要合并的消息,被合并的参数放在此处理',\n" + + "\t`expiration_date` datetime not null comment '失效日期,精度到天,查询和任务处理时使用',\n" + + "\t`merge_key` varchar(128) default null comment '消息合并主键,合并成功的消息,不参与计数',\n" + + "\t`out_id` varchar(256) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '外部关联源的id',\n" + + "\t`number_expiration_date` datetime default null comment '计数过期时间',\n" + + "\t`hidden` int(11) default '0' comment '标记是否在吊顶展示,1表示隐藏,0表示展示',\n" + + "\t`popup` tinyint(3) unsigned default '0' comment '表示消息提醒方式:0-数字提醒,1-layer,2-popup',\n" + + "\t`tag_id` bigint(20) unsigned default null comment 'TAG标志',\n" + + "\t`attribute` varchar(512) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '消息的一些属性',\n" + + "\t`original_msg_ids` varchar(1024) /*!50616 COLUMN_FORMAT COMPRESSED */ default null comment '原始消息ID,多个id用半角逗号隔开',\n" + + "\tprimary key (`id`),\n" + + "\tkey `idx_expiration_date` (`expiration_date`),\n" + + "\tkey `k_rid_hidd_cid` (`receiver_id`, `hidden`, `cat_id`, `expiration_date`),\n" + + "\tkey `k_rid_aid_tid` (`receiver_id`, `app_id`, `type_id`, `expiration_date`),\n" + + "\tkey `k_rid_stat_popup` (`receiver_id`, `status`, `popup`, `expiration_date`),\n" + "\tkey `k_tid` (`tag_id`)\n" + ") engine = InnoDB auto_increment = 167279613030 charset = gbk comment = '消息实体表'", output); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_partitionByHash.java b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_partitionByHash.java index 1c1d718d6c..bce644b753 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_partitionByHash.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_partitionByHash.java @@ -37,7 +37,7 @@ public class OceanbaseCreateTableTest_partitionByHash extends MysqlTest { { String result = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE tnhash (" - + "\n\tid INT, " + + "\n\tid INT," + "\n\tname VARCHAR(5)" + "\n)" + "\nPARTITION BY HASH (id) PARTITIONS 2", @@ -46,7 +46,7 @@ public class OceanbaseCreateTableTest_partitionByHash extends MysqlTest { { String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); Assert.assertEquals("create table tnhash (" - + "\n\tid INT, " + + "\n\tid INT," + "\n\tname VARCHAR(5)" + "\n)" + "\npartition by hash (id) partitions 2", diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_partitionByHash2.java b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_partitionByHash2.java index 5b108a5648..ef67fd834f 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_partitionByHash2.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_partitionByHash2.java @@ -44,12 +44,12 @@ public class OceanbaseCreateTableTest_partitionByHash2 extends MysqlTest { { 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\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", @@ -58,12 +58,12 @@ public class OceanbaseCreateTableTest_partitionByHash2 extends MysqlTest { { 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\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", diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_partitionByKey.java b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_partitionByKey.java index 5edf394e98..2424d9b897 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_partitionByKey.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_partitionByKey.java @@ -37,7 +37,7 @@ public class OceanbaseCreateTableTest_partitionByKey extends MysqlTest { { String result = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE k2 (" - + "\n\tid int PRIMARY KEY, " + + "\n\tid int PRIMARY KEY," + "\n\tname varchar(20)" + "\n)" + "\nPARTITION BY KEY () PARTITIONS 2", @@ -46,7 +46,7 @@ public class OceanbaseCreateTableTest_partitionByKey extends MysqlTest { { String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); Assert.assertEquals("create table k2 (" - + "\n\tid int primary key, " + + "\n\tid int primary key," + "\n\tname varchar(20)" + "\n)" + "\npartition by key () partitions 2", diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition.java b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition.java index 0887fd8069..e5484772a0 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition.java @@ -46,12 +46,12 @@ public class OceanbaseCreateTableTest_rangePartition extends MysqlTest { { 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\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)" @@ -66,12 +66,12 @@ public class OceanbaseCreateTableTest_rangePartition extends MysqlTest { { 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\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)" diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition2.java b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition2.java index 6b6dcb0a53..5ba398d2db 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition2.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition2.java @@ -49,12 +49,12 @@ public class OceanbaseCreateTableTest_rangePartition2 extends MysqlTest { { 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\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)" @@ -69,12 +69,12 @@ public class OceanbaseCreateTableTest_rangePartition2 extends MysqlTest { { 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\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)" diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition3.java b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition3.java index 3d074be70e..f85e1aaa27 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition3.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition3.java @@ -48,12 +48,12 @@ public class OceanbaseCreateTableTest_rangePartition3 extends MysqlTest { { 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\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)" @@ -67,12 +67,12 @@ public class OceanbaseCreateTableTest_rangePartition3 extends MysqlTest { { 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\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)" diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition4.java b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition4.java index a2fa9bf203..467c5c63be 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition4.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition4.java @@ -48,12 +48,12 @@ public class OceanbaseCreateTableTest_rangePartition4 extends MysqlTest { { 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\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))" @@ -68,12 +68,12 @@ public class OceanbaseCreateTableTest_rangePartition4 extends MysqlTest { { 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\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))" diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition5.java b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition5.java index 8a7a457a43..f19217e760 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition5.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_rangePartition5.java @@ -41,7 +41,7 @@ public class OceanbaseCreateTableTest_rangePartition5 extends MysqlTest { { String result = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE tnrange (" - + "\n\tid INT, " + + "\n\tid INT," + "\n\tname VARCHAR(5)" + "\n)" + "\nPARTITION BY RANGE (id)" @@ -54,7 +54,7 @@ public class OceanbaseCreateTableTest_rangePartition5 extends MysqlTest { { String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); Assert.assertEquals("create table tnrange (" - + "\n\tid INT, " + + "\n\tid INT," + "\n\tname VARCHAR(5)" + "\n)" + "\npartition by range (id)" diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_subPartition.java b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_subPartition.java index a8d4cc9463..cbbd46848d 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_subPartition.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_subPartition.java @@ -43,7 +43,7 @@ public class OceanbaseCreateTableTest_subPartition extends MysqlTest { { String result = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE ts (" - + "\n\tid INT, " + + "\n\tid INT," + "\n\tpurchased DATE" + "\n)" + "\nPARTITION BY RANGE (YEAR(purchased))" @@ -58,7 +58,7 @@ public class OceanbaseCreateTableTest_subPartition extends MysqlTest { { String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); Assert.assertEquals("create table ts (" - + "\n\tid INT, " + + "\n\tid INT," + "\n\tpurchased DATE" + "\n)" + "\npartition by range (YEAR(purchased))" diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_subPartition2.java b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_subPartition2.java index 0df1a48ace..bd0ca2d443 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_subPartition2.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_subPartition2.java @@ -45,7 +45,7 @@ public class OceanbaseCreateTableTest_subPartition2 extends MysqlTest { { String result = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE ts (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tpurchased DATE" + // "\n)" + // "\nPARTITION BY RANGE (YEAR(purchased))" + // @@ -72,7 +72,7 @@ public class OceanbaseCreateTableTest_subPartition2 extends MysqlTest { { String result = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); Assert.assertEquals("create table ts (" + // - "\n\tid INT, " + // + "\n\tid INT," + // "\n\tpurchased DATE" + // "\n)" + // "\npartition by range (YEAR(purchased))" + // diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_subPartition3.java b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_subPartition3.java index 815a5d4421..d1514d9080 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_subPartition3.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_subPartition3.java @@ -40,7 +40,7 @@ public class OceanbaseCreateTableTest_subPartition3 extends MysqlTest { String result = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE ts (" - + "\n\tid INT, " + + "\n\tid INT," + "\n\tpurchased DATE" + "\n)" + "\nPARTITION BY RANGE (YEAR(purchased))" diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_subPartition4.java b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_subPartition4.java index 99904c9741..fc28c11ff5 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_subPartition4.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oceanbase/OceanbaseCreateTableTest_subPartition4.java @@ -41,7 +41,7 @@ public class OceanbaseCreateTableTest_subPartition4 extends MysqlTest { String result = SQLUtils.toMySqlString(stmt); Assert.assertEquals("CREATE TABLE ts (" - + "\n\tid INT, " + + "\n\tid INT," + "\n\tpurchased DATE" + "\n)" + "\nPARTITION BY RANGE (YEAR(purchased))"