Skip to content

Releases: aliyun/aliyun-odps-jdbc

v3.9.4

31 Jul 08:11
Compare
Choose a tag to compare

ODPS JDBC 3.9.4 Release Note

Features

  • OdpsPreparedStatement now supports OffsetDateTime for ODPS TIMESTAMP.

  • Enhanced interactive_mode parameter
    Values: offline / mcqa / maxqa (replaces true/false). Backward compatible with legacy true=mcqa or maxqa and false=offline.
    → Force mode via: jdbc:odps:...?interactive_mode=maxqa

Fixes

  • Fixed bug of logview Parameter not worked as expected.

v3.9.3

03 Jun 11:52
Compare
Choose a tag to compare

ODPS JDBC 3.9.3 Release Note

Breaking Change:

When using the getDate method, the resulting Date type will have a local time zone offset applied. This constitutes a breaking change, but we believe it is necessary. Due to inherent issues with the java.sql.Date type, this correction ensures that the Date type displays results as expected, rather than being influenced by the local time zone. When users do not configure any time zone-related parameters, this change can generally be regarded as a bug fix.

However, if users have previously configured parameters such as useProjectTimeZone or timezone, the Date type will undergo additional adjustments. Users must carefully evaluate the correctness of the getDate method in such cases.

We strongly recommend directly using the get method to handle temporal types. The get method returns newer time types recommended by Java, such as LocalDate, ZonedDateTime, Instant, and LocalDateTime. These types are not affected by the local time zone, ensuring consistent behavior across environments.

Features:

  • Added the parameter skipCheckIfSelect to skip the parsing of the Antlr4 syntax tree (the default value is false). This parameter allows JDBC's throughput to no longer be limited by the throughput upper limit of Antlr4, but the performance of non-screen display jobs will decline.
  • print WARNING logs when SQL is too long and SQL execution time exceeds the threshold

Fixes:

  • In SettingParser, JDBC will first add a semicolon to the end of SQL and then process it. Avoid processing as SQL statements when the user passes in set xxx=xxx without a semicolon.

v3.8.9

15 May 04:31
Compare
Choose a tag to compare

ODPS JDBC 3.8.9 Release Note

Fixes

  • In SettingParser, JDBC will first add a semicolon to the end of SQL and then process it. Avoid processing as SQL statements when the user passes in set xxx=xxx without a semicolon.

v3.8.8

14 May 03:31
Compare
Choose a tag to compare

ODPS JDBC 3.8.8 Release Note

Features

  • When the SQL length exceeds 4000, additional Warning-level logs are added, with the text content as follows:
    The length of sql is too long, it may cause performance issues. SQL length: 4000
  • Added the parameter longJobWarningThreshold, the default value is -1 (ms, not effective). When the SQL execution time exceeds longJobWarningThreshold, JDBC will print the WARNING level log with the text content as follows:
    SQL execution time exceeds long job warning threshold. Execution time: 15000

v3.9.2

08 May 08:26
Compare
Choose a tag to compare

ODPS JDBC 3.9.2 Release Note

Fix

  • Not set sql hints odps.sql.timezone when specify timezone param.

v3.8.7

16 May 02:27
Compare
Choose a tag to compare

ODPS JDBC 3.8.7 Release Note

Features:

  • Added the parameter skipCheckIfSelect to skip the parsing of the Antlr4 syntax tree (the default value is false). This parameter allows JDBC's throughput to no longer be limited by the throughput upper limit of Antlr4, but the performance of non-screen display jobs will decline.

v3.9.1

22 Apr 03:50
Compare
Choose a tag to compare

ODPS JDBC 3.9.1 Release Note

New Features

  • Support Dynamic Compute Resource Quota Configuration
    Added support for the SET odps.sql.wlm.quota=xxx command, enabling users to dynamically switch MaxCompute Quota Groups by specifying a Quota ID. This optimizes task scheduling priorities and resource isolation capabilities.

Bug Fixes

  • Fixed Struct Field Parsing Issue in Java 9+
    Resolved an IllegalAccessException thrown when calling getString() to read a Struct<Timestamp> field in Java 9 or later. This fix ensures compatibility with newer Java versions and stabilizes data retrieval workflows.

Dependency Updates

  • Upgraded ODPS SDK Version
    Updated the ODPS SDK dependency from 0.51.11-public to 0.52.0-public, integrating the latest feature iterations, performance enhancements, and improved compatibility/security. For detailed changes, refer to the ODPS SDK Release Notes.

v3.9.0

10 Apr 09:36
Compare
Choose a tag to compare

ODPS JDBC 3.9.0 Release Note

🚀 High-Performance Data Processing & Enhanced Time Zone Support

New Features

1. Multi-Threaded Concurrent Download (Only offline query support now)

Introduced InstanceDataIterator with support for split-based concurrent downloads and thread configuration optimization:

Parameter Name Default Description
fetchResultSplitSize 10000 Number of data rows per split download. Larger values reduce splits but may increase single-request latency.
fetchResultPreloadSplitNum 5 Preload queue length for splits. Higher values improve continuous read throughput.
fetchResultThreadNum 5 Thread pool size for downloads. Adjust based on network bandwidth and server load.
2. Enhanced Time Zone Support

Added time zone configuration parameter for global time zone definitions:

Parameter Name Default Description
timezone UTC Specify the time zone parameter (e.g., Asia/Shanghai) for timestamp-related operations.
3. Data Type Converter Refactoring

Optimized JDBC type conversion logic with enhanced support for:
BigDecimal, Boolean, byte[], Date, Double, Float, Integer, Long, Short, String, Time, Timestamp


ODPS SDK 3.9.0 Release Note

🚀 高性能数据处理与多时区支持全面升级!

新增功能

1. 多线程并发下载(仅离线查询)

引入 InstanceDataIterator,支持分片并发下载与线程配置优化:

参数名称 默认值 说明
fetchResultSplitSize 10000 单次分片下载的数据行数,调大可减少分片数量但可能增加单次请求耗时。
fetchResultPreloadSplitNum 5 预加载分片队列长度,调高可提升连续读取吞吐量。
fetchResultThreadNum 5 下载线程池大小,根据网络带宽和服务器负载调整。
2. 时区支持增强

新增时区配置参数,支持全局时区定义:

参数名称 默认值 说明
timezone UTC 连接时指定时间类型的时区加值(如 Asia/Shanghai)。
3. 数据类型转换器重构

优化 JDBC 类型转换逻辑,支持以下类型:
BigDecimal, Boolean, byte[], Date, Double, Float, Integer, Long, Short, String, Time, Timestamp

v3.8.6

21 Mar 06:18
Compare
Choose a tag to compare

ODPS JDBC 3.8.6 Release Note

New Features

  • Introduce async Parameter for Non-blocking Query Execution
    Added an async parameter to control execution behavior in execute-related methods. When enabled (async=true):
    • The execute method no longer waits for job completion or fetches results synchronously.
    • Job status monitoring and result retrieval are deferred to getResultSet(), allowing non-blocking workflow for long-running queries.
    • This addresses performance bottlenecks where execute previously blocked threads for minutes/hours during large-scale MaxCompute jobs.

Usage Example

// Trigger query asynchronously
statement.execute("SELECT * FROM " + tableName);

// Retrieve job instance metadata (non-blocking)
Instance executeInstance = ((OdpsStatement) statement).getExecuteInstance();

// Manually poll job status until completion
while (!executeInstance.isTerminated()) {
    try {
        Thread.sleep(3000); // Wait 3 seconds before next check
    } catch (InterruptedException e) {
        Thread.currentThread().interrupt();
        throw new RuntimeException("Polling interrupted", e);
    }
}

// Blocking call to fetch final results
ResultSet resultSet = statement.getResultSet();

v3.8.5

18 Mar 07:19
Compare
Choose a tag to compare

[3.8.5] - 2025-03-18

Improvements

  • Dependency Update
    Upgraded odps-sdk to version 0.51.11-public. The new SDK version refactors the MCQA 2.0 ResultDescriptor entity to ensure compatibility with MCQA 2.0. Users of MCQA 2.0 are strongly recommended to upgrade to this version. For details, refer to the SDK Changelog.

[3.8.5] - 2025-03-18

改进

  • 依赖升级
    升级 odps-sdk 版本到 0.51.11-public。新版本 SDK 针对 MCQA 2.0 ResultDescriptor 实体进行了重构,以确保与 MCQA 2.0 的兼容性。强烈建议 MCQA 2.0 用户升级到该版本。详情请参考 SDK 更新日志