-
Notifications
You must be signed in to change notification settings - Fork 152
[JDBC] Implement DataSource login timeout #1267
Open
Description
Describe the enhancement requested
ArrowFlightJdbcDataSource.setLoginTimeout(int) currently throws SQLFeatureNotSupportedException, and getLoginTimeout() always returns 0.
Implement the JDBC DataSource login-timeout contract:
- Store and return the timeout configured for each
ArrowFlightJdbcDataSourceinstance. - Apply a nonzero timeout to connection establishment through
DataSource.getConnection(). - Preserve the JDBC semantics of zero: use the default system timeout if one exists; otherwise, do not impose a timeout.
- If the timeout expires, attempt to cancel the connection attempt and throw
SQLTimeoutException. - Clean up any allocator, channel, or partially constructed client when the attempt is cancelled or times out.
- Add tests for the default value, setter/getter behavior, timeout enforcement, exception type, and resource cleanup.
This is distinct from #494/#495. The existing connectTimeoutMs property configures Netty socket connection attempts; the JDBC login timeout applies to the overall database connection attempt exposed by DataSource.getConnection().
Context: #1027 and the follow-up discussion.
Related DriverManager work: #1268
Activity
Metadata
Metadata
Assignees
Labels
No labels