bug fixed for SQLSelect.toString(). for issue #2096

This commit is contained in:
wenshao
2017-11-08 23:25:28 +08:00
parent 469f7f07a3
commit 7393c725c2
2 changed files with 102 additions and 0 deletions
@@ -21,6 +21,7 @@ import java.util.List;
import com.alibaba.druid.sql.SQLUtils;
import com.alibaba.druid.sql.ast.*;
import com.alibaba.druid.sql.dialect.oracle.ast.OracleSQLObject;
import com.alibaba.druid.sql.visitor.SQLASTOutputVisitor;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
import com.alibaba.druid.util.JdbcConstants;
@@ -143,6 +144,26 @@ public class SQLSelect extends SQLObjectImpl {
return true;
}
public void output(StringBuffer buf) {
String dbType = null;
SQLObject parent = this.getParent();
if (parent instanceof SQLStatement) {
dbType = ((SQLStatement) parent).getDbType();
}
if (dbType == null && parent instanceof OracleSQLObject) {
dbType = JdbcConstants.ORACLE;
}
if (dbType == null && query instanceof SQLSelectQueryBlock) {
dbType = ((SQLSelectQueryBlock) query).dbType;
}
SQLASTOutputVisitor visitor = SQLUtils.createOutputVisitor(buf, dbType);
this.accept(visitor);
}
public String toString() {
SQLObject parent = this.getParent();
if (parent instanceof SQLStatement) {