enhance mysql sql parser support

This commit is contained in:
温少
2012-05-15 17:15:06 +08:00
parent 31e71f6c91
commit cd36f31b77
34 changed files with 1891 additions and 88 deletions
@@ -17,6 +17,7 @@ package com.alibaba.druid.sql.ast.expr;
import java.util.BitSet;
import com.alibaba.druid.sql.ast.SQLExprImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
/**
@@ -28,7 +29,7 @@ import com.alibaba.druid.sql.visitor.SQLASTVisitor;
*
* @author WENSHAO
*/
public class SQLBitStringLiteralExpr extends SQLLiteralExpr {
public class SQLBitStringLiteralExpr extends SQLExprImpl implements SQLLiteralExpr {
private static final long serialVersionUID = 1L;
@@ -15,9 +15,10 @@
*/
package com.alibaba.druid.sql.ast.expr;
import com.alibaba.druid.sql.ast.SQLExprImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLDateLiteralExpr extends SQLLiteralExpr {
public class SQLDateLiteralExpr extends SQLExprImpl implements SQLLiteralExpr {
private static final long serialVersionUID = 1L;
@@ -1,8 +1,9 @@
package com.alibaba.druid.sql.ast.expr;
import com.alibaba.druid.sql.ast.SQLExprImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLDefaultExpr extends SQLLiteralExpr {
public class SQLDefaultExpr extends SQLExprImpl implements SQLLiteralExpr {
private static final long serialVersionUID = 1L;
@@ -15,9 +15,11 @@
*/
package com.alibaba.druid.sql.ast.expr;
import com.alibaba.druid.sql.ast.SQLExprImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
import com.alibaba.druid.util.HexBin;
public class SQLHexExpr extends SQLLiteralExpr {
public class SQLHexExpr extends SQLExprImpl implements SQLLiteralExpr {
private static final long serialVersionUID = 1L;
@@ -76,4 +78,8 @@ public class SQLHexExpr extends SQLLiteralExpr {
}
return true;
}
public byte[] toBytes() {
return HexBin.decode(this.hex);
}
}
@@ -15,9 +15,10 @@
*/
package com.alibaba.druid.sql.ast.expr;
import com.alibaba.druid.sql.ast.SQLExprImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLHexStringLiteralExpr extends SQLLiteralExpr {
public class SQLHexStringLiteralExpr extends SQLExprImpl implements SQLLiteralExpr {
private static final long serialVersionUID = 1L;
@@ -15,6 +15,7 @@
*/
package com.alibaba.druid.sql.ast.expr;
import com.alibaba.druid.sql.ast.SQLExprImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
/**
@@ -22,7 +23,7 @@ import com.alibaba.druid.sql.visitor.SQLASTVisitor;
*
* @author WENSHAO
*/
public class SQLIntervalLiteralExpr extends SQLLiteralExpr {
public class SQLIntervalLiteralExpr extends SQLExprImpl implements SQLLiteralExpr {
private static final long serialVersionUID = 1L;
@@ -15,14 +15,9 @@
*/
package com.alibaba.druid.sql.ast.expr;
import com.alibaba.druid.sql.ast.SQLExprImpl;
import com.alibaba.druid.sql.ast.SQLExpr;
public abstract class SQLLiteralExpr extends SQLExprImpl {
public interface SQLLiteralExpr extends SQLExpr {
private static final long serialVersionUID = 1L;
public SQLLiteralExpr(){
}
}
@@ -15,9 +15,10 @@
*/
package com.alibaba.druid.sql.ast.expr;
import com.alibaba.druid.sql.ast.SQLExprImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLNullExpr extends SQLLiteralExpr {
public class SQLNullExpr extends SQLExprImpl implements SQLLiteralExpr {
private static final long serialVersionUID = 1L;
@@ -15,7 +15,9 @@
*/
package com.alibaba.druid.sql.ast.expr;
public abstract class SQLNumericLiteralExpr extends SQLLiteralExpr {
import com.alibaba.druid.sql.ast.SQLExprImpl;
public abstract class SQLNumericLiteralExpr extends SQLExprImpl implements SQLLiteralExpr {
private static final long serialVersionUID = 1L;
@@ -15,7 +15,9 @@
*/
package com.alibaba.druid.sql.ast.expr;
public abstract class SQLTextLiteralExpr extends SQLLiteralExpr {
import com.alibaba.druid.sql.ast.SQLExprImpl;
public abstract class SQLTextLiteralExpr extends SQLExprImpl implements SQLLiteralExpr {
private static final long serialVersionUID = 1L;
@@ -24,10 +24,16 @@ public class SQLVariantRefExpr extends SQLExprImpl {
private String name;
public SQLVariantRefExpr(String name){
private boolean global = false;
public SQLVariantRefExpr(String name){
this.name = name;
}
public SQLVariantRefExpr(String name, boolean global){
this.name = name;
this.global = global;
}
public SQLVariantRefExpr(){
@@ -82,4 +88,12 @@ public class SQLVariantRefExpr extends SQLExprImpl {
return true;
}
public boolean isGlobal() {
return global;
}
public void setGlobal(boolean global) {
this.global = global;
}
}