2424
2525#include < gtest/gtest.h>
2626
27- // Many tests are disabled for MacOS due to iODBC limitations with ODBC 2.0 APIs and
28- // identifiers such as SQLColAttributes, SQL_COLUMN_AUTO_INCREMENT,
29- // SQL_COLUMN_QUALIFIER_NAME.
27+ // Many tests are disabled for MacOS due to iODBC limitations.
3028
3129namespace arrow ::flight::sql::odbc {
3230
@@ -241,6 +239,7 @@ void CheckSQLColAttribute(SQLHSTMT stmt, SQLUSMALLINT idx,
241239 EXPECT_EQ (expected_unsigned_column, unsigned_col);
242240}
243241
242+ #ifndef __APPLE__
244243void CheckSQLColAttributes (SQLHSTMT stmt, SQLUSMALLINT idx,
245244 const std::wstring& expected_column_name,
246245 SQLLEN expected_data_type, SQLLEN expected_display_size,
@@ -310,6 +309,7 @@ void CheckSQLColAttributes(SQLHSTMT stmt, SQLUSMALLINT idx,
310309 EXPECT_EQ (expected_searchable, searchable);
311310 EXPECT_EQ (expected_unsigned_column, unsigned_col);
312311}
312+ #endif // __APPLE__
313313
314314void GetSQLColAttributeString (SQLHSTMT stmt, const std::wstring& wsql, SQLUSMALLINT idx,
315315 SQLUSMALLINT field_identifier, std::wstring& value) {
@@ -1392,6 +1392,7 @@ TEST_F(ColumnsMockTest, TestSQLColAttributeAllTypes) {
13921392 SQL_FALSE); // expected_unsigned_column
13931393}
13941394
1395+ // iODBC does not support SQLColAttributes for ODBC 3.0 attributes.
13951396#ifndef __APPLE__
13961397TEST_F (ColumnsOdbcV2MockTest, TestSQLColAttributesAllTypes) {
13971398 // Tests ODBC 2.0 API SQLColAttributes
@@ -1619,6 +1620,8 @@ TEST_F(ColumnsRemoteTest, TestSQLColAttributeAllTypes) {
16191620 SQL_TRUE); // expected_unsigned_column
16201621}
16211622
1623+ // iODBC does not support SQLColAttribute in ODBC 2.0 mode.
1624+ #ifndef __APPLE__
16221625TEST_F (ColumnsOdbcV2RemoteTest, TestSQLColAttributeAllTypesODBCVer2) {
16231626 // Test assumes there is a table $scratch.ODBCTest in remote server
16241627 std::wstring wsql = L" SELECT * from $scratch.ODBCTest;" ;
@@ -1783,6 +1786,7 @@ TEST_F(ColumnsOdbcV2RemoteTest, TestSQLColAttributeAllTypesODBCVer2) {
17831786 SQL_TRUE); // expected_unsigned_column
17841787}
17851788
1789+ // iODBC does not support SQLColAttributes for ODBC 3.0 attributes.
17861790TEST_F (ColumnsOdbcV2RemoteTest, TestSQLColAttributesAllTypesODBCVer2) {
17871791 // Tests ODBC 2.0 API SQLColAttributes
17881792 // Test assumes there is a table $scratch.ODBCTest in remote server
@@ -1902,6 +1906,7 @@ TEST_F(ColumnsOdbcV2RemoteTest, TestSQLColAttributesAllTypesODBCVer2) {
19021906 SQL_SEARCHABLE, // expected_searchable
19031907 SQL_TRUE); // expected_unsigned_column
19041908}
1909+ #endif // __APPLE__
19051910
19061911TYPED_TEST (ColumnsTest, TestSQLColAttributeCaseSensitive) {
19071912 // Arrow limitation: returns SQL_FALSE for case sensitive column
@@ -1917,6 +1922,7 @@ TYPED_TEST(ColumnsTest, TestSQLColAttributeCaseSensitive) {
19171922 ASSERT_EQ (SQL_FALSE, value);
19181923}
19191924
1925+ // iODBC does not support SQLColAttributes for ODBC 3.0 attributes.
19201926#ifndef __APPLE__
19211927TYPED_TEST (ColumnsOdbcV2Test, TestSQLColAttributesCaseSensitive) {
19221928 // Arrow limitation: returns SQL_FALSE for case sensitive column
@@ -1944,6 +1950,7 @@ TEST_F(ColumnsMockTest, TestSQLColAttributeUniqueValue) {
19441950 ASSERT_EQ (SQL_FALSE, value);
19451951}
19461952
1953+ // iODBC does not support SQLColAttributes for ODBC 3.0 attributes.
19471954#ifndef __APPLE__
19481955TEST_F (ColumnsOdbcV2MockTest, TestSQLColAttributesAutoIncrement) {
19491956 // Tests ODBC 2.0 API SQLColAttributes
@@ -1966,6 +1973,7 @@ TEST_F(ColumnsMockTest, TestSQLColAttributeBaseTableName) {
19661973 ASSERT_EQ (std::wstring (L" AllTypesTable" ), value);
19671974}
19681975
1976+ // iODBC does not support SQLColAttributes for ODBC 3.0 attributes.
19691977#ifndef __APPLE__
19701978TEST_F (ColumnsOdbcV2MockTest, TestSQLColAttributesTableName) {
19711979 // Tests ODBC 2.0 API SQLColAttributes
@@ -1998,6 +2006,7 @@ TEST_F(ColumnsRemoteTest, TestSQLColAttributeCatalogName) {
19982006 ASSERT_EQ (std::wstring (L" " ), value);
19992007}
20002008
2009+ // iODBC does not support SQLColAttribute in ODBC 2.0 mode.
20012010#ifndef __APPLE__
20022011TEST_F (ColumnsOdbcV2MockTest, TestSQLColAttributesQualifierName) {
20032012 // Mock server limitattion: mock doesn't return catalog for result metadata,
@@ -2065,6 +2074,7 @@ TEST_F(ColumnsRemoteTest, TestSQLColAttributeSchemaName) {
20652074 ASSERT_EQ (std::wstring (L" " ), value);
20662075}
20672076
2077+ // iODBC does not support SQLColAttributes for ODBC 3.0 attributes.
20682078#ifndef __APPLE__
20692079TEST_F (ColumnsOdbcV2MockTest, TestSQLColAttributesOwnerName) {
20702080 // Tests ODBC 2.0 API SQLColAttributes
@@ -2136,6 +2146,7 @@ TEST_F(ColumnsRemoteTest, TestSQLColAttributeTypeName) {
21362146 ASSERT_EQ (std::wstring (L" TIMESTAMP" ), value);
21372147}
21382148
2149+ // iODBC does not support SQLColAttributes for ODBC 3.0 attributes.
21392150#ifndef __APPLE__
21402151TEST_F (ColumnsOdbcV2MockTest, TestSQLColAttributesTypeName) {
21412152 // Tests ODBC 2.0 API SQLColAttributes
@@ -2194,6 +2205,7 @@ TYPED_TEST(ColumnsTest, TestSQLColAttributeUpdatable) {
21942205 ASSERT_EQ (SQL_ATTR_READWRITE_UNKNOWN, value);
21952206}
21962207
2208+ // iODBC does not support SQLColAttributes for ODBC 3.0 attributes.
21972209#ifndef __APPLE__
21982210TYPED_TEST (ColumnsOdbcV2Test, TestSQLColAttributesUpdatable) {
21992211 // Tests ODBC 2.0 API SQLColAttributes
0 commit comments