in core/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlOutputVisitor.java [259:439]
public boolean visit(SQLColumnDefinition x) {
boolean parameterized = this.parameterized;
this.parameterized = false;
x.getName().accept(this);
SQLDataType dataType = x.getDataType();
if (dataType != null) {
print(' ');
dataType.accept(this);
}
SQLExpr generatedAlawsAs = x.getGeneratedAlwaysAs();
if (generatedAlawsAs != null) {
print0(ucase ? " GENERATED ALWAYS AS (" : " generated always as (");
printExpr(generatedAlawsAs);
print(')');
}
if (x.isVirtual()) {
print0(ucase ? " VIRTUAL" : " virtual");
}
if (x.isVisible()) {
print0(ucase ? " VISIBLE" : " visible");
}
final SQLExpr charsetExpr = x.getCharsetExpr();
if (charsetExpr != null) {
print0(ucase ? " CHARACTER SET " : " character set ");
charsetExpr.accept(this);
}
final SQLExpr collateExpr = x.getCollateExpr();
if (collateExpr != null) {
print0(ucase ? " COLLATE " : " collate ");
collateExpr.accept(this);
}
for (SQLColumnConstraint item : x.getConstraints()) {
if (item instanceof SQLColumnReference) {
continue;
}
print(' ');
item.accept(this);
}
final SQLExpr defaultExpr = x.getDefaultExpr();
if (defaultExpr != null) {
print0(ucase ? " DEFAULT " : " default ");
defaultExpr.accept(this);
}
final SQLExpr storage = x.getStorage();
if (storage != null) {
print0(ucase ? " STORAGE " : " storage ");
storage.accept(this);
}
final SQLExpr format = x.getFormat();
if (format != null) {
printUcase(" COLUMN_FORMAT ");
format.accept(this);
}
SQLExpr onUpdate = x.getOnUpdate();
if (onUpdate != null) {
print0(ucase ? " ON UPDATE " : " on update ");
onUpdate.accept(this);
}
if (x.getJsonIndexAttrsExpr() != null) {
print0(ucase ? " JSONINDEXATTRS '" : " jsonindexattrs '");
x.getJsonIndexAttrsExpr().accept(this);
print0("' ");
}
boolean autoIncrement = x.isAutoIncrement();
if (!autoIncrement && x.getGeneratedAlwaysAs() == null && x.getIdentity() != null) {
autoIncrement = true;
}
if (autoIncrement) {
print0(ucase ? " AUTO_INCREMENT" : " auto_increment");
}
if (x.getDelimiterTokenizer() != null) {
print0(ucase ? " DELIMITER_TOKENIZER " : " delimiter_tokenizer ");
x.getDelimiterTokenizer().accept(this);
}
if (x.getNlpTokenizer() != null) {
print0(ucase ? " NLP_TOKENIZER " : " nlp_tokenizer ");
x.getNlpTokenizer().accept(this);
}
if (x.getValueType() != null) {
print0(ucase ? " VALUE_TYPE " : " value_type ");
x.getValueType().accept(this);
}
final AutoIncrementType sequenceType = x.getSequenceType();
if (sequenceType != null) {
print0(ucase ? " BY " : " by ");
print0(ucase ? sequenceType.getKeyword() : sequenceType.getKeyword().toLowerCase());
}
final SQLExpr unitCount = x.getUnitCount();
if (unitCount != null) {
print0(ucase ? " UNIT COUNT " : " unit count ");
printExpr(unitCount);
}
final SQLExpr unitIndex = x.getUnitIndex();
if (unitIndex != null) {
print0(ucase ? " INDEX " : " index ");
printExpr(unitIndex);
}
if (x.getStep() != null) {
print0(ucase ? " STEP " : " STEP ");
printExpr(x.getStep());
}
SQLExpr delimiter = x.getDelimiter();
if (delimiter != null) {
print0(ucase ? " DELIMITER " : " delimiter ");
delimiter.accept(this);
}
if (x.isDisableIndex() == true) {
print0(ucase ? " DISABLEINDEX TRUE" : " disableindex true");
}
final SQLAnnIndex annIndex = x.getAnnIndex();
if (annIndex != null) {
print(' ');
annIndex.accept(this);
}
if (x.getComment() != null) {
print0(ucase ? " COMMENT " : " comment ");
x.getComment().accept(this);
}
if (x.getAsExpr() != null) {
print0(ucase ? " AS (" : " as (");
x.getAsExpr().accept(this);
print(')');
}
if (x.isStored()) {
print0(ucase ? " STORED" : " stored");
}
if (x.getEncode() != null) {
print0(ucase ? " ENCODE=" : " encode=");
x.getEncode().accept(this);
}
if (x.getCompression() != null) {
print0(ucase ? " COMPRESSION=" : " compression=");
x.getCompression().accept(this);
}
List<SQLAssignItem> colProperties = x.getColPropertiesDirect();
if (colProperties != null && colProperties.size() > 0) {
print0(ucase ? " COLPROPERTIES (" : " colproperties (");
printAndAccept(colProperties, ", ");
print0(ucase ? ")" : ")");
}
for (SQLColumnConstraint item : x.getConstraints()) {
if (item instanceof SQLColumnReference) {
print(' ');
item.accept(this);
}
}
this.parameterized = parameterized;
return false;
}