fix(csharp/src/Drivers/Apache/Hive2): improve foreign key handling in GetColumnsExtended #2894
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Description
Description
This PR fixes an issue with foreign key handling in the
GetColumnsExtendedmethod by refactoring the cross-reference lookup process. It extracts the foreign key lookup logic into a dedicated method and improves the handling of empty result sets.Changes
GetCrossReferenceAsForeignTableAsyncmethod to encapsulate the logic for retrieving cross-reference data where the current table is treated as a foreign tableGetColumnsExtendedAsyncby creating a helper methodCreateEmptyExtendedColumnsResultGetCrossReferenceAsForeignTableAsyncmethod to maintain consistency with the empty result handling logicMotivation
The existing implementation had several issues:
GetColumnsExtendedAsyncmethod, making it difficult to maintain and extend, it also does not go through the child class DatabricksStatement overriden function.Testing
The changes have been tested with both empty and populated tables to ensure proper handling of all scenarios. The refactored code maintains the same functionality while improving code organization and error handling.
Related Issues
This PR is related to the ongoing improvements in primary and foreign key metadata handling in the ADBC drivers.