mirror of https://github.com/alibaba/druid.git
Compare commits
3 Commits
cfa3f94755
...
02439cceb0
Author | SHA1 | Date |
---|---|---|
|
02439cceb0 | |
|
0444f4f532 | |
|
ab252eb5fb |
|
@ -91,6 +91,7 @@ public enum SQLBinaryOperator {
|
|||
RegExp("REGEXP", 110),
|
||||
NotRegExp("NOT REGEXP", 110),
|
||||
Equality("=", 110),
|
||||
EqEq("==", 110),
|
||||
|
||||
BitwiseNot("!", 130),
|
||||
Concat("||", 140),
|
||||
|
|
|
@ -1210,6 +1210,9 @@ public class OracleExprParser extends SQLExprParser {
|
|||
OracleCreateIndexStatement createIndex = new OracleStatementParser(lexer).parseCreateIndex();
|
||||
using.setIndex(createIndex);
|
||||
accept(Token.RPAREN);
|
||||
} else if (lexer.token() == Token.LITERAL_ALIAS) {
|
||||
SQLName index = new OracleStatementParser(lexer).getExprParser().name();
|
||||
using.setIndex(index);
|
||||
}
|
||||
|
||||
for (; ; ) {
|
||||
|
|
|
@ -3657,7 +3657,8 @@ public class SQLExprParser extends SQLParser {
|
|||
}
|
||||
|
||||
protected SQLExpr relationalRestEqeq(SQLExpr expr) {
|
||||
return expr;
|
||||
lexer.nextToken();
|
||||
return new SQLBinaryOpExpr(expr, SQLBinaryOperator.EqEq, expr());
|
||||
}
|
||||
|
||||
protected SQLExpr relationalRestTilde(SQLExpr expr) {
|
||||
|
|
|
@ -1100,6 +1100,10 @@ public class SQLSelectParser extends SQLParser {
|
|||
} else {
|
||||
item = this.exprParser.expr();
|
||||
}
|
||||
if (lexer.nextIf(Token.AS)) {
|
||||
item = new SQLAliasedExpr(item, lexer.stringVal);
|
||||
lexer.nextToken();
|
||||
}
|
||||
|
||||
if (dialectFeatureEnabled(GroupByItemOrder)) {
|
||||
if (lexer.token == Token.DESC) {
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
package com.alibaba.druid.sql.dialect.oracle.parser;
|
||||
|
||||
import com.alibaba.druid.DbType;
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
public class OracleUsingIndexTest {
|
||||
|
||||
|
||||
@Test
|
||||
public void testUsingIndex() {
|
||||
String sql = "ALTER TABLE \"SC\".\"TB1\"\n" +
|
||||
"\tADD CONSTRAINT \"PK_XXX\" PRIMARY KEY (\"ID\")\n" +
|
||||
"\t\tUSING INDEX \"SC\".\"PK_XXX\"\n" +
|
||||
"\t\tENABLE";
|
||||
SQLStatement stat = SQLUtils.parseSingleStatement(sql, DbType.oracle,false);
|
||||
System.out.println(stat);
|
||||
Assert.assertEquals(sql, stat.toString());
|
||||
System.out.println("=============");
|
||||
}
|
||||
}
|
|
@ -1,3 +1,14 @@
|
|||
select if(a=='G', b, c) from test
|
||||
--------------------
|
||||
SELECT if(a == 'G', b, c)
|
||||
FROM test
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
select a, b, count(1) from test group by a as c, b as d
|
||||
--------------------
|
||||
SELECT a, b, count(1)
|
||||
FROM test
|
||||
GROUP BY a AS c, b AS d
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
select c from b where c=1 ${if(len(a)=0,'and 1=1',"and a>0")} ${if(len(a)=0,'and 1=1',"and a>0")}
|
||||
--------------------
|
||||
SELECT c
|
||||
|
|
Loading…
Reference in New Issue