improve sql parser

This commit is contained in:
wenshao
2014-06-01 19:11:11 +08:00
parent 4df624ae4b
commit 3526ac38b4
32 changed files with 130 additions and 317 deletions
@@ -15,70 +15,11 @@
*/
package com.alibaba.druid.sql.dialect.mysql.ast.expr;
import com.alibaba.druid.sql.ast.expr.SQLBooleanExpr;
import com.alibaba.druid.sql.ast.expr.SQLLiteralExpr;
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class MySqlBooleanExpr extends MySqlExprImpl implements MySqlExpr, SQLLiteralExpr {
public class MySqlBooleanExpr extends SQLBooleanExpr implements MySqlExpr, SQLLiteralExpr {
private boolean value;
public MySqlBooleanExpr(){
}
public MySqlBooleanExpr(boolean value){
this.value = value;
}
public boolean getValue() {
return value;
}
public void setValue(boolean value) {
this.value = value;
}
@Override
protected void accept0(SQLASTVisitor visitor) {
this.accept0((MySqlASTVisitor) visitor);
}
public void accept0(MySqlASTVisitor visitor) {
visitor.visit(this);
visitor.endVisit(this);
}
public void output(StringBuffer buf) {
buf.append("x");
buf.append(value ? "TRUE" : "FALSE");
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + (value ? 1231 : 1237);
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
MySqlBooleanExpr other = (MySqlBooleanExpr) obj;
if (value != other.value) {
return false;
}
return true;
}
}
@@ -22,6 +22,7 @@ import com.alibaba.druid.sql.ast.SQLOrderBy;
import com.alibaba.druid.sql.ast.expr.SQLAggregateExpr;
import com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr;
import com.alibaba.druid.sql.ast.expr.SQLBinaryOperator;
import com.alibaba.druid.sql.ast.expr.SQLBooleanExpr;
import com.alibaba.druid.sql.ast.expr.SQLCharExpr;
import com.alibaba.druid.sql.ast.expr.SQLHexExpr;
import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr;
@@ -36,7 +37,6 @@ import com.alibaba.druid.sql.dialect.mysql.ast.MySqlPrimaryKey;
import com.alibaba.druid.sql.dialect.mysql.ast.MySqlUnique;
import com.alibaba.druid.sql.dialect.mysql.ast.MysqlForeignKey;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlBinaryExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlBooleanExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlCharExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlExtractExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlIntervalExpr;
@@ -138,12 +138,6 @@ public class MySqlExprParser extends SQLExprParser {
}
switch (tok) {
case TRUE:
lexer.nextToken();
return primaryRest(new MySqlBooleanExpr(true));
case FALSE:
lexer.nextToken();
return primaryRest(new MySqlBooleanExpr(false));
case LITERAL_ALIAS:
String aliasValue = lexer.stringVal();
lexer.nextToken();
@@ -15,7 +15,6 @@
*/
package com.alibaba.druid.sql.dialect.mysql.visitor;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlBooleanExpr;
public class MySql2OracleOutputVisitor extends MySqlOutputVisitor {
@@ -23,11 +22,5 @@ public class MySql2OracleOutputVisitor extends MySqlOutputVisitor {
super(appender);
}
public boolean visit(MySqlBooleanExpr x) {
return true;
}
public void endVisit(MySqlBooleanExpr x) {
}
}
@@ -23,7 +23,6 @@ import com.alibaba.druid.sql.dialect.mysql.ast.MySqlUnique;
import com.alibaba.druid.sql.dialect.mysql.ast.MySqlUseIndexHint;
import com.alibaba.druid.sql.dialect.mysql.ast.MysqlForeignKey;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlBinaryExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlBooleanExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlCharExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlExtractExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlIntervalExpr;
@@ -123,11 +122,6 @@ import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlUpdateStatement;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public interface MySqlASTVisitor extends SQLASTVisitor {
boolean visit(MySqlBooleanExpr x);
void endVisit(MySqlBooleanExpr x);
boolean visit(MySqlSelectQueryBlock.Limit x);
void endVisit(MySqlSelectQueryBlock.Limit x);
@@ -23,7 +23,6 @@ import com.alibaba.druid.sql.dialect.mysql.ast.MySqlUnique;
import com.alibaba.druid.sql.dialect.mysql.ast.MySqlUseIndexHint;
import com.alibaba.druid.sql.dialect.mysql.ast.MysqlForeignKey;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlBinaryExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlBooleanExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlCharExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlExtractExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlIntervalExpr;
@@ -128,17 +127,6 @@ import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlUpdateStatement;
import com.alibaba.druid.sql.visitor.SQLASTVisitorAdapter;
public class MySqlASTVisitorAdapter extends SQLASTVisitorAdapter implements MySqlASTVisitor {
@Override
public boolean visit(MySqlBooleanExpr x) {
return true;
}
@Override
public void endVisit(MySqlBooleanExpr x) {
}
@Override
public boolean visit(Limit x) {
return true;
@@ -22,6 +22,7 @@ import java.util.Map;
import com.alibaba.druid.sql.ast.expr.SQLBetweenExpr;
import com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr;
import com.alibaba.druid.sql.ast.expr.SQLBooleanExpr;
import com.alibaba.druid.sql.ast.expr.SQLCaseExpr;
import com.alibaba.druid.sql.ast.expr.SQLCharExpr;
import com.alibaba.druid.sql.ast.expr.SQLHexExpr;
@@ -35,7 +36,6 @@ import com.alibaba.druid.sql.ast.expr.SQLQueryExpr;
import com.alibaba.druid.sql.ast.expr.SQLUnaryExpr;
import com.alibaba.druid.sql.ast.expr.SQLVariantRefExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlBinaryExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlBooleanExpr;
import com.alibaba.druid.sql.visitor.SQLEvalVisitor;
import com.alibaba.druid.sql.visitor.SQLEvalVisitorUtils;
import com.alibaba.druid.sql.visitor.functions.Function;
@@ -135,12 +135,6 @@ public class MySqlEvalVisitorImpl extends MySqlASTVisitorAdapter implements SQLE
return SQLEvalVisitorUtils.visit(this, x);
}
@Override
public boolean visit(MySqlBooleanExpr x) {
x.getAttributes().put(EVAL_VALUE, x.getValue());
return false;
}
public boolean isMarkVariantIndex() {
return markVariantIndex;
}
@@ -167,4 +161,10 @@ public class MySqlEvalVisitorImpl extends MySqlASTVisitorAdapter implements SQLE
public void unregisterFunction(String funcName) {
functions.remove(funcName);
}
@Override
public boolean visit(SQLBooleanExpr x) {
x.getAttributes().put(EVAL_VALUE, x.getValue());
return false;
}
}
@@ -45,7 +45,6 @@ import com.alibaba.druid.sql.dialect.mysql.ast.MySqlUnique;
import com.alibaba.druid.sql.dialect.mysql.ast.MySqlUseIndexHint;
import com.alibaba.druid.sql.dialect.mysql.ast.MysqlForeignKey;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlBinaryExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlBooleanExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlCharExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlExtractExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlIntervalExpr;
@@ -156,15 +155,6 @@ public class MySqlOutputVisitor extends SQLASTOutputVisitor implements MySqlASTV
super(appender);
}
public boolean visit(MySqlBooleanExpr x) {
print(x.getValue() ? "true" : "false");
return false;
}
public void endVisit(MySqlBooleanExpr x) {
}
@Override
public boolean visit(SQLSelectQueryBlock select) {
if (select instanceof MySqlSelectQueryBlock) {
@@ -383,11 +373,6 @@ public class MySqlOutputVisitor extends SQLASTOutputVisitor implements MySqlASTV
if (x.getCharSetName() != null) {
print(" CHARACTER SET ");
print(x.getCharSetName());
if (x.getCollate() != null) {
print(" COLLATE ");
print(x.getCollate());
}
}
if (x.getCollate() != null) {
@@ -37,7 +37,6 @@ import com.alibaba.druid.sql.dialect.mysql.ast.MySqlUnique;
import com.alibaba.druid.sql.dialect.mysql.ast.MySqlUseIndexHint;
import com.alibaba.druid.sql.dialect.mysql.ast.MysqlForeignKey;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlBinaryExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlBooleanExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlCharExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlExtractExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlIntervalExpr;
@@ -224,17 +223,6 @@ public class MySqlSchemaStatVisitor extends SchemaStatVisitor implements MySqlAS
return false;
}
@Override
public boolean visit(MySqlBooleanExpr x) {
return true;
}
@Override
public void endVisit(MySqlBooleanExpr x) {
}
@Override
public boolean visit(Limit x) {
@@ -1,89 +0,0 @@
/*
* 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.oracle.ast.expr;
import java.io.Serializable;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.expr.SQLAggregateExpr;
import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class OracleAggregateExpr extends SQLAggregateExpr implements Serializable, OracleExpr {
private static final long serialVersionUID = 1L;
private boolean ignoreNulls = false;
public boolean isUnique() {
return Option.UNIQUE.equals(this.getOption());
}
public void setUnique(boolean unique) {
this.setOption(Option.UNIQUE);
}
public boolean isIgnoreNulls() {
return this.ignoreNulls;
}
public void setIgnoreNulls(boolean ignoreNulls) {
this.ignoreNulls = ignoreNulls;
}
public OracleAggregateExpr(String methodName){
super(methodName);
}
public OracleAggregateExpr(String methodName, Option option){
super(methodName, option);
}
public void output(StringBuffer buf) {
buf.append(this.methodName);
buf.append("(");
int i = 0;
for (int size = this.arguments.size(); i < size; ++i) {
((SQLExpr) this.arguments.get(i)).output(buf);
}
buf.append(")");
if (this.over != null) {
buf.append(" ");
this.over.output(buf);
}
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor instanceof OracleASTVisitor) {
this.accept0((OracleASTVisitor) visitor);
} else {
if (visitor.visit(this)) {
acceptChild(visitor, this.arguments);
acceptChild(visitor, this.over);
}
visitor.endVisit(this);
}
}
public void accept0(OracleASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, this.arguments);
acceptChild(visitor, this.over);
}
visitor.endVisit(this);
}
}
@@ -21,6 +21,7 @@ import com.alibaba.druid.sql.ast.SQLDataType;
import com.alibaba.druid.sql.ast.SQLDataTypeImpl;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.SQLOrderBy;
import com.alibaba.druid.sql.ast.SQLOrderingSpecification;
import com.alibaba.druid.sql.ast.expr.SQLAggregateExpr;
import com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr;
@@ -47,7 +48,6 @@ import com.alibaba.druid.sql.dialect.oracle.ast.OracleOrderBy;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleLobStorageClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleStorageClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleStorageClause.FlashCacheType;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleAggregateExpr;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleAnalytic;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleAnalyticWindowing;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleArgumentExpr;
@@ -106,6 +106,7 @@ public class OracleExprParser extends SQLExprParser {
"LAG", //
"LAST", //
"LAST_VALUE", //
"LISTAGG",
"LEAD", //
"MAX", //
"MIN", //
@@ -744,21 +745,21 @@ public class OracleExprParser extends SQLExprParser {
return null;
}
protected OracleAggregateExpr parseAggregateExpr(String methodName) {
protected SQLAggregateExpr parseAggregateExpr(String methodName) {
methodName = methodName.toUpperCase();
OracleAggregateExpr aggregateExpr;
SQLAggregateExpr aggregateExpr;
if (lexer.token() == Token.UNIQUE) {
aggregateExpr = new OracleAggregateExpr(methodName, SQLAggregateExpr.Option.UNIQUE);
aggregateExpr = new SQLAggregateExpr(methodName, SQLAggregateExpr.Option.UNIQUE);
lexer.nextToken();
} else if (lexer.token() == (Token.ALL)) {
aggregateExpr = new OracleAggregateExpr(methodName, SQLAggregateExpr.Option.ALL);
aggregateExpr = new SQLAggregateExpr(methodName, SQLAggregateExpr.Option.ALL);
lexer.nextToken();
} else if (lexer.token() == (Token.DISTINCT)) {
aggregateExpr = new OracleAggregateExpr(methodName, SQLAggregateExpr.Option.DISTINCT);
aggregateExpr = new SQLAggregateExpr(methodName, SQLAggregateExpr.Option.DISTINCT);
lexer.nextToken();
} else {
aggregateExpr = new OracleAggregateExpr(methodName);
aggregateExpr = new SQLAggregateExpr(methodName);
}
exprList(aggregateExpr.getArguments(), aggregateExpr);
@@ -769,6 +770,15 @@ public class OracleExprParser extends SQLExprParser {
}
accept(Token.RPAREN);
if (identifierEquals("WITHIN")) {
lexer.nextToken();
accept(Token.GROUP);
accept(Token.LPAREN);
SQLOrderBy withinGroup = this.parseOrderBy();
aggregateExpr.setWithinGroup(withinGroup);
accept(Token.RPAREN);
}
if (lexer.token() == Token.OVER) {
OracleAnalytic over = new OracleAnalytic();
@@ -19,6 +19,7 @@ import java.util.List;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLSetQuantifier;
import com.alibaba.druid.sql.ast.expr.SQLAggregateExpr;
import com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr;
import com.alibaba.druid.sql.ast.expr.SQLBinaryOperator;
import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr;
@@ -52,7 +53,6 @@ import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleWithSubqueryEntry;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.PartitionExtensionClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.SampleClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.SearchClause;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleAggregateExpr;
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleOrderByItem;
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelect;
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelectForUpdate;
@@ -984,7 +984,7 @@ public class OracleSelectParser extends SQLSelectParser {
accept(Token.LPAREN);
while (true) {
item = new OracleSelectPivot.Item();
item.setExpr((OracleAggregateExpr) this.exprParser.expr());
item.setExpr((SQLAggregateExpr) this.exprParser.expr());
item.setAlias(as());
pivot.getItems().add(item);
@@ -36,7 +36,6 @@ import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleWithSubqueryEntry;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.PartitionExtensionClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.SampleClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.SearchClause;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleAggregateExpr;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleAnalytic;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleAnalyticWindowing;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleArgumentExpr;
@@ -123,8 +122,6 @@ import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public interface OracleASTVisitor extends SQLASTVisitor {
void endVisit(OracleAggregateExpr astNode);
void endVisit(OraclePLSQLCommitStatement astNode);
void endVisit(OracleAnalytic x);
@@ -169,8 +166,6 @@ public interface OracleASTVisitor extends SQLASTVisitor {
void endVisit(OracleUpdateStatement x);
boolean visit(OracleAggregateExpr astNode);
boolean visit(OraclePLSQLCommitStatement astNode);
boolean visit(OracleAnalytic x);
@@ -44,7 +44,6 @@ import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleWithSubqueryEntry;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.PartitionExtensionClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.SampleClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.SearchClause;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleAggregateExpr;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleAnalytic;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleAnalyticWindowing;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleArgumentExpr;
@@ -142,11 +141,6 @@ public class OracleASTVisitorAdapter extends SQLASTVisitorAdapter implements Ora
public void endVisit(OracleSelect x) {
}
@Override
public void endVisit(OracleAggregateExpr astNode) {
}
@Override
public void endVisit(OraclePLSQLCommitStatement astNode) {
@@ -257,12 +251,6 @@ public class OracleASTVisitorAdapter extends SQLASTVisitorAdapter implements Ora
}
@Override
public boolean visit(OracleAggregateExpr astNode) {
return true;
}
@Override
public boolean visit(OraclePLSQLCommitStatement astNode) {
@@ -72,7 +72,6 @@ import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleWithSubqueryEntry;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.PartitionExtensionClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.SampleClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.SearchClause;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleAggregateExpr;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleAnalytic;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleAnalyticWindowing;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleArgumentExpr;
@@ -218,32 +217,14 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS
}
}
public boolean visit(OracleAggregateExpr expr) {
print(expr.getMethodName());
print("(");
if (expr.getOption() != null) {
print(expr.getOption().toString());
print(' ');
}
printAndAccept(expr.getArguments(), ", ");
print(")");
if (expr.getOver() != null) {
print(" OVER (");
expr.getOver().accept(this);
print(")");
}
return false;
}
public boolean visit(SQLAllColumnExpr x) {
print("*");
return false;
}
public boolean visit(OracleAnalytic x) {
print("OVER (");
boolean space = false;
if (x.getPartitionBy().size() > 0) {
print("PARTITION BY ");
@@ -267,6 +248,8 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS
x.getWindowing().accept(this);
}
print(")");
return false;
}
@@ -810,13 +793,6 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS
return false;
}
// ///////////////////
@Override
public void endVisit(OracleAggregateExpr astNode) {
}
@Override
public void endVisit(OraclePLSQLCommitStatement astNode) {
@@ -23,7 +23,6 @@ import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.SQLObject;
import com.alibaba.druid.sql.ast.SQLOrderBy;
import com.alibaba.druid.sql.ast.expr.SQLAggregateExpr;
import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr;
import com.alibaba.druid.sql.ast.expr.SQLMethodInvokeExpr;
import com.alibaba.druid.sql.ast.expr.SQLPropertyExpr;
@@ -68,7 +67,6 @@ import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleWithSubqueryEntry;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.PartitionExtensionClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.SampleClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.SearchClause;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleAggregateExpr;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleAnalytic;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleAnalyticWindowing;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleArgumentExpr;
@@ -262,17 +260,6 @@ public class OracleSchemaStatVisitor extends SchemaStatVisitor implements Oracle
return false;
}
public boolean visit(SQLAggregateExpr x) {
accept(x.getArguments());
return false;
}
public boolean visit(OracleAggregateExpr x) {
accept(x.getArguments());
accept(x.getOver());
return false;
}
public void endVisit(OracleSelect x) {
endVisit((SQLSelect) x);
}
@@ -400,11 +387,6 @@ public class OracleSchemaStatVisitor extends SchemaStatVisitor implements Oracle
return super.visit(x);
}
@Override
public void endVisit(OracleAggregateExpr astNode) {
}
@Override
public void endVisit(OraclePLSQLCommitStatement astNode) {
@@ -58,6 +58,9 @@ public class PGLexer extends Lexer {
map.put("USING", Token.USING);
map.put("WINDOW", Token.WINDOW);
map.put("TRUE", Token.TRUE);
map.put("FALSE", Token.FALSE);
DEFAULT_PG_KEYWORDS = new Keywords(map);
}