Skip to content

test: adding performance test with SQLGetData - #1651

Closed
KanchanShu wants to merge 3 commits into
mainfrom
test_SSAS
Closed

KanchanShu wants to merge 3 commits into
mainfrom
test_SSAS

Conversation

@KanchanShu

@KanchanShu KanchanShu commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a performance test to mimic the data-fetching flow used by SQL Server Analysis Services (SSAS) when retrieving data through the ODBC driver.

Changes

  • Adds TransformDataFetchUsingSQLGetData performance test.
  • Queries the all_bq_types_2 integration test table containing a wide range of BigQuery data types.
  • Fetches up to 1,000,000 rows using SQLFetch.
  • Retrieves every column for each row using SQLGetData with SQL_C_WCHAR.
  • Uses a 2048-byte buffer to match the buffer size used in the SSAS data retrieval flow.
  • Dynamically determines the number of result columns using SQLNumResultCols.

Purpose

The test is intended to reproduce the row-by-row and column-by-column ODBC data retrieval pattern observed when SSAS imports data through the driver. It provides a reproducible performance benchmark for investigating and comparing driver behavior in an SSAS-like workload.

Performance Benchmark

Performance benchmark results can be found here:

[Performance Benchmark Results

@KanchanShu KanchanShu changed the title test test: adding performance test with SQLGetData Sep 3, 2026
@shivamd-gpartner
shivamd-gpartner marked this pull request as ready for review September 3, 2026 11:18
@shivamd-gpartner
shivamd-gpartner requested a review from a team as a code owner September 3, 2026 11:18
TEST(DataFetchPerformanceTest, TransformDataFetchUsingSQLGetData) {
auto conn = std::make_shared<ODBCHandles>();

std::string const conn_str = kDefaultConnectionString;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is utilising REST path , append ";AllowHtapiForLargeResults=1;HTAPI_ActivationThreshold=0;"; like for other test cases which are fetching data

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done added

@sachinpro

Copy link
Copy Markdown
Collaborator

@KanchanShu, @shivamd-gpartner There are performance tests for SQLGetData.

Please close this PR if it is obsolete.

@sachinpro sachinpro closed this Sep 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants