This commit is contained in:
xiusiyan
2012-03-18 22:57:34 +08:00
1153 changed files with 145776 additions and 145758 deletions
@@ -1,7 +1,7 @@
package com.alibaba.druid.sql.dialect.sqlserver.ast;
import com.alibaba.druid.sql.dialect.transact.ast.TransactSQLObject;
public interface SQLServerObject extends TransactSQLObject {
}
package com.alibaba.druid.sql.dialect.sqlserver.ast;
import com.alibaba.druid.sql.dialect.transact.ast.TransactSQLObject;
public interface SQLServerObject extends TransactSQLObject {
}
@@ -1,36 +1,36 @@
/*
* Copyright 1999-2011 Alibaba Group Holding Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.alibaba.druid.sql.dialect.sqlserver.ast;
import com.alibaba.druid.sql.ast.SQLObjectImpl;
import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitor;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public abstract class SQLServerObjectImpl extends SQLObjectImpl implements SQLServerObject {
private static final long serialVersionUID = 1L;
public SQLServerObjectImpl(){
}
@Override
protected void accept0(SQLASTVisitor visitor) {
this.accept0((SQLServerASTVisitor) visitor);
}
public abstract void accept0(SQLServerASTVisitor visitor);
}
/*
* Copyright 1999-2011 Alibaba Group Holding Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.alibaba.druid.sql.dialect.sqlserver.ast;
import com.alibaba.druid.sql.ast.SQLObjectImpl;
import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitor;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public abstract class SQLServerObjectImpl extends SQLObjectImpl implements SQLServerObject {
private static final long serialVersionUID = 1L;
public SQLServerObjectImpl(){
}
@Override
protected void accept0(SQLASTVisitor visitor) {
this.accept0((SQLServerASTVisitor) visitor);
}
public abstract void accept0(SQLServerASTVisitor visitor);
}
@@ -1,12 +1,12 @@
package com.alibaba.druid.sql.dialect.sqlserver.ast;
import com.alibaba.druid.sql.ast.statement.SQLSelect;
public class SQLServerSelect extends SQLSelect {
/**
*
*/
private static final long serialVersionUID = 1L;
}
package com.alibaba.druid.sql.dialect.sqlserver.ast;
import com.alibaba.druid.sql.ast.statement.SQLSelect;
public class SQLServerSelect extends SQLSelect {
/**
*
*/
private static final long serialVersionUID = 1L;
}
@@ -1,39 +1,39 @@
package com.alibaba.druid.sql.dialect.sqlserver.ast;
import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock;
import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitor;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLServerSelectQueryBlock extends SQLSelectQueryBlock {
/**
*
*/
private static final long serialVersionUID = 1L;
private Top top;
public Top getTop() {
return top;
}
public void setTop(Top top) {
this.top = top;
}
@Override
protected void accept0(SQLASTVisitor visitor) {
accept0((SQLServerASTVisitor) visitor);
}
protected void accept0(SQLServerASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, this.top);
acceptChild(visitor, this.selectList);
acceptChild(visitor, this.from);
acceptChild(visitor, this.where);
acceptChild(visitor, this.groupBy);
}
visitor.endVisit(this);
}
}
package com.alibaba.druid.sql.dialect.sqlserver.ast;
import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock;
import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitor;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLServerSelectQueryBlock extends SQLSelectQueryBlock {
/**
*
*/
private static final long serialVersionUID = 1L;
private Top top;
public Top getTop() {
return top;
}
public void setTop(Top top) {
this.top = top;
}
@Override
protected void accept0(SQLASTVisitor visitor) {
accept0((SQLServerASTVisitor) visitor);
}
protected void accept0(SQLServerASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, this.top);
acceptChild(visitor, this.selectList);
acceptChild(visitor, this.from);
acceptChild(visitor, this.where);
acceptChild(visitor, this.groupBy);
}
visitor.endVisit(this);
}
}
@@ -1,48 +1,48 @@
package com.alibaba.druid.sql.dialect.sqlserver.ast;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitor;
public class Top extends SQLServerObjectImpl {
/**
*
*/
private static final long serialVersionUID = 1L;
private SQLExpr expr;
private boolean percent;
private boolean withTies;
public SQLExpr getExpr() {
return expr;
}
public void setExpr(SQLExpr expr) {
this.expr = expr;
}
public boolean isPercent() {
return percent;
}
public void setPercent(boolean percent) {
this.percent = percent;
}
public boolean isWithTies() {
return withTies;
}
public void setWithTies(boolean withTies) {
this.withTies = withTies;
}
@Override
public void accept0(SQLServerASTVisitor visitor) {
if (visitor.visit(this)) {
}
}
}
package com.alibaba.druid.sql.dialect.sqlserver.ast;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitor;
public class Top extends SQLServerObjectImpl {
/**
*
*/
private static final long serialVersionUID = 1L;
private SQLExpr expr;
private boolean percent;
private boolean withTies;
public SQLExpr getExpr() {
return expr;
}
public void setExpr(SQLExpr expr) {
this.expr = expr;
}
public boolean isPercent() {
return percent;
}
public void setPercent(boolean percent) {
this.percent = percent;
}
public boolean isWithTies() {
return withTies;
}
public void setWithTies(boolean withTies) {
this.withTies = withTies;
}
@Override
public void accept0(SQLServerASTVisitor visitor) {
if (visitor.visit(this)) {
}
}
}
@@ -1,8 +1,8 @@
package com.alibaba.druid.sql.dialect.sqlserver.ast.expr;
import com.alibaba.druid.sql.ast.SQLExpr;
public interface SQLServerExpr extends SQLExpr {
}
package com.alibaba.druid.sql.dialect.sqlserver.ast.expr;
import com.alibaba.druid.sql.ast.SQLExpr;
public interface SQLServerExpr extends SQLExpr {
}
@@ -1,103 +1,103 @@
package com.alibaba.druid.sql.dialect.sqlserver.ast.expr;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr;
import com.alibaba.druid.sql.ast.expr.SQLPropertyExpr;
import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerObjectImpl;
import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitor;
public class SQLServerObjectReferenceExpr extends SQLServerObjectImpl implements SQLServerExpr, SQLName {
private static final long serialVersionUID = 1L;
private String server;
private String database;
private String schema;
public SQLServerObjectReferenceExpr(){
}
public SQLServerObjectReferenceExpr(SQLExpr owner){
if (owner instanceof SQLIdentifierExpr) {
this.database = ((SQLIdentifierExpr) owner).getName();
} else if (owner instanceof SQLPropertyExpr) {
SQLPropertyExpr propExpr = (SQLPropertyExpr) owner;
this.server = ((SQLIdentifierExpr) propExpr.getOwner()).getName();
this.database = propExpr.getName();
} else {
throw new IllegalArgumentException(owner.toString());
}
}
public String getSimleName() {
if (schema != null) {
return schema;
}
if (database != null) {
return database;
}
return server;
}
@Override
public void accept0(SQLServerASTVisitor visitor) {
if (visitor.visit(this)) {
}
visitor.endVisit(this);
}
public void output(StringBuffer buf) {
boolean flag = false;
if (server != null) {
buf.append(server);
flag = true;
}
if (flag) {
buf.append('.');
}
if (database != null) {
buf.append(database);
flag = true;
}
if (flag) {
buf.append('.');
}
if (schema != null) {
buf.append(schema);
flag = true;
}
}
public String getServer() {
return server;
}
public void setServer(String server) {
this.server = server;
}
public String getDatabase() {
return database;
}
public void setDatabase(String database) {
this.database = database;
}
public String getSchema() {
return schema;
}
public void setSchema(String schema) {
this.schema = schema;
}
}
package com.alibaba.druid.sql.dialect.sqlserver.ast.expr;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr;
import com.alibaba.druid.sql.ast.expr.SQLPropertyExpr;
import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerObjectImpl;
import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitor;
public class SQLServerObjectReferenceExpr extends SQLServerObjectImpl implements SQLServerExpr, SQLName {
private static final long serialVersionUID = 1L;
private String server;
private String database;
private String schema;
public SQLServerObjectReferenceExpr(){
}
public SQLServerObjectReferenceExpr(SQLExpr owner){
if (owner instanceof SQLIdentifierExpr) {
this.database = ((SQLIdentifierExpr) owner).getName();
} else if (owner instanceof SQLPropertyExpr) {
SQLPropertyExpr propExpr = (SQLPropertyExpr) owner;
this.server = ((SQLIdentifierExpr) propExpr.getOwner()).getName();
this.database = propExpr.getName();
} else {
throw new IllegalArgumentException(owner.toString());
}
}
public String getSimleName() {
if (schema != null) {
return schema;
}
if (database != null) {
return database;
}
return server;
}
@Override
public void accept0(SQLServerASTVisitor visitor) {
if (visitor.visit(this)) {
}
visitor.endVisit(this);
}
public void output(StringBuffer buf) {
boolean flag = false;
if (server != null) {
buf.append(server);
flag = true;
}
if (flag) {
buf.append('.');
}
if (database != null) {
buf.append(database);
flag = true;
}
if (flag) {
buf.append('.');
}
if (schema != null) {
buf.append(schema);
flag = true;
}
}
public String getServer() {
return server;
}
public void setServer(String server) {
this.server = server;
}
public String getDatabase() {
return database;
}
public void setDatabase(String database) {
this.database = database;
}
public String getSchema() {
return schema;
}
public void setSchema(String schema) {
this.schema = schema;
}
}
@@ -1,43 +1,43 @@
package com.alibaba.druid.sql.dialect.sqlserver.parser;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.expr.SQLPropertyExpr;
import com.alibaba.druid.sql.dialect.sqlserver.ast.expr.SQLServerObjectReferenceExpr;
import com.alibaba.druid.sql.parser.Lexer;
import com.alibaba.druid.sql.parser.ParserException;
import com.alibaba.druid.sql.parser.SQLExprParser;
import com.alibaba.druid.sql.parser.Token;
public class SQLServerExprParser extends SQLExprParser {
public SQLServerExprParser(Lexer lexer){
super(lexer);
}
public SQLServerExprParser(String sql) throws ParserException{
super(new SQLServerLexer(sql));
this.lexer.nextToken();
}
public SQLExpr primaryRest(SQLExpr expr) throws ParserException {
if (lexer.token() == Token.DOTDOT) {
expr = nameRest((SQLName) expr);
}
return super.primaryRest(expr);
}
public SQLName nameRest(SQLName expr) throws ParserException {
if (lexer.token() == Token.DOTDOT) {
lexer.nextToken();
String text = lexer.stringVal();
lexer.nextToken();
SQLServerObjectReferenceExpr owner = new SQLServerObjectReferenceExpr(expr);
expr = new SQLPropertyExpr(owner, text);
}
return super.nameRest(expr);
}
}
package com.alibaba.druid.sql.dialect.sqlserver.parser;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.expr.SQLPropertyExpr;
import com.alibaba.druid.sql.dialect.sqlserver.ast.expr.SQLServerObjectReferenceExpr;
import com.alibaba.druid.sql.parser.Lexer;
import com.alibaba.druid.sql.parser.ParserException;
import com.alibaba.druid.sql.parser.SQLExprParser;
import com.alibaba.druid.sql.parser.Token;
public class SQLServerExprParser extends SQLExprParser {
public SQLServerExprParser(Lexer lexer){
super(lexer);
}
public SQLServerExprParser(String sql) throws ParserException{
super(new SQLServerLexer(sql));
this.lexer.nextToken();
}
public SQLExpr primaryRest(SQLExpr expr) throws ParserException {
if (lexer.token() == Token.DOTDOT) {
expr = nameRest((SQLName) expr);
}
return super.primaryRest(expr);
}
public SQLName nameRest(SQLName expr) throws ParserException {
if (lexer.token() == Token.DOTDOT) {
lexer.nextToken();
String text = lexer.stringVal();
lexer.nextToken();
SQLServerObjectReferenceExpr owner = new SQLServerObjectReferenceExpr(expr);
expr = new SQLPropertyExpr(owner, text);
}
return super.nameRest(expr);
}
}
@@ -1,84 +1,84 @@
package com.alibaba.druid.sql.dialect.sqlserver.parser;
import com.alibaba.druid.sql.ast.SQLSetQuantifier;
import com.alibaba.druid.sql.ast.statement.SQLSelect;
import com.alibaba.druid.sql.ast.statement.SQLSelectQuery;
import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerSelect;
import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerSelectQueryBlock;
import com.alibaba.druid.sql.dialect.sqlserver.ast.Top;
import com.alibaba.druid.sql.parser.Lexer;
import com.alibaba.druid.sql.parser.ParserException;
import com.alibaba.druid.sql.parser.SQLExprParser;
import com.alibaba.druid.sql.parser.SQLSelectParser;
import com.alibaba.druid.sql.parser.Token;
public class SQLServerSelectParser extends SQLSelectParser {
public SQLServerSelectParser(String sql){
super(new SQLServerLexer(sql));
this.lexer.nextToken();
}
public SQLServerSelectParser(Lexer lexer){
super(lexer);
}
public SQLSelect select() throws ParserException {
SQLServerSelect select = new SQLServerSelect();
select.setQuery(query());
select.setOrderBy(parseOrderBy());
if (select.getOrderBy() == null) {
select.setOrderBy(parseOrderBy());
}
return select;
}
public SQLSelectQuery query() throws ParserException {
if (lexer.token() == Token.LPAREN) {
lexer.nextToken();
SQLSelectQuery select = query();
accept(Token.RPAREN);
return queryRest(select);
}
SQLServerSelectQueryBlock queryBlock = new SQLServerSelectQueryBlock();
if (lexer.token() == Token.SELECT) {
lexer.nextToken();
if (lexer.token() == Token.DISTINCT) {
queryBlock.setDistionOption(SQLSetQuantifier.DISTINCT);
lexer.nextToken();
} else if (lexer.token() == Token.ALL) {
queryBlock.setDistionOption(SQLSetQuantifier.ALL);
lexer.nextToken();
}
if (lexer.token() == Token.TOP) {
Top top = new Top();
lexer.nextToken();
top.setExpr(createExprParser().primary());
queryBlock.setTop(top);
}
parseSelectList(queryBlock);
}
parseFrom(queryBlock);
parseWhere(queryBlock);
parseGroupBy(queryBlock);
return queryRest(queryBlock);
}
protected SQLExprParser createExprParser() {
return new SQLServerExprParser(lexer);
}
}
package com.alibaba.druid.sql.dialect.sqlserver.parser;
import com.alibaba.druid.sql.ast.SQLSetQuantifier;
import com.alibaba.druid.sql.ast.statement.SQLSelect;
import com.alibaba.druid.sql.ast.statement.SQLSelectQuery;
import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerSelect;
import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerSelectQueryBlock;
import com.alibaba.druid.sql.dialect.sqlserver.ast.Top;
import com.alibaba.druid.sql.parser.Lexer;
import com.alibaba.druid.sql.parser.ParserException;
import com.alibaba.druid.sql.parser.SQLExprParser;
import com.alibaba.druid.sql.parser.SQLSelectParser;
import com.alibaba.druid.sql.parser.Token;
public class SQLServerSelectParser extends SQLSelectParser {
public SQLServerSelectParser(String sql){
super(new SQLServerLexer(sql));
this.lexer.nextToken();
}
public SQLServerSelectParser(Lexer lexer){
super(lexer);
}
public SQLSelect select() throws ParserException {
SQLServerSelect select = new SQLServerSelect();
select.setQuery(query());
select.setOrderBy(parseOrderBy());
if (select.getOrderBy() == null) {
select.setOrderBy(parseOrderBy());
}
return select;
}
public SQLSelectQuery query() throws ParserException {
if (lexer.token() == Token.LPAREN) {
lexer.nextToken();
SQLSelectQuery select = query();
accept(Token.RPAREN);
return queryRest(select);
}
SQLServerSelectQueryBlock queryBlock = new SQLServerSelectQueryBlock();
if (lexer.token() == Token.SELECT) {
lexer.nextToken();
if (lexer.token() == Token.DISTINCT) {
queryBlock.setDistionOption(SQLSetQuantifier.DISTINCT);
lexer.nextToken();
} else if (lexer.token() == Token.ALL) {
queryBlock.setDistionOption(SQLSetQuantifier.ALL);
lexer.nextToken();
}
if (lexer.token() == Token.TOP) {
Top top = new Top();
lexer.nextToken();
top.setExpr(createExprParser().primary());
queryBlock.setTop(top);
}
parseSelectList(queryBlock);
}
parseFrom(queryBlock);
parseWhere(queryBlock);
parseGroupBy(queryBlock);
return queryRest(queryBlock);
}
protected SQLExprParser createExprParser() {
return new SQLServerExprParser(lexer);
}
}
@@ -1,38 +1,38 @@
/*
* Copyright 1999-2011 Alibaba Group Holding Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.alibaba.druid.sql.dialect.sqlserver.parser;
import com.alibaba.druid.sql.parser.Lexer;
import com.alibaba.druid.sql.parser.SQLSelectParser;
import com.alibaba.druid.sql.parser.SQLStatementParser;
public class SQLServerStatementParser extends SQLStatementParser {
public SQLServerStatementParser(String sql){
super(new SQLServerLexer(sql));
this.lexer.nextToken();
this.exprParser = new SQLServerExprParser(lexer);
}
public SQLSelectParser createSQLSelectParser() {
return new SQLServerSelectParser(this.lexer);
}
public SQLServerStatementParser(Lexer lexer){
super(lexer);
}
}
/*
* Copyright 1999-2011 Alibaba Group Holding Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.alibaba.druid.sql.dialect.sqlserver.parser;
import com.alibaba.druid.sql.parser.Lexer;
import com.alibaba.druid.sql.parser.SQLSelectParser;
import com.alibaba.druid.sql.parser.SQLStatementParser;
public class SQLServerStatementParser extends SQLStatementParser {
public SQLServerStatementParser(String sql){
super(new SQLServerLexer(sql));
this.lexer.nextToken();
this.exprParser = new SQLServerExprParser(lexer);
}
public SQLSelectParser createSQLSelectParser() {
return new SQLServerSelectParser(this.lexer);
}
public SQLServerStatementParser(Lexer lexer){
super(lexer);
}
}
@@ -1,21 +1,21 @@
package com.alibaba.druid.sql.dialect.sqlserver.visitor;
import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerSelectQueryBlock;
import com.alibaba.druid.sql.dialect.sqlserver.ast.Top;
import com.alibaba.druid.sql.dialect.sqlserver.ast.expr.SQLServerObjectReferenceExpr;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public interface SQLServerASTVisitor extends SQLASTVisitor {
boolean visit(SQLServerSelectQueryBlock x);
void endVisit(SQLServerSelectQueryBlock x);
boolean visit(Top x);
void endVisit(Top x);
boolean visit(SQLServerObjectReferenceExpr x);
void endVisit(SQLServerObjectReferenceExpr x);
}
package com.alibaba.druid.sql.dialect.sqlserver.visitor;
import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerSelectQueryBlock;
import com.alibaba.druid.sql.dialect.sqlserver.ast.Top;
import com.alibaba.druid.sql.dialect.sqlserver.ast.expr.SQLServerObjectReferenceExpr;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public interface SQLServerASTVisitor extends SQLASTVisitor {
boolean visit(SQLServerSelectQueryBlock x);
void endVisit(SQLServerSelectQueryBlock x);
boolean visit(Top x);
void endVisit(Top x);
boolean visit(SQLServerObjectReferenceExpr x);
void endVisit(SQLServerObjectReferenceExpr x);
}
@@ -1,40 +1,40 @@
package com.alibaba.druid.sql.dialect.sqlserver.visitor;
import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerSelectQueryBlock;
import com.alibaba.druid.sql.dialect.sqlserver.ast.Top;
import com.alibaba.druid.sql.dialect.sqlserver.ast.expr.SQLServerObjectReferenceExpr;
import com.alibaba.druid.sql.visitor.SQLASTVisitorAdapter;
public class SQLServerASTVisitorAdapter extends SQLASTVisitorAdapter implements SQLServerASTVisitor {
@Override
public boolean visit(SQLServerSelectQueryBlock x) {
return true;
}
@Override
public void endVisit(SQLServerSelectQueryBlock x) {
}
@Override
public boolean visit(Top x) {
return true;
}
@Override
public void endVisit(Top x) {
}
@Override
public boolean visit(SQLServerObjectReferenceExpr x) {
return true;
}
@Override
public void endVisit(SQLServerObjectReferenceExpr x) {
}
}
package com.alibaba.druid.sql.dialect.sqlserver.visitor;
import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerSelectQueryBlock;
import com.alibaba.druid.sql.dialect.sqlserver.ast.Top;
import com.alibaba.druid.sql.dialect.sqlserver.ast.expr.SQLServerObjectReferenceExpr;
import com.alibaba.druid.sql.visitor.SQLASTVisitorAdapter;
public class SQLServerASTVisitorAdapter extends SQLASTVisitorAdapter implements SQLServerASTVisitor {
@Override
public boolean visit(SQLServerSelectQueryBlock x) {
return true;
}
@Override
public void endVisit(SQLServerSelectQueryBlock x) {
}
@Override
public boolean visit(Top x) {
return true;
}
@Override
public void endVisit(Top x) {
}
@Override
public boolean visit(SQLServerObjectReferenceExpr x) {
return true;
}
@Override
public void endVisit(SQLServerObjectReferenceExpr x) {
}
}
@@ -1,82 +1,82 @@
package com.alibaba.druid.sql.dialect.sqlserver.visitor;
import com.alibaba.druid.sql.ast.SQLSetQuantifier;
import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerSelectQueryBlock;
import com.alibaba.druid.sql.dialect.sqlserver.ast.Top;
import com.alibaba.druid.sql.dialect.sqlserver.ast.expr.SQLServerObjectReferenceExpr;
import com.alibaba.druid.sql.visitor.SQLASTOutputVisitor;
public class SQLServerOutputVisitor extends SQLASTOutputVisitor implements SQLServerASTVisitor {
public SQLServerOutputVisitor(Appendable appender){
super(appender);
}
public boolean visit(SQLServerSelectQueryBlock x) {
print("SELECT ");
if (SQLSetQuantifier.ALL == x.getDistionOption()) {
print("ALL ");
} else if (SQLSetQuantifier.DISTINCT == x.getDistionOption()) {
print("DISTINCT ");
} else if (SQLSetQuantifier.UNIQUE == x.getDistionOption()) {
print("UNIQUE ");
}
if (x.getTop() != null) {
x.getTop().accept(this);
}
printSelectList(x.getSelectList());
if (x.getFrom() != null) {
println();
print("FROM ");
x.getFrom().accept(this);
}
if (x.getWhere() != null) {
println();
print("WHERE ");
x.getWhere().setParent(x);
x.getWhere().accept(this);
}
if (x.getGroupBy() != null) {
println();
x.getGroupBy().accept(this);
}
return false;
}
@Override
public void endVisit(SQLServerSelectQueryBlock x) {
}
@Override
public boolean visit(Top x) {
print("TOP ");
x.getExpr().accept(this);
print(" ");
return false;
}
@Override
public void endVisit(Top x) {
}
@Override
public boolean visit(SQLServerObjectReferenceExpr x) {
print(x.toString());
return false;
}
@Override
public void endVisit(SQLServerObjectReferenceExpr x) {
}
}
package com.alibaba.druid.sql.dialect.sqlserver.visitor;
import com.alibaba.druid.sql.ast.SQLSetQuantifier;
import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerSelectQueryBlock;
import com.alibaba.druid.sql.dialect.sqlserver.ast.Top;
import com.alibaba.druid.sql.dialect.sqlserver.ast.expr.SQLServerObjectReferenceExpr;
import com.alibaba.druid.sql.visitor.SQLASTOutputVisitor;
public class SQLServerOutputVisitor extends SQLASTOutputVisitor implements SQLServerASTVisitor {
public SQLServerOutputVisitor(Appendable appender){
super(appender);
}
public boolean visit(SQLServerSelectQueryBlock x) {
print("SELECT ");
if (SQLSetQuantifier.ALL == x.getDistionOption()) {
print("ALL ");
} else if (SQLSetQuantifier.DISTINCT == x.getDistionOption()) {
print("DISTINCT ");
} else if (SQLSetQuantifier.UNIQUE == x.getDistionOption()) {
print("UNIQUE ");
}
if (x.getTop() != null) {
x.getTop().accept(this);
}
printSelectList(x.getSelectList());
if (x.getFrom() != null) {
println();
print("FROM ");
x.getFrom().accept(this);
}
if (x.getWhere() != null) {
println();
print("WHERE ");
x.getWhere().setParent(x);
x.getWhere().accept(this);
}
if (x.getGroupBy() != null) {
println();
x.getGroupBy().accept(this);
}
return false;
}
@Override
public void endVisit(SQLServerSelectQueryBlock x) {
}
@Override
public boolean visit(Top x) {
print("TOP ");
x.getExpr().accept(this);
print(" ");
return false;
}
@Override
public void endVisit(Top x) {
}
@Override
public boolean visit(SQLServerObjectReferenceExpr x) {
print(x.toString());
return false;
}
@Override
public void endVisit(SQLServerObjectReferenceExpr x) {
}
}
@@ -1,43 +1,43 @@
package com.alibaba.druid.sql.dialect.sqlserver.visitor;
import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock;
import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerSelectQueryBlock;
import com.alibaba.druid.sql.dialect.sqlserver.ast.Top;
import com.alibaba.druid.sql.dialect.sqlserver.ast.expr.SQLServerObjectReferenceExpr;
import com.alibaba.druid.sql.visitor.SchemaStatVisitor;
public class SQLServerSchemaStatVisitor extends SchemaStatVisitor implements SQLServerASTVisitor {
@Override
public boolean visit(SQLServerSelectQueryBlock x) {
return visit((SQLSelectQueryBlock) x);
}
@Override
public void endVisit(SQLServerSelectQueryBlock x) {
endVisit((SQLSelectQueryBlock) x);
}
@Override
public boolean visit(Top x) {
return false;
}
@Override
public void endVisit(Top x) {
}
@Override
public boolean visit(SQLServerObjectReferenceExpr x) {
return false;
}
@Override
public void endVisit(SQLServerObjectReferenceExpr x) {
}
}
package com.alibaba.druid.sql.dialect.sqlserver.visitor;
import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock;
import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerSelectQueryBlock;
import com.alibaba.druid.sql.dialect.sqlserver.ast.Top;
import com.alibaba.druid.sql.dialect.sqlserver.ast.expr.SQLServerObjectReferenceExpr;
import com.alibaba.druid.sql.visitor.SchemaStatVisitor;
public class SQLServerSchemaStatVisitor extends SchemaStatVisitor implements SQLServerASTVisitor {
@Override
public boolean visit(SQLServerSelectQueryBlock x) {
return visit((SQLSelectQueryBlock) x);
}
@Override
public void endVisit(SQLServerSelectQueryBlock x) {
endVisit((SQLSelectQueryBlock) x);
}
@Override
public boolean visit(Top x) {
return false;
}
@Override
public void endVisit(Top x) {
}
@Override
public boolean visit(SQLServerObjectReferenceExpr x) {
return false;
}
@Override
public void endVisit(SQLServerObjectReferenceExpr x) {
}
}