修正输出格式

git-svn-id: http://code.alibabatech.com/svn/druid/trunk@172 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
wenshao
2011-05-21 07:33:59 +00:00
parent 19b51f3eef
commit a11649ca87
5 changed files with 36 additions and 46 deletions
@@ -22,7 +22,6 @@ import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.SQLObjectImpl;
import com.alibaba.druid.sql.ast.SQLStatementImpl;
import com.alibaba.druid.sql.ast.expr.SQLQueryExpr;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLInsertStatement extends SQLStatementImpl {
@@ -33,7 +32,7 @@ public class SQLInsertStatement extends SQLStatementImpl {
private final List<SQLExpr> columns = new ArrayList<SQLExpr>();
private ValuesClause values;
private SQLQueryExpr query;
private SQLSelect query;
public SQLInsertStatement(){
@@ -55,11 +54,11 @@ public class SQLInsertStatement extends SQLStatementImpl {
this.tableName = tableName;
}
public SQLQueryExpr getQuery() {
public SQLSelect getQuery() {
return query;
}
public void setQuery(SQLQueryExpr query) {
public void setQuery(SQLSelect query) {
this.query = query;
}
@@ -75,28 +74,6 @@ public class SQLInsertStatement extends SQLStatementImpl {
this.values = values;
}
public void output(StringBuffer buf) {
buf.append("INSERT INTO ");
this.tableName.output(buf);
if (columns.size() > 0) {
buf.append(" (");
for (int i = 0, size = columns.size(); i < size; ++i) {
if (i != 0) {
buf.append(", ");
}
columns.get(i).output(buf);
}
buf.append(")");
}
if (values != null) {
values.output(buf);
} else {
buf.append(" ");
this.query.output(buf);
}
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
@@ -803,7 +803,7 @@ public class MySqlStatementParser extends SQLStatementParser {
} else if (lexer.token() == (Token.SELECT)) {
SQLQueryExpr queryExpr = (SQLQueryExpr) this.exprParser.expr();
insertStatement.setQuery(queryExpr);
insertStatement.setQuery(queryExpr.getSubQuery());
}
if (lexer.token() == Token.ON) {
@@ -159,7 +159,7 @@ public class SQLStatementParser extends SQLParser {
accept(Token.RPAREN);
} else if (lexer.token() == (Token.SELECT)) {
SQLQueryExpr queryExpr = (SQLQueryExpr) this.createExprParser().expr();
insertStatement.setQuery(queryExpr);
insertStatement.setQuery(queryExpr.getSubQuery());
}
return insertStatement;
}
@@ -182,17 +182,17 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter {
public boolean visit(SQLBetweenExpr x) {
x.getTestExpr().accept(this);
if (x.isNot()) {
print(" NOT BETWEEN ");
} else {
print(" BETWEEN ");
}
x.getBeginExpr().accept(this);
print(" AND ");
x.getEndExpr().accept(this);
return false;
}
@@ -586,21 +586,27 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter {
if (x.getColumns().size() > 0) {
print(" (");
incrementIndent();
for (int i = 0, size = x.getColumns().size(); i < size; ++i) {
if (i != 0) {
if (i % 5 == 0) {
println();
}
print(", ");
}
x.getColumns().get(i).accept(this);
}
decrementIndent();
print(")");
}
if (x.getValues() != null) {
print(" VALUES ");
println();
print("VALUES ");
x.getValues().accept(this);
} else {
if (x.getQuery() != null) {
print(" ");
println();
x.getQuery().accept(this);
}
}
+20 -13
View File
@@ -58,16 +58,23 @@ INSERT INTO GLOBAL_ACCOUNT_SMD
WHERE ACCOUNT_ID = :B2
AND DOMAIN = :B1
---------------------------
INSERT INTO GLOBAL_ACCOUNT_SMD (ID, GMT_MODIFIED, MODIFIER, GMT_CREATE, CREATOR, DOMAIN, EMPLOYEE_NUMBER, COMPANY_NAME, HOMEPAGE_URL, BACKGROUND, CATEGORY_ID, REMARK, MEMBER_ID, SALES_OWNER_ID, ACCOUNT_ID, IS_DELETED, CUST_GRADE) (SELECT ID, GMT_MODIFIED, MODIFIER, GMT_CREATE, CREATOR
, DOMAIN, EMPLOYEE_NUMBER, COMPANY_NAME, HOMEPAGE_URL, BACKGROUND
, CATEGORY_ID, REMARK, MEMBER_ID, SALES_OWNER_ID, ACCOUNT_ID
, IS_DELETED, CUST_GRADE
FROM APOLLO_ZEUS.GLOBAL_ACCOUNT
WHERE ACCOUNT_ID = :B2 AND DOMAIN = :B1
UNION ALL
SELECT ID, GMT_MODIFIED, MODIFIER, GMT_CREATE, CREATOR
, DOMAIN, EMPLOYEE_NUMBER, COMPANY_NAME, HOMEPAGE_URL, BACKGROUND
, CATEGORY_ID, REMARK, MEMBER_ID, SALES_OWNER_ID, ACCOUNT_ID
, IS_DELETED, CUST_GRADE
FROM APOLLO_NIR.GLOBAL_ACCOUNT
WHERE ACCOUNT_ID = :B2 AND DOMAIN = :B1);
INSERT INTO GLOBAL_ACCOUNT_SMD (ID, GMT_MODIFIED, MODIFIER, GMT_CREATE, CREATOR
, DOMAIN, EMPLOYEE_NUMBER, COMPANY_NAME, HOMEPAGE_URL, BACKGROUND
, CATEGORY_ID, REMARK, MEMBER_ID, SALES_OWNER_ID, ACCOUNT_ID
, IS_DELETED, CUST_GRADE)
SELECT ID, GMT_MODIFIED, MODIFIER, GMT_CREATE, CREATOR
, DOMAIN, EMPLOYEE_NUMBER, COMPANY_NAME, HOMEPAGE_URL, BACKGROUND
, CATEGORY_ID, REMARK, MEMBER_ID, SALES_OWNER_ID, ACCOUNT_ID
, IS_DELETED, CUST_GRADE
FROM APOLLO_ZEUS.GLOBAL_ACCOUNT
WHERE ACCOUNT_ID = :B2 AND DOMAIN = :B1
UNION ALL
SELECT ID, GMT_MODIFIED, MODIFIER, GMT_CREATE, CREATOR
, DOMAIN, EMPLOYEE_NUMBER, COMPANY_NAME, HOMEPAGE_URL, BACKGROUND
, CATEGORY_ID, REMARK, MEMBER_ID, SALES_OWNER_ID, ACCOUNT_ID
, IS_DELETED, CUST_GRADE
FROM APOLLO_NIR.GLOBAL_ACCOUNT
WHERE ACCOUNT_ID = :B2 AND DOMAIN = :B1;