MCPcopy Create free account
hub / github.com/apache/arrow / GetInfoCache

Method GetInfoCache

cpp/src/arrow/flight/sql/odbc/odbc_impl/get_info_cache.cc:204–266  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

202} // namespace
203
204GetInfoCache::GetInfoCache(FlightClientOptions& client_options,
205 FlightCallOptions& call_options,
206 std::unique_ptr<FlightSqlClient>& client,
207 const std::string& driver_version)
208 : client_options_(client_options),
209 call_options_(call_options),
210 sql_client_(client),
211 has_server_info_(false) {
212 info_[SQL_DRIVER_NAME] = "Arrow Flight ODBC Driver";
213 info_[SQL_DRIVER_VER] = util::ConvertToDBMSVer(driver_version);
214
215 info_[SQL_GETDATA_EXTENSIONS] =
216 static_cast<uint32_t>(SQL_GD_ANY_COLUMN | SQL_GD_ANY_ORDER);
217 info_[SQL_CURSOR_SENSITIVITY] = static_cast<uint32_t>(SQL_UNSPECIFIED);
218
219 // Properties which don't currently have SqlGetInfo fields but probably
220 // should.
221 info_[SQL_ACCESSIBLE_PROCEDURES] = "N";
222 info_[SQL_COLLATION_SEQ] = "";
223 info_[SQL_ALTER_DOMAIN] = static_cast<uint32_t>(0);
224 info_[SQL_ALTER_TABLE] = static_cast<uint32_t>(0);
225 info_[SQL_COLUMN_ALIAS] = "Y";
226 info_[SQL_DATETIME_LITERALS] = static_cast<uint32_t>(
227 SQL_DL_SQL92_DATE | SQL_DL_SQL92_TIME | SQL_DL_SQL92_TIMESTAMP);
228 info_[SQL_CREATE_ASSERTION] = static_cast<uint32_t>(0);
229 info_[SQL_CREATE_CHARACTER_SET] = static_cast<uint32_t>(0);
230 info_[SQL_CREATE_COLLATION] = static_cast<uint32_t>(0);
231 info_[SQL_CREATE_DOMAIN] = static_cast<uint32_t>(0);
232 info_[SQL_INDEX_KEYWORDS] = static_cast<uint32_t>(SQL_IK_NONE);
233 info_[SQL_TIMEDATE_ADD_INTERVALS] = static_cast<uint32_t>(
234 SQL_FN_TSI_FRAC_SECOND | SQL_FN_TSI_SECOND | SQL_FN_TSI_MINUTE | SQL_FN_TSI_HOUR |
235 SQL_FN_TSI_DAY | SQL_FN_TSI_WEEK | SQL_FN_TSI_MONTH | SQL_FN_TSI_QUARTER |
236 SQL_FN_TSI_YEAR);
237 info_[SQL_TIMEDATE_DIFF_INTERVALS] = static_cast<uint32_t>(
238 SQL_FN_TSI_FRAC_SECOND | SQL_FN_TSI_SECOND | SQL_FN_TSI_MINUTE | SQL_FN_TSI_HOUR |
239 SQL_FN_TSI_DAY | SQL_FN_TSI_WEEK | SQL_FN_TSI_MONTH | SQL_FN_TSI_QUARTER |
240 SQL_FN_TSI_YEAR);
241 info_[SQL_CURSOR_COMMIT_BEHAVIOR] = static_cast<uint16_t>(SQL_CB_CLOSE);
242 info_[SQL_CURSOR_ROLLBACK_BEHAVIOR] = static_cast<uint16_t>(SQL_CB_CLOSE);
243 info_[SQL_CREATE_TRANSLATION] = static_cast<uint32_t>(0);
244 info_[SQL_DDL_INDEX] = static_cast<uint32_t>(0);
245 info_[SQL_DROP_ASSERTION] = static_cast<uint32_t>(0);
246 info_[SQL_DROP_CHARACTER_SET] = static_cast<uint32_t>(0);
247 info_[SQL_DROP_COLLATION] = static_cast<uint32_t>(0);
248 info_[SQL_DROP_DOMAIN] = static_cast<uint32_t>(0);
249 info_[SQL_DROP_SCHEMA] = static_cast<uint32_t>(0);
250 info_[SQL_DROP_TABLE] = static_cast<uint32_t>(0);
251 info_[SQL_DROP_TRANSLATION] = static_cast<uint32_t>(0);
252 info_[SQL_DROP_VIEW] = static_cast<uint32_t>(0);
253 info_[SQL_MAX_IDENTIFIER_LEN] = static_cast<uint16_t>(65535); // arbitrary
254
255 // Assume all aggregate functions reported in ODBC are supported.
256 info_[SQL_AGGREGATE_FUNCTIONS] =
257 static_cast<uint32_t>(SQL_AF_ALL | SQL_AF_AVG | SQL_AF_COUNT | SQL_AF_DISTINCT |
258 SQL_AF_MAX | SQL_AF_MIN | SQL_AF_SUM);
259
260 // Assume catalogs are not supported by default. ODBC checks if SQL_CATALOG_NAME is
261 // "Y" or "N" to determine if catalogs are supported.

Callers

nothing calls this directly

Calls 1

ConvertToDBMSVerFunction · 0.85

Tested by

no test coverage detected