apache / apache/arrow-java

[Java][FlightRPC] Flight SQL JDBC driver improvements

Open
#244 0 comments 0 reactions 0 assignees View on GitHub
Type: enhancement
Dominant language
Java
Stars
94
Forks
152
Avg merge
3d 16h
Merged PRs (30d)
11

Description

Follow ups for ARROW-7744

- Rename internal classes to not imply everything is part of Flight RPC (e.g. ArrowFlightJdbcArray -> FieldVectorArray or similar)
- Don't throw bare exceptions (always provide some error context)
- Log a warning if the `arrow-flight:` URI scheme is used instead of `arrow-flight-sql:`
- Create a documentation page (that can be used for people approaching this from the JDBC side, not necessarily Arrow users)
- Document the connection string format and parameters
- Replace `// TODO` comments with `throw new UnsupportedOperationException()`
- Document how timestamp/time/date types are handled in converting between the two type schemas
- Document the type conversions in general
- [timestamp handling is suspect](https://github.com/apache/arrow/pull/13800#discussion_r938908230)
- Upgrade to JUnit5/AssertJ instead of JUnit4/Hamcrest
- Get rid of FreePortFinder
- Use a single (static?) RootAllocator with child allocators
- Remove all Guava usage (can we deny this with a lint?)
- See if `SqlTypes` can be folded into arrow-jdbc

**Reporter**: [David Li](https://issues.apache.org/jira/browse/ARROW-17729) / @lidavidm
#### Subtasks:
- [X] [[Docs][Java] Add documentation page for Flight SQL JDBC driver](https://github.com/apache/arrow/issues/32967)
- [X] [[Packaging] Add JDBC driver to release tasks](https://github.com/apache/arrow/issues/32976)

**Note**: *This issue was originally created as [ARROW-17729](https://issues.apache.org/jira/browse/ARROW-17729). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*

Contributor guide

Open the contributing guide

Research direction

Start by separating the remaining follow-ups from the two completed subtasks, then inspect the Flight SQL JDBC driver entry points named by the issue and identify which unchecked items are still applicable. Done means the selected improvements, documentation, tests, and cleanup are completed without leaving the broader issue ambiguous.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, sql
Domain
databases
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.