未验证 提交 83b03eaa 编写于 作者: L Liang Zhang 提交者: GitHub

revise #4525, cannot use rule in lexer (#4729)

* revise #4704, cannot use rule in lexer

* revise #4525, cannot use rule in lexer
上级 8e325380
...@@ -94,6 +94,7 @@ unreservedWord ...@@ -94,6 +94,7 @@ unreservedWord
| RECURSIVE | INSTANCE | DEFINER | PRESERVE | SQL | LOCAL | CASCADED | RECURSIVE | INSTANCE | DEFINER | PRESERVE | SQL | LOCAL | CASCADED
| CLOSE | OPEN | NEXT | NAME | NAMES | INTEGER | REAL | DECIMAL | TYPE | CLOSE | OPEN | NEXT | NAME | NAMES | INTEGER | REAL | DECIMAL | TYPE
| BOOLEAN | CHAR | TIME | TIMESTAMP | INTERVAL | BOOLEAN | CHAR | TIME | TIMESTAMP | INTERVAL
| INT2 | INT4 | INT8 | FLOAT4 | FLOAT8 | MACADDR8 | INT4RANGE | INT8RANGE
; ;
schemaName schemaName
...@@ -303,10 +304,10 @@ dataType ...@@ -303,10 +304,10 @@ dataType
; ;
dataTypeName dataTypeName
: INT | SMALLINT | INTEGER | BIGINT | DECIMAL | NUMERIC | REAL | FLOAT | DOUBLE_PRECISION | SMALLSERIAL | SERIAL | BIGSERIAL : INT | INT2 | INT4 | INT8 | SMALLINT | INTEGER | BIGINT | DECIMAL | NUMERIC | REAL | FLOAT | FLOAT4 | FLOAT8 | DOUBLE PRECISION | SMALLSERIAL | SERIAL | BIGSERIAL
| MONEY | VARCHAR | CHARACTER | CHAR | TEXT | NAME | BYTEA | TIMESTAMP | DATE | TIME | INTERVAL | BOOLEAN | ENUM | POINT | MONEY | VARCHAR | CHARACTER | CHAR | TEXT | NAME | BYTEA | TIMESTAMP | DATE | TIME | INTERVAL | BOOLEAN | ENUM | POINT
| LINE | LSEG | BOX | PATH | POLYGON | CIRCLE | CIDR | INET | MACADDR | BIT | VARBIT | TSVECTOR | TSQUERY | UUID | XML | LINE | LSEG | BOX | PATH | POLYGON | CIRCLE | CIDR | INET | MACADDR | MACADDR8 | BIT | VARBIT | TSVECTOR | TSQUERY | UUID | XML
| JSON | INTRANGE | NUMRANGE | TSRANGE | TSTZRANGE | DATERANGE | ARRAY | identifier | JSON | INT4RANGE | INT8RANGE | NUMRANGE | TSRANGE | TSTZRANGE | DATERANGE | ARRAY | identifier
; ;
dataTypeLength dataTypeLength
......
...@@ -472,11 +472,31 @@ RECURSIVE ...@@ -472,11 +472,31 @@ RECURSIVE
; ;
INT INT
: I N T [248]? : I N T
;
INT2
: I N T [2]
;
INT4
: I N T [4]
;
INT8
: I N T [8]
; ;
FLOAT FLOAT
: F L O A T [48]? : F L O A T
;
FLOAT4
: F L O A T [4]
;
FLOAT8
: F L O A T [8]
; ;
SMALLSERIAL SMALLSERIAL
...@@ -544,7 +564,11 @@ INET ...@@ -544,7 +564,11 @@ INET
; ;
MACADDR MACADDR
: M A C A D D R [8]? : M A C A D D R
;
MACADDR8
: M A C A D D R [8]
; ;
BIT BIT
...@@ -575,8 +599,12 @@ JSON ...@@ -575,8 +599,12 @@ JSON
: J S O N : J S O N
; ;
INTRANGE INT4RANGE
: I N T [48] R A N G E : I N T [4] R A N G E
;
INT8RANGE
: I N T [8] R A N G E
; ;
NUMRANGE NUMRANGE
...@@ -594,7 +622,3 @@ TSTZRANGE ...@@ -594,7 +622,3 @@ TSTZRANGE
DATERANGE DATERANGE
: D A T E R A N G E : D A T E R A N G E
; ;
DOUBLE_PRECISION
: D O U B L E [ ]+ P R E C I S I O N
;
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
package org.apache.shardingsphere.sql.parser.postgresql.visitor; package org.apache.shardingsphere.sql.parser.postgresql.visitor;
import com.google.common.base.Joiner;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import org.antlr.v4.runtime.ParserRuleContext; import org.antlr.v4.runtime.ParserRuleContext;
...@@ -484,7 +485,11 @@ public abstract class PostgreSQLVisitor extends PostgreSQLStatementBaseVisitor<A ...@@ -484,7 +485,11 @@ public abstract class PostgreSQLVisitor extends PostgreSQLStatementBaseVisitor<A
if (null != identifierContext) { if (null != identifierContext) {
return new KeywordValue(identifierContext.getText()); return new KeywordValue(identifierContext.getText());
} }
return new KeywordValue(ctx.getText()); Collection<String> dataTypeNames = new LinkedList<>();
for (int i = 0; i < ctx.getChildCount(); i++) {
dataTypeNames.add(ctx.getChild(i).getText());
}
return new KeywordValue(Joiner.on(" ").join(dataTypeNames));
} }
// TODO :FIXME, sql case id: insert_with_str_to_date // TODO :FIXME, sql case id: insert_with_str_to_date
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册