[C++][Arrow Flight SQL ODBC] Restrict descriptor fields based on `AppDescriptor` type
- Dominant language
- C++
- Stars
- 17.1k
- Forks
- 4.3k
- Avg merge
- 3d 13h
- Merged PRs (30d)
- 88
Description
### Describe the enhancement requested
AC:
- Restrict fields based on AppDescriptor IPD, and IRD. This impacts ODBC API `SQLGetDescField`
The fields at:
https://github.com/apache/arrow/blob/5f616db1491478dc85cc62eb0771730224479750/cpp/src/arrow/flight/sql/odbc/odbc_impl/odbc_descriptor.cc#L317-L318
should only be allowed based on AppDescriptor type. Some fields are IPD-only, and some are IRD only. So if a field is IRD only and the descriptor is IPD, then user cannot access that field because it is not applicable. See https://learn.microsoft.com/en-us/sql/odbc/reference/syntax/sqlsetdescfield-function?view=sql-server-ver17 for more information.
Parent issue: https://github.com/apache/arrow/issues/30622
### Component(s)
FlightRPC, C++
Contributor guide
Assessment
This issue has not been assessed yet.