jadewang-db opened a new pull request, #3588:
URL: https://github.com/apache/arrow-adbc/pull/3588
Summary
This PR implements the foundational configuration and data models for
integrating the Databricks Statement
Execution REST API into the ADBC driver. This is the first subtask in a
multi-phase effort to support the new
REST-based protocol as an alternative to the existing Thrift/HiveServer2
implementation.
Changes
Configuration Parameters (DatabricksParameters.cs):
- Added 6 new ADBC parameters for Statement Execution API control:
- Protocol: Select between thrift (default) or rest protocols
- ResultDisposition: Control result delivery (inline, external_links, or
inline_or_external_links)
- ResultFormat: Choose result format (arrow_stream, json_array, or csv)
- ResultCompression: Set compression codec (lz4, gzip, or none)
- WaitTimeout: Configure statement execution wait timeout in seconds
(default: 10s)
- PollingInterval: Set polling interval for async execution in
milliseconds (default: 1000ms)
- Added 4 constants classes for protocol types, result dispositions,
formats, and compressions
- All parameters follow adbc.databricks.* naming convention
REST API Models (StatementExecution/StatementExecutionModels.cs):
- Created 17 model classes with System.Text.Json serialization attributes:
- Session management: CreateSessionRequest, CreateSessionResponse
- Statement execution: ExecuteStatementRequest,
ExecuteStatementResponse, GetStatementResponse
- Status and errors: StatementStatus, StatementError
- Result data: ResultManifest, ResultChunk, ExternalLink, ResultSchema,
ColumnInfo
- Parameters and data: StatementParameter, StatementResult, ResultData
- Organized in new StatementExecution namespace for clean separation
- Supports both inline and external link result dispositions
Test Coverage:
- StatementExecutionParametersTest.cs: 8 test methods validating parameter
constants, naming conventions, and
default values
- StatementExecutionModelsTest.cs: 15 test methods for JSON
serialization/deserialization of all model types
- All 23 new tests passing ✅
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]