improved odps sql formatter

This commit is contained in:
shaojin.wensj
2015-07-20 04:41:57 +08:00
parent 8f51368245
commit a5811a4f3e
38 changed files with 415 additions and 103 deletions
@@ -16,11 +16,11 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLObjectImpl;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.ast.SQLStatementImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLCommentStatement extends SQLObjectImpl implements SQLStatement {
public class SQLCommentStatement extends SQLStatementImpl implements SQLStatement {
public static enum Type {
TABLE, COLUMN
@@ -24,6 +24,7 @@ import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLInsertStatement extends SQLInsertInto implements SQLStatement {
private String dbType;
public SQLInsertStatement(){
@@ -85,4 +86,13 @@ public class SQLInsertStatement extends SQLInsertInto implements SQLStatement {
visitor.endVisit(this);
}
}
@Override
public String getDbType() {
return dbType;
}
public void setDbType(String dbType) {
this.dbType = dbType;
}
}
@@ -18,9 +18,12 @@ package com.alibaba.druid.sql.ast.statement;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.druid.sql.SQLUtils;
import com.alibaba.druid.sql.ast.SQLHint;
import com.alibaba.druid.sql.ast.SQLObject;
import com.alibaba.druid.sql.ast.SQLObjectImpl;
import com.alibaba.druid.sql.ast.SQLOrderBy;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLSelect extends SQLObjectImpl {
@@ -118,4 +121,16 @@ public class SQLSelect extends SQLObjectImpl {
return true;
}
public String toString() {
SQLObject parent = this.getParent();
if (parent instanceof SQLStatement) {
String dbType = ((SQLStatement) parent).getDbType();
if (dbType != null) {
return SQLUtils.toSQLString(this, dbType);
}
}
return super.toString();
}
}
@@ -21,9 +21,9 @@ import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLSelectItem extends SQLObjectImpl {
private SQLExpr expr;
private String alias;
private boolean connectByRoot = false;
protected SQLExpr expr;
protected String alias;
protected boolean connectByRoot = false;
public SQLSelectItem(){