sr2.4.x,2.5.x 都有此问题
预编译sql,传入字符串正则,会出现错误
audit日志查看最终提交的sql 如下
Stmt=select regexp("2021-01-01",'^\\d{4}(-|\\/)?(0[1-9]|1[0-2])\\1(0[1-9]|[12][0-9]|3[01])$')|Digest=|PlanCpuCost=0.0|PlanMemCost=0.0
Q:
- hive 上是正常的,不存该问题,sr 这边是做了什么限制?
- 有什么好办法处理该问题嘛?
public class TestSRRegex {
public static void main(String[] args) {
String str = "^\\d{4}(-|\\/)?(0[1-9]|1[0-2])\\1(0[1-9]|[12][0-9]|3[01])$";
try (SimpleDataSource ds = new SimpleDataSource("jdbc:mysql:ip:9030/", "root", "123456");
Connection conn = DbUtil.use(ds).getConnection()) {
PreparedStatement stat = conn.prepareStatement("select regexp(\"2021-01-01\",?)");
stat.setString(1, str);
ResultSet resultSet = stat.executeQuery();
ResultSetMetaData metaData = resultSet.getMetaData();
System.out.println(metaData.getColumnName(1));
} catch (Exception e) {
System.out.println(e);
}
}
}