| 42 | } // namespace |
| 43 | |
| 44 | void ComputeSqlWCharSize() { |
| 45 | std::unique_lock<std::mutex> lock(SqlWCharSizeMutex); |
| 46 | if (SqlWCharSize != 0) return; // double-checked locking |
| 47 | |
| 48 | const char* env_p = std::getenv("WCHAR_ENCODING"); |
| 49 | if (env_p) { |
| 50 | if (boost::iequals(env_p, "UTF-16")) { |
| 51 | SqlWCharSize = sizeof(char16_t); |
| 52 | return; |
| 53 | } else if (boost::iequals(env_p, "UTF-32")) { |
| 54 | SqlWCharSize = sizeof(char32_t); |
| 55 | return; |
| 56 | } |
| 57 | } |
| 58 | |
| 59 | SqlWCharSize = IsUsingIODBC() ? sizeof(char32_t) : sizeof(char16_t); |
| 60 | } |
| 61 | #endif |
| 62 | |
| 63 | } // namespace arrow::flight::sql::odbc |
no test coverage detected