Describe the enhancement requested
SQLForeignKeys is currently an unimplemented placeholder in the Arrow Flight SQL ODBC driver. In cpp/src/arrow/flight/sql/odbc/entry_points.cc, the entry point logs its arguments and then throws:
arrow::flight::sql::odbc::DriverException("SQLForeignKeysW is not implemented", "IM001")
The placeholder was added in #47725 with the intent that follow-up PRs would implement each API. This issue tracks implementing SQLForeignKeys.
The underlying capability already exists on the Flight SQL C++ client (cpp/src/arrow/flight/sql/client.h). Per the ODBC spec, SQLForeignKeys maps to different RPCs depending on which table arguments are provided: GetExportedKeys() (PK table only), GetImportedKeys() (FK table only), and GetCrossReference() (both).
Ref (SQLForeignKeys spec): https://learn.microsoft.com/en-us/sql/odbc/reference/syntax/sqlforeignkeys-function
Parent issue: #30622
Component(s)
C++
Describe the enhancement requested
SQLForeignKeysis currently an unimplemented placeholder in the Arrow Flight SQL ODBC driver. Incpp/src/arrow/flight/sql/odbc/entry_points.cc, the entry point logs its arguments and then throws:The placeholder was added in #47725 with the intent that follow-up PRs would implement each API. This issue tracks implementing
SQLForeignKeys.The underlying capability already exists on the Flight SQL C++ client (
cpp/src/arrow/flight/sql/client.h). Per the ODBC spec,SQLForeignKeysmaps to different RPCs depending on which table arguments are provided:GetExportedKeys()(PK table only),GetImportedKeys()(FK table only), andGetCrossReference()(both).Ref (SQLForeignKeys spec): https://learn.microsoft.com/en-us/sql/odbc/reference/syntax/sqlforeignkeys-function
Parent issue: #30622
Component(s)
C++