Skip to content

Support both JDBC v3 and v2 driver #17

Merged
zaneli merged 12 commits into
zaneli:masterfrom
exoego:v3
Aug 9, 2025
Merged

Support both JDBC v3 and v2 driver #17
zaneli merged 12 commits into
zaneli:masterfrom
exoego:v3

Conversation

@exoego

@exoego exoego commented Aug 9, 2025

Copy link
Copy Markdown
Contributor

Closes #16

  • Pass-through all config parameters to JDBC driver. I believe this is future-proof and simple solution to support both v3 and v2.
  • Updated README to include both v2 and v3 config example
  • Confirmed this works both with v2 and v3
    • Updated CI to test with v2 and v3

Connection Parameters

I've compared v3 doc with v2 doc.

There are several breaking change: Some v2 parameters does not work on v3
Many parameters were added in v3, such as DataZone IdC credentials.
So I think pass-through is the simplest, most robust solution to support both v2 and v3.

  • ❌: breaking change due to rename
  • ⚠️: v2/v3 compatible, but deprecated in v3
  • ❓: I can not find a corresponding parameter in v3 doc. Maybe it still work, but not tested on my end.
  • 🐛 | Found in v2 doc, but not implemented in scalikejdbc-athena
JDBC Driver v2 v3 alias v3 preferred
S3OutputLocation S3OutputLocation ⚠️ OutputLocation
AwsCredentialsProviderArguments
AwsCredentialsProviderClass AwsCredentialsProviderClass ⚠️ CredentialsProvider
BinaryColumnLength
ComplexTypeColumnLength
ConnectionTest - ConnectionTest
ConnectTimeout NetworkTimeoutMillis
IdP_Host IdP_Host ⚠️ AdfsHostName
IdP_Port IdP_Port ⚠️ AdfsPortNumber
LogLevel - LogLevel
LogPath - LogPath
MaxCatalogNameLength
MaxColumnNameLength
MaxErrorRetry MaxErrorRetry ⚠️ NumRetries
MaxQueryExecutionPollingInterval MaxQueryExecutionPollingInterval ⚠️ MaxQueryExecutionPollingIntervalMillis
MinQueryExecutionPollingInterval 🐛 MinQueryExecutionPollingInterval ⚠️ MinQueryExecutionPollingIntervalMillis
MaxSchemaNameLength
MaxStreamErrorRetry
MaxTableNameLength
MetadataRetrievalMethod
NonProxyHosts NonProxyHosts ProxyExemptHosts
Password Password SecretAccessKey
PWD
PreemptiveBasicProxyAuth
preferred_role preferred_role ⚠️ PreferredRole
Profile ProfileName
ProxyDomain
ProxyHost - ProxyHost
ProxyPort - ProxyPort
ProxyPWD ProxyPWD ⚠️ ProxyPassword
ProxyUID ProxyUID ⚠️ ProxyUsername
ProxyWorkstation
QueryExecutionPollingIntervalMultiplier 🐛 - QueryExecutionPollingIntervalMultiplier
RowsToFetchPerBlock RowsToFetchPerBlock ⚠️ FetchSize
S3OutputEncKMSKey S3OutputEncKMSKey ⚠️ KmsKey
S3OutputEncOption S3OutputEncOption ⚠️ EncryptionOption
Schema Schema Database
SocketTimeout
SSL_Insecure
StringColumnLength
UseArraySupport
UseAwsLogger
User AccessKeyId User
UID UID User
UseResultsetStreaming
Workgroup WorkGroup

@exoego exoego changed the title Switches to JDBC v3 Driver Support JDBC v3 driver Aug 9, 2025
@exoego exoego changed the title Support JDBC v3 driver Support both JDBC v3 and v2 driver Aug 9, 2025
@exoego exoego marked this pull request as ready for review August 9, 2025 04:41
@zaneli zaneli self-requested a review August 9, 2025 08:59

@zaneli zaneli left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!
I also thought that hard-coded predefined config parameters was unnecessary, and I wanted to fix that. 🙏

Comment thread .github/workflows/ci.yml Outdated

@zaneli zaneli left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you very much for your contribution.
I'll fix the CI failure in another pull request. (#19)

@zaneli zaneli merged commit 1d81ba5 into zaneli:master Aug 9, 2025
0 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support Athena JDBC 3.x driver

2 participants