mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
修正输出格式
git-svn-id: http://code.alibabatech.com/svn/druid/trunk@172 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user