[Java] Ability to use a path based host when using the JDBC driver
- Dominant language
- Java
- Stars
- 94
- Forks
- 152
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 11
Description
### Describe the enhancement requested
From an infrastructure perspective, it would be easier for us to do path based routing for our Flight server instead of sub-domain based routing. For example, `https://mydomain.com/grpc/flight`. A model like this would allow us to create routing rules for all grpc services we expose within our company using shared architecture.
Looking around at `getUrlsArgs` , there seems to be no use for the `path` part of the JDBC URI, so I see a few ways this could be implemented:
```
jdbc:arrow-flight-sql://mydomain.com/grpc/flight:443
jdbc:arrow-flight-sql://https://mydomain.com/grpc/flight:443
jdbc:arrow-flight-sql://mydomain.com:443/grpc/flight
jdbc:arrow-flight-sql://https://mydomain.com:443/grpc/flight
```
This seems to be fairly uncommon, but there's at least one other driver that does this. For example, the Simba BigQuery connection looks like this:
```
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;ProjectId=;OAuthType=0;OAuthServiceAcctEmail=;OAuthPvtKeyPath=;
```
I'm not sure if this is already supported by the `Avatica` driver, so it may also need some changes there.
### Component(s)
Java
Contributor guide
Research direction
Start by reading the getUrlsArgs logic mentioned in the issue and trace how the Java JDBC URI is parsed. Check whether the Avatica driver supports a path-based host, then define the accepted URI form and verify the resulting routing behavior with tests; the issue does not name specific files or tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- grpc, java
- Domain
- api
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100