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

Function SQLGetTypeInfo

cpp/src/arrow/flight/sql/odbc/odbc_api.cc:1437–1496  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1435}
1436
1437SQLRETURN SQLGetTypeInfo(SQLHSTMT stmt, SQLSMALLINT data_type) {
1438 // GH-47237 TODO: return SQL_PRED_CHAR and SQL_PRED_BASIC for
1439 // appropriate data types in `SEARCHABLE` field
1440 ARROW_LOG(DEBUG) << "SQLGetTypeInfoW called with stmt: " << stmt
1441 << " data_type: " << data_type;
1442
1443 using ODBC::ODBCStatement;
1444 return ODBC::ODBCStatement::ExecuteWithDiagnostics(stmt, SQL_ERROR, [=]() {
1445 ODBCStatement* statement = reinterpret_cast<ODBCStatement*>(stmt);
1446
1447 switch (data_type) {
1448 case SQL_ALL_TYPES:
1449 case SQL_CHAR:
1450 case SQL_VARCHAR:
1451 case SQL_LONGVARCHAR:
1452 case SQL_WCHAR:
1453 case SQL_WVARCHAR:
1454 case SQL_WLONGVARCHAR:
1455 case SQL_BIT:
1456 case SQL_BINARY:
1457 case SQL_VARBINARY:
1458 case SQL_LONGVARBINARY:
1459 case SQL_TINYINT:
1460 case SQL_SMALLINT:
1461 case SQL_INTEGER:
1462 case SQL_BIGINT:
1463 case SQL_NUMERIC:
1464 case SQL_DECIMAL:
1465 case SQL_FLOAT:
1466 case SQL_REAL:
1467 case SQL_DOUBLE:
1468 case SQL_GUID:
1469 case SQL_DATE:
1470 case SQL_TYPE_DATE:
1471 case SQL_TIME:
1472 case SQL_TYPE_TIME:
1473 case SQL_TIMESTAMP:
1474 case SQL_TYPE_TIMESTAMP:
1475 case SQL_INTERVAL_DAY:
1476 case SQL_INTERVAL_DAY_TO_HOUR:
1477 case SQL_INTERVAL_DAY_TO_MINUTE:
1478 case SQL_INTERVAL_DAY_TO_SECOND:
1479 case SQL_INTERVAL_HOUR:
1480 case SQL_INTERVAL_HOUR_TO_MINUTE:
1481 case SQL_INTERVAL_HOUR_TO_SECOND:
1482 case SQL_INTERVAL_MINUTE:
1483 case SQL_INTERVAL_MINUTE_TO_SECOND:
1484 case SQL_INTERVAL_SECOND:
1485 case SQL_INTERVAL_YEAR:
1486 case SQL_INTERVAL_YEAR_TO_MONTH:
1487 case SQL_INTERVAL_MONTH:
1488 statement->GetTypeInfo(data_type);
1489 break;
1490 default:
1491 throw DriverException("Invalid SQL data type", "HY004");
1492 }
1493
1494 return SQL_SUCCESS;

Callers 2

TEST_FFunction · 0.50
TYPED_TESTFunction · 0.50

Calls 2

DriverExceptionClass · 0.85
GetTypeInfoMethod · 0.80

Tested by 2

TEST_FFunction · 0.40
TYPED_TESTFunction · 0.40