Open HackPoint opened 3 days ago
Thanks for opening a pull request!
If this is not a minor PR. Could you open an issue for this pull request on GitHub? https://github.com/apache/arrow/issues/new/choose
Opening GitHub issues ahead of time contributes to the Openness of the Apache Arrow project.
Then could you also rename the pull request title in the following format?
GH-${GITHUB_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}
or
MINOR: [${COMPONENT}] ${SUMMARY}
In the case of PARQUET issues on JIRA the title also supports:
PARQUET-${JIRA_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}
See also:
Thanks for a very large change! Could you please add the official Apache header to all the source files and open an issue to link this to?
Thanks for a very large change! Could you please add the official Apache header to all the source files and open an issue to link this to?
Sure, sir, I will do everything mentioned here. Thank you for your guidelines.
:warning: GitHub issue #44800 has been automatically assigned in GitHub to PR creator.
I approved the workflows.
I don't work on C# sharp but wanted to thank you @HackPoint for such a big first-time contribution!
GH-44800: [C#] Implement Flight SQL Client
Rationale for this Change
This pull request introduces a new implementation of
FlightSqlClient
andPreparedStatement
in C#. Previously, there was no C# client for Flight SQL, leaving a significant gap for .NET developers who wished to interact with Flight SQL servers.The implementation aligns with the existing C++ Flight SQL client API, ensuring consistent and familiar behavior across languages and providing a robust client for the Apache Arrow ecosystem in .NET.
What's Included in this PR?
Key Features
FlightSqlClient
:ExecuteAsync
,ExecuteUpdateAsync
) and schema retrieval (GetCatalogsAsync
,GetDbSchemasAsync
, etc.).PreparedStatement
:SetParameters
,ExecuteAsync
, andExecuteUpdateAsync
).CloseAsync
) for effective resource handling.API Consistency
This implementation mirrors the C++ Flight SQL client to ensure API alignment across supported languages:
Are These Changes Tested?
Testing Overview
Unit Tests:
PreparedStatement
.GetCatalogsAsync
andGetDbSchemasAsync
.Integration Tests:
End-to-End Tests:
Example Test Cases
ExecuteUpdateAsync
.Are There Any Breaking Changes?
This PR introduces new functionality and does not affect any existing features. There are no breaking changes.
Are There Any User-Facing Changes?
New Capabilities
FlightSqlClient:
PreparedStatement:
API Consistency
Additional Notes
async/await
for non-blocking operations.Resources
Feedback and Suggestions
Thank you for reviewing this contribution! Suggestions and feedback are welcome to ensure the implementation meets the project's standards and requirements.