Skip to content

Commit 0a3cd02

Browse files
authored
Disable DSN default values on macOS
* Remove DSN default values on macOS * Work on Justin's comment
1 parent fcb22f1 commit 0a3cd02

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

cpp/src/arrow/flight/sql/odbc/odbc_impl/config/configuration.cc

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,16 +130,30 @@ void Configuration::LoadDsn(const std::string& dsn) {
130130
Set(FlightSqlConnection::TOKEN, ReadDsnString(dsn, FlightSqlConnection::TOKEN));
131131
Set(FlightSqlConnection::UID, ReadDsnString(dsn, FlightSqlConnection::UID));
132132
Set(FlightSqlConnection::PWD, ReadDsnString(dsn, FlightSqlConnection::PWD));
133-
Set(FlightSqlConnection::USE_ENCRYPTION,
134-
ReadDsnString(dsn, FlightSqlConnection::USE_ENCRYPTION, DEFAULT_ENABLE_ENCRYPTION));
135133
Set(FlightSqlConnection::TRUSTED_CERTS,
136134
ReadDsnString(dsn, FlightSqlConnection::TRUSTED_CERTS));
135+
136+
#ifdef __APPLE__
137+
// macOS iODBC treats non-empty defaults as the real values when reading from system
138+
// DSN, so we don't pass defaults on macOS.
139+
// GH-49387 TODO: enable default values on macOS
140+
Set(FlightSqlConnection::USE_ENCRYPTION,
141+
ReadDsnString(dsn, FlightSqlConnection::USE_ENCRYPTION));
142+
Set(FlightSqlConnection::USE_SYSTEM_TRUST_STORE,
143+
ReadDsnString(dsn, FlightSqlConnection::USE_SYSTEM_TRUST_STORE));
144+
Set(FlightSqlConnection::DISABLE_CERTIFICATE_VERIFICATION,
145+
ReadDsnString(dsn, FlightSqlConnection::DISABLE_CERTIFICATE_VERIFICATION));
146+
#else
147+
// Windows and Linux
148+
Set(FlightSqlConnection::USE_ENCRYPTION,
149+
ReadDsnString(dsn, FlightSqlConnection::USE_ENCRYPTION, DEFAULT_ENABLE_ENCRYPTION));
137150
Set(FlightSqlConnection::USE_SYSTEM_TRUST_STORE,
138151
ReadDsnString(dsn, FlightSqlConnection::USE_SYSTEM_TRUST_STORE,
139152
DEFAULT_USE_CERT_STORE));
140153
Set(FlightSqlConnection::DISABLE_CERTIFICATE_VERIFICATION,
141154
ReadDsnString(dsn, FlightSqlConnection::DISABLE_CERTIFICATE_VERIFICATION,
142155
DEFAULT_DISABLE_CERT_VERIFICATION));
156+
#endif
143157

144158
auto customKeys = ReadAllKeys(dsn);
145159
RemoveAllKnownKeys(customKeys);

0 commit comments

Comments
 (0)