alibaba / druid

阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池
https://github.com/alibaba/druid/wiki
Apache License 2.0
27.9k stars 8.57k forks source link

[BUG] pg12多种sql语法解析失败 #6064

Open tmaerd opened 1 month ago

tmaerd commented 1 month ago

Database Type

pg

Database Version

12

Druid Version

1.2.23

JDK Version

jdk8

Error SQL

1.语法解析报错 ALTER TABLE table_test ALTER COLUMN num TYPE int8 USING num::int8 2.不支持字段名为version ALTER TABLE table_test ADD "version" int8 DEFAULT 1 NOT NULL;

Testcase Code

String sql = "ALTER TABLE table_test ALTER COLUMN num TYPE int8 USING num::int8"; List list = SQLUtils.parseStatements(sql, DbType.postgresql);

Stacktrace Info

1.ALTER TABLE table_test ALTER COLUMN num TYPE int8 USING num::int8

com.alibaba.druid.sql.parser.ParserException: not supported.pos 82, line 1, column 78, token USING

at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:654)
at com.alibaba.druid.sql.SQLUtils.parseStatements(SQLUtils.java:600)
at com.alibaba.druid.sql.SQLUtils.parseStatements(SQLUtils.java:621)

2.ALTER TABLE table_test ADD "version" int8 DEFAULT 1 NOT NULL; com.alibaba.druid.sql.parser.ParserException: TODO pos 52, line 1, column 44, token LITERAL_ALIAS "version"

at com.alibaba.druid.sql.parser.SQLStatementParser.alterTableAdd(SQLStatementParser.java:2625)
at com.alibaba.druid.sql.parser.SQLStatementParser.parseAlter(SQLStatementParser.java:1955)
at com.alibaba.druid.sql.dialect.postgresql.parser.PGSQLStatementParser.parseAlter(PGSQLStatementParser.java:524)
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:339)
at com.alibaba.druid.sql.SQLUtils.parseStatements(SQLUtils.java:600)
at com.alibaba.druid.sql.SQLUtils.parseStatements(SQLUtils.java:621)

Error Info

No response

liuwenjie commented 1 month ago

版本1.2.23/1.2.22/1.2.21,都出现在这个问题,ERROR:com.alibaba.druid.sql.parser.ParserException: not supported.pos 63, line 1, column 40, token IDENTIFER