DataConnectors icon indicating copy to clipboard operation
DataConnectors copied to clipboard

PowerBI Client fails asking an ODBC connector based on a non-4.0 Driver for a 4.0-only InfoType (SQL_RETURN_ESCAPE_CLAUSE)

Open kthejoker opened this issue 1 year ago • 5 comments

Testing a simple ODBC connector built on top of the Simba Spark ODBC Driver (v2.6.19.1033).

Steps to reproduce:

Build Power Query custom connector on top of Simba Spark ODBC Driver shipped with PowerBI, no custom config.

Expected result:

PowerBI will use connector's underlying ODBC Driver's capability to use ExtendedFetch and pull rows 100 at a time.

Actual result:

PowerBI does not acknowledge ODBC Driver's capability to use ExtendedFetch and instead just uses Fetch, pulling 1 row at a time and incurring a tremendous performance penalty.

Potential root cause:

First, the ODBC log of a Working example of extendedFetch, leveraging SQL Server Linked Server to connect to a Databricks SQL Warehouse via the Simba Spark ODBC driver shipped with PowerBI, September 2022:

Sep 29 14:23:11.618 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CURSOR_COMMIT_BEHAVIOR (23) Sep 29 14:23:11.618 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CURSOR_ROLLBACK_BEHAVIOR (24) Sep 29 14:23:11.618 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_GETDATA_EXTENSIONS (81) Sep 29 14:23:11.618 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_DRIVER_NAME (6) Sep 29 14:23:11.629 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_POS_OPERATIONS (79) Sep 29 14:23:11.629 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_STATIC_SENSITIVITY (83) Sep 29 14:23:11.629 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_LOCK_TYPES (78) > Sep 29 14:23:11.629 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_GETDATA_EXTENSIONS (81) Sep 29 14:23:11.629 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_TXN_ISOLATION_OPTION (72) Sep 29 14:23:11.629 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_BOOKMARK_PERSISTENCE (82) > Sep 29 14:23:11.629 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_SCROLL_OPTIONS (44) Sep 29 14:23:11.629 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_SCROLL_CONCURRENCY (43) Sep 29 14:23:11.629 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (144) Sep 29 14:23:11.629 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_KEYSET_CURSOR_ATTRIBUTES1 (150) Sep 29 14:23:11.629 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_STATIC_CURSOR_ATTRIBUTES1 (167) Sep 29 14:23:11.629 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 (146) Sep 29 14:23:11.630 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_KEYSET_CURSOR_ATTRIBUTES2 (151) Sep 29 14:23:11.630 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_STATIC_CURSOR_ATTRIBUTES2 (168) Sep 29 14:23:11.630 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_NEED_LONG_DATA_LEN (111) Sep 29 14:23:11.630 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_DATABASE_NAME (16) Sep 29 14:23:11.630 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CURSOR_COMMIT_BEHAVIOR (23) Sep 29 14:23:11.630 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CURSOR_ROLLBACK_BEHAVIOR (24) Sep 29 14:23:11.630 INFO 5372 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_TXN_CAPABLE (46)

And here we can see for a given query submitted that it binds the columns and uses ExtendedFetch to pull in the data.

Sep 29 14:23:13.192 DEBUG 5372 Simba::SparkODBC::SOTCLIServiceThreadSafeClient::ExecuteStatement: TExecuteStatementReq sessionHandle.sessionId.guid = 01ed40023f5013fdbfa3e4df9c0ce6bf statement = select dateInt, CalendarDate, CalendarYear, CalendarMonth, MonthOfYear, CalendarDay, DayOfWeek, DayOfWeekStartMonday, IsWeekDay, DayOfMonth, IsLastDayOfMonth, DayOfYear, WeekOfYearIso, QuarterOfYear from powerbi_demos.nytaxi.nytaxi_date runAsync = true Sep 29 14:23:13.192 TRACE 5372 Simba::SparkODBC::SOTCLIServiceThreadSafeClient::ExecuteStatement: +++++ profile enter +++++ Sep 29 14:23:13.192 TRACE 5372 Simba::SparkODBC::HardyTCLIServiceHTTPClient::ResetHTTPSettings: +++++ enter +++++ Sep 29 14:23:13.192 TRACE 5372 Simba::ThriftExtension::TETCLIServiceWebBasedAuthClient::ExecuteStatement: +++++ enter +++++ Sep 29 14:23:13.192 TRACE 5372 Simba::ThriftExtension::TETCLIServiceWebBasedAuthClient::PrepareApiCalls: +++++ enter +++++ Sep 29 14:23:13.192 TRACE 5372 Simba::ThriftExtension::TETCLIServiceWebBasedAuthClient::CheckAndResetBackendConnection: +++++ enter +++++ Sep 29 14:23:13.192 TRACE 5372 Simba::ThriftExtension::TETCLIServiceWebBasedAuthClient::BrowserAuthenticationIfNeeded: +++++ enter +++++ Sep 29 14:23:13.760 TRACE 5372 Simba::ThriftExtension::TEHttpClient::CheckResponseHeaderIntegrity: +++++ enter +++++ Sep 29 14:23:13.760 TRACE 5372 Simba::ThriftExtension::TEHttpClient::CheckAndHandleRetryAfterValues: +++++ enter +++++ Sep 29 14:23:13.768 DEBUG 5372 Simba::ThriftExtension::TETCLIServiceUtils::LogTOperationHandle: __isset.modifiedRowCount=false Sep 29 14:23:13.768 DEBUG 5372 Simba::ThriftExtension::TETCLIServiceUtils::LogTOperationHandle: hasResultSet=true Sep 29 14:23:13.768 DEBUG 5372 Simba::ThriftExtension::TETCLIServiceUtils::LogTHandleIdentifier: guid=01ed4002405819089bccf14a2e072050 Sep 29 14:23:13.768 DEBUG 5372 Simba::ThriftExtension::TETCLIServiceUtils::LogTOperationHandle: operationType=EXECUTE_STATEMENT Sep 29 14:23:13.768 TRACE 5372 Simba::SparkODBC::SOTCLIServiceThreadSafeClient::ExecuteStatement: +++++ profile leave +++++ Sep 29 14:23:13.768 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::CheckExecStmtDirectResults: +++++ enter +++++ Sep 29 14:23:13.768 DEBUG 5372 Simba::SparkODBC::SOTCLIServiceClient::CheckExecStmtDirectResults: Received TSparkDirectResults from the server. Sep 29 14:23:13.768 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::CheckCloseOpDirectResult: getDirectResults.__isset.closeOperation=false Sep 29 14:23:13.768 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::CheckExecStmtDirectResults: Received: operationStatus=true, resultSetMetadata=true, resultSet=true, closeOperation=false Sep 29 14:23:13.768 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::ExecuteWithAsync: DirectResults operationStatus: Finished Sep 29 14:23:13.768 TRACE 5372 Simba::DriverSupport::DSConversionUtils::GetCurrTimeAsNumMsSinceEpochUTC: +++++ enter +++++ Sep 29 14:23:13.768 DEBUG 5372 Simba::DriverSupport::DSConversionUtils::GetCurrTimeAsNumMsSinceEpochUTC: The current time in number of milliseconds since Jan 1, 1970 (UTC) is: 1664461393766 Sep 29 14:23:13.768 TRACE 5372 Simba::DriverSupport::DSHeartbeatHandler::DSHeartbeatHandler: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::HardyFetchHeartbeatHandler::HardyFetchHeartbeatHandler: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::HardyFetchHeartbeatHandler::GetUniqueId: +++++ enter +++++ Sep 29 14:23:13.769 DEBUG 5372 Simba::SparkODBC::HardyFetchHeartbeatHandler::HardyFetchHeartbeatHandler: Creating heartbeat handler 96226401-c001-458d-b22b-f0e861930f09. Sep 29 14:23:13.769 TRACE 5372 Simba::DriverSupport::DSHeartbeatHandler::SetHeartbeatManagerLogger: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::DriverSupport::DSHeartbeatHandler::GetNextHeartbeatSendTimeConst: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOHardySSPropertyManager::NotifyExecEnd: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOHardyQuotedIDManager::HandleExecEnd: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOHardySSPropertyManager::NotifyExecEnd: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOHardySSPropertyManager::HandleExecEnd: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetHiveResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetHiveResultSetSchemaWithProtocolShortCut: +++++ enter +++++ Sep 29 14:23:13.769 DEBUG 5372 Simba::SparkODBC::SOTCLIServiceClient::GetHiveResultSetSchema: Using ResultSetMetadataResp from TSparkDirectResults Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::CreateColumnarDataRetrievers: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetHiveResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOQueryExecutor::GetResults: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOResultSetBase::HasRowCount: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOResultSetBase::HasRowCount: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::ODBC::Statement::SQLRowCount: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::ODBC::StatementState::SQLRowCount: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::SparkODBC::SOResultSetBase::HasRowCount: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::ODBC::Statement::SQLNumResultCols: +++++ enter +++++ Sep 29 14:23:13.769 TRACE 5372 Simba::ODBC::StatementState::SQLNumResultCols: +++++ enter +++++ Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLNumResultCols: +++++ enter +++++ Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::StatementState::SQLNumResultCols: +++++ enter +++++ Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::StatementState::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.770 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_LABEL (18) Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.770 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UNSIGNED (8) Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.770 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UPDATABLE (10) Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::StatementState::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.770 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_LABEL (18) Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.770 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UPDATABLE (10) Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::StatementState::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.770 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_LABEL (18) Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.770 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UNSIGNED (8) Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.770 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UPDATABLE (10) Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::StatementState::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.770 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_LABEL (18) Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.770 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UPDATABLE (10) Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::StatementState::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.770 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_LABEL (18) Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.770 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UNSIGNED (8) Sep 29 14:23:13.770 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.771 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UPDATABLE (10) Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::StatementState::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.771 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_LABEL (18) Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.771 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UPDATABLE (10) Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::StatementState::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.771 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_LABEL (18) Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.771 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UNSIGNED (8) Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.771 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UPDATABLE (10) Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::StatementState::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.771 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_LABEL (18) Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.771 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UNSIGNED (8) Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.771 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UPDATABLE (10) Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::StatementState::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.771 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_LABEL (18) Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.771 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UPDATABLE (10) Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::StatementState::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.771 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_LABEL (18) Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.771 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UNSIGNED (8) Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.771 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UPDATABLE (10) Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::StatementState::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.771 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.771 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_LABEL (18) Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.772 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UPDATABLE (10) Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::Statement::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::StatementState::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.772 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_LABEL (18) Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.772 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UNSIGNED (8) Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.772 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UPDATABLE (10) Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::Statement::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::StatementState::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.772 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_LABEL (18) Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.772 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UNSIGNED (8) Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.772 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UPDATABLE (10) Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::Statement::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::StatementState::SQLDescribeColW: +++++ enter +++++ Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.772 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_LABEL (18) Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.772 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UNSIGNED (8) Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::Statement::SQLColAttributeW: +++++ enter +++++ Sep 29 14:23:13.772 INFO 5372 Simba::ODBC::Statement::SQLColAttributeW: FieldIdentifier: SQL_DESC_UPDATABLE (10) Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::Statement::SQLGetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.772 INFO 5372 Simba::ODBC::Statement::SQLGetStmtAttrW: Attribute: SQL_ATTR_CURSOR_TYPE (6) Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::StatementState5::SQLGetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.772 TRACE 5372 Simba::ODBC::StatementState::SQLGetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::Statement::SQLGetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 INFO 5372 Simba::ODBC::Statement::SQLGetStmtAttrW: Attribute: SQL_ATTR_CURSOR_TYPE (6) Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementState5::SQLGetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementState::SQLGetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::Statement::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 INFO 5372 Simba::ODBC::Statement::SQLSetStmtAttrW: Attribute: SQL_ROWSET_SIZE (9) Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementStateCursor::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementState::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementAttributes::SetAttribute: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::Statement::SQLGetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 INFO 5372 Simba::ODBC::Statement::SQLGetStmtAttrW: Attribute: SQL_ROWSET_SIZE (9) Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementState5::SQLGetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementState::SQLGetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::Statement::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 INFO 5372 Simba::ODBC::Statement::SQLSetStmtAttrW: Attribute: SQL_ATTR_ROW_BIND_TYPE (5) Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementStateCursor::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementState::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementAttributes::SetAttribute: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::Statement::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 INFO 5372 Simba::ODBC::Statement::SQLSetStmtAttrW: Attribute: SQL_ATTR_ROW_BIND_OFFSET_PTR (23) Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementStateCursor::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementState::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementAttributes::SetAttribute: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::Statement::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 INFO 5372 Simba::ODBC::Statement::SQLSetStmtAttrW: Attribute: SQL_ATTR_ROW_BIND_OFFSET_PTR (23) Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementStateCursor::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementState::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementAttributes::SetAttribute: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::Statement::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 INFO 5372 Simba::ODBC::Statement::SQLSetStmtAttrW: Attribute: SQL_ATTR_RETRIEVE_DATA (11) Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementStateCursor::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementState::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementAttributes::SetAttribute: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::SparkODBC::SOStatement::SetProperty: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::Statement::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 INFO 5372 Simba::ODBC::Statement::SQLSetStmtAttrW: Attribute: SQL_ATTR_RETRIEVE_DATA (11) Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementStateCursor::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementState::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementAttributes::SetAttribute: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::SparkODBC::SOStatement::SetProperty: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::Statement::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 INFO 5372 Simba::ODBC::Statement::SQLSetStmtAttrW: Attribute: SQL_ATTR_ROW_BIND_OFFSET_PTR (23) Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementStateCursor::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementState::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.773 TRACE 5372 Simba::ODBC::StatementAttributes::SetAttribute: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::Statement::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::StatementState::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::Statement::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::StatementState::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::Statement::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::StatementState::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::Statement::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::StatementState::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::Statement::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::StatementState::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::Statement::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::StatementState::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::Statement::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::StatementState::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::Statement::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::StatementState::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::Statement::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::StatementState::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::Statement::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::StatementState::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::Statement::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::StatementState::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::Statement::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::StatementState::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::Statement::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::StatementState::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::Statement::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::StatementState::SQLBindCol: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::Statement::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.774 INFO 5372 Simba::ODBC::Statement::SQLSetStmtAttrW: Attribute: SQL_ROWSET_SIZE (9) Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::StatementStateCursor::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::StatementState::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::StatementAttributes::SetAttribute: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::Statement::SQLExtendedFetch: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::ODBC::StatementState5::SQLExtendedFetch: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 29 14:23:13.774 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::SOFetchThread::SOFetchThread: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::HardyRowSetBuffer::CreateRowSetBuffer: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::HardyRowSetBuffer::HardyRowSetBuffer: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::HardyArrowRowSetBuffer::HardyArrowRowSetBuffer: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::HardyRowSetBuffer::CreateRowSetBuffer: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::HardyRowSetBuffer::HardyRowSetBuffer: +++++ enter +++++ Sep 29 14:23:13.775 TRACE 5372 Simba::SparkODBC::HardyArrowRowSetBuffer::HardyArrowRowSetBuffer: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 2092 Simba::SparkODBC::SOTCLIServiceClient::FetchNext: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 2092 Simba::SparkODBC::HardyRowSetBuffer::SetHS2ResultSetColsMetadata: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 2092 Simba::SparkODBC::SOTCLIServiceClient::FetchNRowsWithConnRetry: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 2092 Simba::SparkODBC::SOTCLIServiceClient::FetchNRowsInternal: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 2092 Simba::SparkODBC::SOTCLIServiceClient::FetchFromServer: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 2092 Simba::SparkODBC::SOTCLIServiceClient::FetchFromServer: Using TFetchResultsResp from TSparkDirectResults Sep 29 14:23:13.776 TRACE 2092 Simba::SparkODBC::SOTCLIServiceClient::GetRowSetInformation: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 2092 Simba::SparkODBC::SOTCLIServiceClient::SetServerHasMoreRowsInfo: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 2092 Simba::SparkODBC::HardyRowSetBuffer::NewRowSetFetched: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 2092 Simba::SparkODBC::HardyArrowRowSetBuffer::HandleNewRowSetFetched: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 2092 Simba::SparkODBC::HardyArrowRowSetBuffer::InitializeArrowSchema: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 2092 Simba::SparkODBC::SOTCLIServiceClient::GetHiveResultSetSchema: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 2092 Simba::SparkODBC::SOTCLIServiceClient::UpdateDriverSideStartRowOffset: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::ThrowOnFetchFailure: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 5372 Simba::SparkODBC::SOTCLIServiceClient::ThrowOnFetchFailure: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 2092 Simba::SparkODBC::SOTCLIServiceClient::FetchNext: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 5372 Simba::SparkODBC::HardyRowSetBuffer::MoveToNextNonEmptySubPage: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 2092 Simba::SparkODBC::HardyRowSetBuffer::SetHS2ResultSetColsMetadata: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 5372 Simba::SparkODBC::HardyArrowRowSetBuffer::HandleMoveToNextNonEmptySubPage: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 2092 Simba::SparkODBC::SOTCLIServiceClient::FetchNRowsWithConnRetry: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 5372 Simba::SparkODBC::HardyArrowRowSetBuffer::MoveToNextNonEmptySubPageInternal: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 2092 Simba::SparkODBC::SOTCLIServiceClient::FetchNRowsInternal: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 5372 Simba::SparkODBC::HardyArrowRowSetBuffer::MoveToNextNonEmptySubPageArrowBasedSet: +++++ enter +++++ Sep 29 14:23:13.776 TRACE 2092 Simba::SparkODBC::SOTCLIServiceClient::FetchFromServer: +++++ enter +++++ Sep 29 14:23:13.777 TRACE 5372 Simba::ODBC::Statement::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.777 INFO 5372 Simba::ODBC::Statement::SQLSetStmtAttrW: Attribute: SQL_ROWSET_SIZE (9) Sep 29 14:23:13.777 TRACE 5372 Simba::ODBC::StatementStateCursor::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.777 TRACE 5372 Simba::ODBC::StatementState::SQLSetStmtAttrW: +++++ enter +++++ Sep 29 14:23:13.777 TRACE 5372 Simba::ODBC::StatementAttributes::SetAttribute: +++++ enter +++++ Sep 29 14:23:13.777 TRACE 5372 Simba::ODBC::Statement::SQLExtendedFetch: +++++ enter +++++ Sep 29 14:23:13.777 TRACE 5372 Simba::SparkODBC::SOStatement::SetProperty: +++++ enter +++++ Sep 29 14:23:13.781 TRACE 5372 Simba::ODBC::Statement::SQLExtendedFetch: +++++ enter +++++ Sep 29 14:23:13.785 TRACE 5372 Simba::ODBC::Statement::SQLExtendedFetch: +++++ enter +++++ Sep 29 14:23:13.789 TRACE 5372 Simba::ODBC::Statement::SQLExtendedFetch: +++++ enter +++++ Sep 29 14:23:13.793 TRACE 5372 Simba::ODBC::Statement::SQLExtendedFetch: +++++ enter +++++ Sep 29 14:23:13.796 TRACE 5372 Simba::ODBC::Statement::SQLExtendedFetch: +++++ enter +++++ Sep 29 14:23:13.800 TRACE 5372 Simba::ODBC::Statement::SQLExtendedFetch: +++++ enter +++++ Sep 29 14:23:13.804 TRACE 5372 Simba::ODBC::Statement::SQLExtendedFetch: +++++ enter +++++ Sep 29 14:23:13.808 TRACE 5372 Simba::ODBC::Statement::SQLExtendedFetch: +++++ enter +++++ Sep 29 14:23:13.812 TRACE 5372 Simba::ODBC::Statement::SQLExtendedFetch: +++++ enter +++++ Sep 29 14:23:13.812 TRACE 5372 Simba::SparkODBC::HardyRowSetBuffer::MoveToNextNonEmptySubPage: +++++ enter +++++ Sep 29 14:23:13.812 TRACE 5372 Simba::SparkODBC::HardyArrowRowSetBuffer::HandleMoveToNextNonEmptySubPage: +++++ enter +++++ Sep 29 14:23:13.812 TRACE 5372 Simba::SparkODBC::HardyArrowRowSetBuffer::MoveToNextNonEmptySubPageInternal: +++++ enter +++++ Sep 29 14:23:13.812 TRACE 5372 Simba::SparkODBC::HardyArrowRowSetBuffer::MoveToNextNonEmptySubPageArrowBasedSet: +++++ enter +++++ Sep 29 14:23:13.816 TRACE 5372 Simba::ODBC::Statement::SQLExtendedFetch: +++++ enter +++++ Sep 29 14:23:13.820 TRACE 5372 Simba::ODBC::Statement::SQLExtendedFetch: +++++ enter +++++ Sep 29 14:23:13.827 TRACE 5372 Simba::ODBC::Statement::SQLExtendedFetch: +++++ enter +++++ Sep 29 14:23:13.831 TRACE 5372 Simba::ODBC::Statement::SQLExtendedFetch: +++++ enter +++++ Sep 29 14:23:13.835 TRACE 5372 Simba::ODBC::Statement::SQLExtendedFetch: +++++ enter +++++

And here are the results of 4 query executions utilizing this Simba Spark ODBC-based linked server in SQL Server

image Avg execution time: 1.342 seconds, with 250 ms of client processing, 1.09 seconds of server wait time

If we use this same SQL Server linked server (with ODBC Simba Spark underneath) in PowerBI, we see that Power BI retrieves the results from SQL Server (via Databricks) in 692 ms and then processes in additional 346 milliseconds, resulting in an import of this 7,305 row date table in ~1 second.


This exact same import refresh query, on the exact same Databricks SQL warehouse, but using the Azure Databricks connector takes roughly the same time to retrieve the results (871 ms and 631 ms in our 2 trials here) but significantly longer for PowerBI to process (~2000 ms!)

image

The ODBC log for one of these refreshes shows the SQLGetInfo throwing an error because PowerBI tries to set a value for InfoType 180 (SQL_RETURN_ESCAPE_CLAUSE) even though The Simba Spark ODBC driver shipped with PowerBI does not support it.

Sep 29 15:55:59.635 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CURSOR_COMMIT_BEHAVIOR (23) Sep 29 15:55:59.635 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CURSOR_ROLLBACK_BEHAVIOR (24) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_GETDATA_EXTENSIONS (81) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_DRIVER_NAME (6) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_DRIVER_VER (7) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_DBMS_NAME (17) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_DBMS_VER (18) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_IDENTIFIER_QUOTE_CHAR (29) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_OWNER_USAGE (91) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CATALOG_USAGE (92) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CATALOG_NAME_SEPARATOR (41) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CATALOG_LOCATION (114) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_MAX_COLUMNS_IN_ORDER_BY (99) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_MAX_IDENTIFIER_LEN (10005) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_MAX_COLUMNS_IN_GROUP_BY (97) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_MAX_COLUMNS_IN_SELECT (100) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_ORDER_BY_COLUMNS_IN_SELECT (90) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_SQL92_RELATIONAL_JOIN_OPERATORS (161) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_COLUMN_ALIAS (87) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_GROUP_BY (88) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_TIMEDATE_FUNCTIONS (52) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_SYSTEM_FUNCTIONS (51) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_TIMEDATE_ADD_INTERVALS (109) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_TIMEDATE_DIFF_INTERVALS (110) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONCAT_NULL_BEHAVIOR (22) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CATALOG_NAME (10003) Sep 29 15:55:59.636 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CATALOG_TERM (42) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_OWNER_TERM (39) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_ODBC_INTERFACE_CONFORMANCE (152) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_SEARCH_PATTERN_ESCAPE (14) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_FUNCTIONS (48) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_BIGINT (53) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_BINARY (54) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_BIT (55) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_CHAR (56) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_DECIMAL (58) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_DOUBLE (59) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_FLOAT (60) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_GUID (173) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_INTEGER (61) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_LONGVARBINARY (71) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_LONGVARCHAR (62) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_NUMERIC (63) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_REAL (64) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_SMALLINT (65) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_TIMESTAMP (67) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_TINYINT (68) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_DATE (57) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_TIME (66) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_VARBINARY (69) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_VARCHAR (70) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_WCHAR (122) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_WLONGVARCHAR (125) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_CONVERT_WVARCHAR (126) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_SPECIAL_CHARACTERS (94) Sep 29 15:55:59.637 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: Unknown InfoType (180) Sep 29 15:55:59.638 ERROR 216 Simba::ODBC::Connection::SQLGetInfoW: [Microsoft][ODBC] (11180) SQLGetInfo property not found: 180 Sep 29 15:55:59.639 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_DRIVER_NAME (6) Sep 29 15:55:59.639 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_DRIVER_VER (7) Sep 29 15:55:59.640 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_DBMS_NAME (17) Sep 29 15:55:59.640 INFO 216 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_DBMS_VER (18)

And then later on in the log we see it using Fetch instead of ExtendedFetch, because it doesn't acknowledge the Simba Spark ODBC driver's capability to support ExtendedFetch.

ep 28 21:16:35.101 INFO 12740 Simba::ODBC::Connection::SQLGetInfoW: InfoType: SQL_GETDATA_EXTENSIONS (81) Sep 28 21:16:35.101 TRACE 12740 Simba::ODBC::Statement::SQLGetStmtAttrW: +++++ enter +++++ Sep 28 21:16:35.101 INFO 12740 Simba::ODBC::Statement::SQLGetStmtAttrW: Attribute: SQL_ATTR_CURSOR_TYPE (6) Sep 28 21:16:35.101 TRACE 12740 Simba::ODBC::StatementState5::SQLGetStmtAttrW: +++++ enter +++++ Sep 28 21:16:35.101 TRACE 12740 Simba::ODBC::StatementState::SQLGetStmtAttrW: +++++ enter +++++ Sep 28 21:16:35.101 TRACE 12740 Simba::ODBC::Statement::SQLBindCol: +++++ enter +++++ Sep 28 21:16:35.101 TRACE 12740 Simba::ODBC::StatementState::SQLBindCol: +++++ enter +++++ Sep 28 21:16:35.101 TRACE 12740 Simba::ODBC::Statement::SQLBindCol: +++++ enter +++++ Sep 28 21:16:35.101 TRACE 12740 Simba::ODBC::StatementState::SQLBindCol: +++++ enter +++++ Sep 28 21:16:35.101 TRACE 12740 Simba::ODBC::Statement::SQLBindCol: +++++ enter +++++ Sep 28 21:16:35.101 TRACE 12740 Simba::ODBC::StatementState::SQLBindCol: +++++ enter +++++ Sep 28 21:16:35.101 TRACE 12740 Simba::ODBC::Statement::SQLSetStmtAttrW: +++++ enter +++++ Sep 28 21:16:35.101 INFO 12740 Simba::ODBC::Statement::SQLSetStmtAttrW: Attribute: SQL_ATTR_ROWS_FETCHED_PTR (26) Sep 28 21:16:35.101 TRACE 12740 Simba::ODBC::StatementStateCursor::SQLSetStmtAttrW: +++++ enter +++++ Sep 28 21:16:35.101 TRACE 12740 Simba::ODBC::StatementState::SQLSetStmtAttrW: +++++ enter +++++ Sep 28 21:16:35.101 TRACE 12740 Simba::ODBC::StatementAttributes::SetAttribute: +++++ enter +++++ Sep 28 21:16:35.101 TRACE 12740 Simba::ODBC::Statement::SQLFetch: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::ODBC::StatementState5::SQLFetch: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::SOResultSetBase::GetSelectColumns: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchema: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::SOTCLIServiceClient::GetResultSetSchemaInternal: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::SOFetchThread::SOFetchThread: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::HardyRowSetBuffer::CreateRowSetBuffer: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::HardyRowSetBuffer::HardyRowSetBuffer: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::HardyArrowRowSetBuffer::HardyArrowRowSetBuffer: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::HardyRowSetBuffer::CreateRowSetBuffer: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::HardyRowSetBuffer::HardyRowSetBuffer: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::HardyArrowRowSetBuffer::HardyArrowRowSetBuffer: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 11796 Simba::SparkODBC::SOTCLIServiceClient::FetchNext: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 11796 Simba::SparkODBC::HardyRowSetBuffer::SetHS2ResultSetColsMetadata: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 11796 Simba::SparkODBC::SOTCLIServiceClient::FetchNRowsWithConnRetry: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 11796 Simba::SparkODBC::SOTCLIServiceClient::FetchNRowsInternal: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 11796 Simba::SparkODBC::SOTCLIServiceClient::FetchFromServer: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 11796 Simba::SparkODBC::SOTCLIServiceClient::FetchFromServer: Using TFetchResultsResp from TSparkDirectResults Sep 28 21:16:35.102 TRACE 11796 Simba::SparkODBC::SOTCLIServiceClient::GetRowSetInformation: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 11796 Simba::SparkODBC::SOTCLIServiceClient::SetServerHasMoreRowsInfo: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 11796 Simba::SparkODBC::HardyRowSetBuffer::NewRowSetFetched: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 11796 Simba::SparkODBC::HardyArrowRowSetBuffer::HandleNewRowSetFetched: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 11796 Simba::SparkODBC::HardyArrowRowSetBuffer::InitializeArrowSchema: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 11796 Simba::SparkODBC::SOTCLIServiceClient::GetHiveResultSetSchema: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 11796 Simba::SparkODBC::SOTCLIServiceClient::UpdateDriverSideStartRowOffset: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::SOTCLIServiceClient::ThrowOnFetchFailure: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::SOTCLIServiceClient::ThrowOnFetchFailure: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 11796 Simba::SparkODBC::SOTCLIServiceClient::FetchNext: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::HardyRowSetBuffer::MoveToNextNonEmptySubPage: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 11796 Simba::SparkODBC::HardyRowSetBuffer::SetHS2ResultSetColsMetadata: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::HardyArrowRowSetBuffer::HandleMoveToNextNonEmptySubPage: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 11796 Simba::SparkODBC::SOTCLIServiceClient::FetchNRowsWithConnRetry: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::HardyArrowRowSetBuffer::MoveToNextNonEmptySubPageInternal: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 11796 Simba::SparkODBC::SOTCLIServiceClient::FetchNRowsInternal: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::SparkODBC::HardyArrowRowSetBuffer::MoveToNextNonEmptySubPageArrowBasedSet: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 11796 Simba::SparkODBC::SOTCLIServiceClient::FetchFromServer: +++++ enter +++++ Sep 28 21:16:35.102 TRACE 12740 Simba::ODBC::Statement::SQLFetch: +++++ enter +++++ Sep 28 21:16:35.103 TRACE 12740 Simba::ODBC::Statement::SQLFetch: +++++ enter +++++ Sep 28 21:16:35.103 TRACE 12740 Simba::ODBC::Statement::SQLFetch: +++++ enter +++++ Sep 28 21:16:35.103 TRACE 12740 Simba::ODBC::Statement::SQLFetch: +++++ enter +++++ Sep 28 21:16:35.103 TRACE 12740 Simba::ODBC::Statement::SQLFetch: +++++ enter +++++ Sep 28 21:16:35.103 TRACE 12740 Simba::ODBC::Statement::SQLFetch: +++++ enter +++++ Sep 28 21:16:35.103 TRACE 12740 Simba::ODBC::Statement::SQLFetch: +++++ enter +++++ Sep 28 21:16:35.103 TRACE 12740 Simba::ODBC::Statement::SQLFetch: +++++ enter +++++ Sep 28 21:16:35.103 TRACE 12740 Simba::ODBC::Statement::SQLFetch: +++++ enter +++++ Sep 28 21:16:35.103 TRACE 12740 Simba::ODBC::Statement::SQLFetch: +++++ enter +++++ Sep 28 21:16:35.103 TRACE 12740 Simba::ODBC::Statement::SQLFetch: +++++ enter +++++

Instead, while loading the driver's default SQLGetInfo, PowerBI Client asks about support for SQL_RETURN_ESCAPE_CLAUSE (InfoType 180), and when the Driver helpfully sends back "Unknown InfoType", instead of skipping this, PowerBI Client tries to set a value for it anyway, causing an unhandled error in the middle of the "default" SQLGetInfo, which then interrupts the loading of further SQLGetInfo values, including the default SQLGetInfo responses that let PowerBI know the ODBC driver in question supports ExtendedFetch.

SQL_RETURN_ESCAPE_CLAUSE is an ODBC 4.0 exclusive specification.

Why is the PowerBI Client asking an ODBC 3.8 driver about a capability it doesn't even know exists? When the driver respondss back "Unknown InfoType (180)" why are you trying to set a value for that InfoType anyway? By the way this is broken for EVERY ODBC connector, including most of the self-supported ones based on ODBC, such as Azure Databricks, Snowflake, Dremio, Cassandra, Hive, Impala, Netezza, etc.

#CurtHagenlocher really hoping you can get on this quickly and revert a working solution as it has a ton of implications for the quality of these drivers and their ability to use the full capabilities of the ODBC API.

kthejoker avatar Sep 29 '22 21:09 kthejoker