Skip to content

ODPS-JDBC 3.6.0

Compare
Choose a tag to compare
@yefanjiang yefanjiang released this 07 Aug 08:34
· 22 commits to master since this release

Changelog

[3.6.0] - 2024-08-07

Say No to SQLFeatureNotSupportedException!

New Features

  • LocalDate Support: PrepareStatement.setObject now supports LocalDate type for MaxCompute DATE type.
  • SQL Injection Check: New parameter skipSqlInjectCheck allows skipping the SQL injection check, applicable when setting String type fields.
  • TIMESTAMP_NTZ Support: DatabaseMetadata now also supports MaxCompute TIMESTAMP_NTZ type fields.
  • Extended PrepareStatement Methods:
    • Implemented setObject(int, Object, int), setObject(int, Object, int, int), setObject(int, Object, SQLType), and setObject(int, Object, SQLType, int) methods, which will no longer throw exceptions but will return results from setObject(int, Object), ignoring additional fields.
  • Extended ResultSet Methods:
    • Added getObject(int, Map) and getObject(String, Map) methods, which no longer throw exceptions but ignore the map and call ResultSet.getObject(int) to return results.
    • Added getObject(int, Class<T>) and getObject(String, Class<T>) methods, which first call ResultSet.getObject(int) before trying to convert the result to the specified type.
  • Optimized Statement Method: The createStatement(int, int, int) method now no longer throws exceptions but ignores resultSetHoldability, returning the result of Statement.createStatement(int, int).

Changes

  • Enhanced DatabaseMetadata.getColumns: The interface now returns IS_AUTOINCREMENT and IS_GENERATEDCOLUMN fields to comply with JDBC specifications.
  • Updated odps-sdk Version: Updated to 0.48.7-public.
    • The new version applies key-path-end optimizations, improving efficiency during offline job execution, especially in complex queries.

更新日志

[3.6.0] - 2024-08-07

拒绝 SQLFeatureNotSupportedException!

新增功能

  • LocalDate 支持PrepareStatement.setObject 现支持 LocalDate 类型,用于 MaxCompute 的 DATE 类型。
  • SQL 注入检查:新增参数 skipSqlInjectCheck,可跳过对 SQL 注入的检查,适用于设置 String 类型字段时。
  • TIMESTAMP_NTZ 类型支持DatabaseMetadata 现增加对 MaxCompute TIMESTAMP_NTZ 类型字段的支持。
  • 扩展 PrepareStatement 方法
    • 实现了 setObject(int, Object, int)setObject(int, Object, int, int)setObject(int, Object, SQLType)setObject(int, Object, SQLType, int) 方法,现不再抛出异常,而是返回 setObject(int, Object) 的结果,忽略多余字段。
  • 扩展 ResultSet 方法
    • 新增 getObject(int, Map)getObject(String, Map) 方法,现不抛出异常,而是忽略 map,调用 ResultSet.getObject(int) 返回结果。
    • 新增 getObject(int, Class<T>)getObject(String, Class<T>) 方法,首先调用 ResultSet.getObject(int),然后尝试将结果转换为指定类型。
  • 优化 Statement 方法createStatement(int, int, int) 方法现在不再抛出异常,而是忽略 resultSetHoldability,返回 Statement.createStatement(int, int) 的结果。

变更

  • 增强 DatabaseMetadata.getColumns:接口返回值新增 IS_AUTOINCREMENTIS_GENERATEDCOLUMN 字段,以符合 JDBC 规范。
  • 更新 odps-sdk 版本:已更新至 0.48.7-public
    • 新版本应用了 key-path-end 优化,提高了在执行离线作业时的效率,在较复杂query中提升明显。