This commit is contained in:
温少
2012-03-18 21:02:41 +08:00
parent 4931dfd625
commit 192f7322c4
10 changed files with 154 additions and 48 deletions
@@ -0,0 +1,8 @@
package com.alibaba.druid.sql.dialect.sqlserver.ast.expr;
import com.alibaba.druid.sql.ast.SQLExpr;
public interface SQLServerExpr extends SQLExpr {
}
@@ -0,0 +1,83 @@
package com.alibaba.druid.sql.dialect.sqlserver.ast.expr;
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 {
private static final long serialVersionUID = 1L;
private String server;
private String database;
private String schema;
private String object;
@Override
public void accept0(SQLServerASTVisitor visitor) {
}
public void output(StringBuffer buf) {
boolean flag = false;
if (server != null) {
buf.append(server);
buf.append('.');
flag = true;
}
if (database != null) {
buf.append(database);
buf.append('.');
flag = true;
} else {
if (flag) {
buf.append('.');
}
}
if (schema != null) {
buf.append(schema);
buf.append('.');
flag = true;
} else {
if (flag) {
buf.append('.');
}
}
buf.append(object);
}
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;
}
public String getObject() {
return object;
}
public void setObject(String object) {
this.object = object;
}
}
@@ -0,0 +1,18 @@
package com.alibaba.druid.sql.dialect.sqlserver.parser;
import com.alibaba.druid.sql.parser.Lexer;
import com.alibaba.druid.sql.parser.ParserException;
import com.alibaba.druid.sql.parser.SQLExprParser;
public class SQLServerExprParser extends SQLExprParser {
public SQLServerExprParser(Lexer lexer){
super(lexer);
}
public SQLServerExprParser(String sql) throws ParserException{
super(new SQLServerLexer(sql));
this.lexer.nextToken();
}
}
@@ -24,6 +24,7 @@ public class SQLServerStatementParser extends SQLStatementParser {
public SQLServerStatementParser(String sql){
super(new SQLServerLexer(sql));
this.lexer.nextToken();
this.exprParser = new SQLServerExprParser(lexer);
}
public SQLSelectParser createSQLSelectParser() {