backport sql parser improved from fastsql

This commit is contained in:
高铁
2019-10-05 08:18:31 +08:00
parent b79edab45f
commit da8d80b934
2 changed files with 59 additions and 0 deletions
@@ -0,0 +1,53 @@
package com.alibaba.druid.sql.ast;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLDataTypeRefExpr extends SQLExprImpl {
private SQLDataType dataType;
public SQLDataTypeRefExpr(SQLDataType dataType) {
this.dataType = dataType;
}
public SQLDataType getDataType() {
return dataType;
}
public void setDataType(SQLDataType x) {
if (x != null) {
x.setParent(this);
}
this.dataType = x;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
SQLDataTypeRefExpr that = (SQLDataTypeRefExpr) o;
return dataType != null ? dataType.equals(that.dataType) : that.dataType == null;
}
@Override
public int hashCode() {
return dataType != null ? dataType.hashCode() : 0;
}
@Override
protected void accept0(SQLASTVisitor v) {
if (v.visit(this)) {
acceptChild(v, dataType);
}
v.endVisit(this);
}
@Override
public SQLExpr clone() {
return new SQLDataTypeRefExpr(
dataType == null
? null
: dataType.clone());
}
}
@@ -0,0 +1,6 @@
package com.alibaba.druid.sql.ast;
public interface SQLDbTypedObject extends SQLObject {
String getDbType();
}