apache / apache/arrow-java

[Java][FlightSQL] Arrow Flight SQL JDBC Driver returns -1 for getUpdateCount()

未关闭
#83 5 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Java
星标
94
派生
152
平均合并
3 天 16 小时
30 天内合并 PR
11

描述

### Describe the bug, including details regarding any error messages, version, and platform.

Tested on Arrow Flight JDBC 15, 15.02 and with a locally-built Arrow Flight SQL JDBC Driver 17.0.0-SNAPSHOT.

When using a JDBC statement to execute an UPDATE, the getUpdateCount() method seems to always return -1. This seems to be incorrect. The getUpdateCount() should return the number of rows UPDATEd.

For a data source, we're using the [Voltron docker container](https://hub.docker.com/r/voltrondata/flight-sql)

In this debugger image, you can see the return counts from the getUpdateCount() and from the actual result set (the update returns one row, with one column, that indicates the number of UPDATEd rows.

Screenshot 2024-05-20 at 14 10 23

Here is a screen grab of the output data:
Screenshot 2024-05-20 at 14 11 39

And, in this screengrab, I used the Postgres driver to update a table in postgres:latest Docker image:
Screenshot 2024-05-07 at 17 30 55

The data in the Postgres table is different, but the getUpdateCount() method returned 1 which is correct for that data.
The test program I used is checked into this Github repo: [ZD128958](https://github.com/rcprcp/ZD128958)

Thank you!

### Component(s)

Java

贡献指南

打开贡献指南

调研方向

首先针对 Arrow Flight SQL JDBC Driver 运行 ZD128958 测试程序,并将 UPDATE 返回的结果集与 Statement.getUpdateCount() 进行比较。跟踪 JDBC 驱动程序处理 UPDATE 结果的路径;当 getUpdateCount() 像 PostgreSQL 驱动程序一样报告更新行数时,即表示完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
java
领域
database
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。