We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MySQL
8.0.24
1.2.22
OpenJDK 8
CREATE TABLE `account_info` ( `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '主键id', `account_num` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '账户编号', `open_acct_agreement_info` json DEFAULT (_utf8mb4'{}') COMMENT '协议信息', `ext_info` json DEFAULT (_utf8mb4'{}') COMMENT '扩展信息', `last_push_time` datetime DEFAULT NULL COMMENT '账户推送时间', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `idx_account_num` (`account_num`) USING BTREE + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPACT COMMENT='账户信息表';
@Test public void test_parse_create() { for (DbType dbType : new DbType[]{DbType.mysql}) { for (String sql : new String[]{ "CREATE TABLE `account_info` (\n" + " `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '主键id',\n" + " `account_num` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '账户编号',\n" + " `open_acct_agreement_info` json DEFAULT (_utf8mb4'{}') COMMENT '协议信息',\n" + " `ext_info` json DEFAULT (_utf8mb4'{}') COMMENT '扩展信息',\n" + " `last_push_time` datetime DEFAULT NULL COMMENT '账户推送时间',\n" + " `create_time` datetime NOT NULL COMMENT '创建时间',\n" + " `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',\n" + " PRIMARY KEY (`id`) USING BTREE,\n" + " UNIQUE KEY `idx_account_num` (`account_num`) USING BTREE\n" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPACT COMMENT='账户信息表';", }) { SQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, dbType); List<SQLStatement> statementList = parser.parseStatementList(); System.out.println(statementList); //assertEquals(1, statementList.size()); SQLParseAssertUtil.assertParseSql(sql, dbType); } } }
No response
json DEFAULT (_utf8mb4'{}') 解析之后生成的sql语句里,变成了
json DEFAULT (_utf8mb4'{}')
json DEFAULT _utf8mb4' {}'
需要保留原始的编码信息和括号。
The text was updated successfully, but these errors were encountered:
优化MySQL8.x的json类型字段默认值解析逻辑 alibaba#6102
f63ec88
优化MySQL8.x的json类型字段默认值解析逻辑 #6102
4b77b8d
No branches or pull requests
Database Type
MySQL
Database Version
8.0.24
Druid Version
1.2.22
JDK Version
OpenJDK 8
Error SQL
Testcase Code
Stacktrace Info
No response
Error Info
json DEFAULT (_utf8mb4'{}')
解析之后生成的sql语句里,变成了
json DEFAULT _utf8mb4' {}'
需要保留原始的编码信息和括号。
The text was updated successfully, but these errors were encountered: