[Java][FlightRPC] Flight SQL JDBC driver improvements
- 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
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