The current (c495d220ac8f) implementation will report the indices as BASE TABLE unless a legacy mode is enabled; this mode is triggered by a listing of the tables with a ~wildcard (%)~ TABLE type filter. In case this filter is absent, the listing will be done with the table type of BASE TABLE.
However:
the ODBC documentation requires the listing to always be TABLE (among other types), or a data source-specific type name (see the comments for the TABLE_TYPE columns).
While there is no obvious ODBC enforcement on the table type and more modern non-Microsoft applications will happily accept BASE TABLE, the older apps (ex.: SQL Server Integration Services' Linked Servers) and modern Microsoft ones (recent Excells, PowerBI) will not work with BASE TABLE, i.e. the "data source-specific type" tables are just ignored, not listed as available to the users.
Note that some of these "not-working" apps don't make use of the wildcard (i.e. use a NULL filter), neither specifically query for TABLE type, so the legacy mode is not triggered.
This proposal is to always enable the legacy mode for ODBC clients in the server (and potentially for JDBC too).
The current (c495d220ac8f) implementation will report the indices as
BASE TABLE
unless a legacy mode is enabled; this mode is triggered by a listing of the tables with a ~wildcard (%
)~TABLE
type filter. In case this filter is absent, the listing will be done with the table type ofBASE TABLE
.However:
TABLE
(among other types),or a data source-specific type name
(see the comments for theTABLE_TYPE
columns).While there is no obvious ODBC enforcement on the table type and more modern non-Microsoft applications will happily accept
BASE TABLE
, the older apps (ex.: SQL Server Integration Services' Linked Servers) and modern Microsoft ones (recent Excells, PowerBI) will not work withBASE TABLE
, i.e. the "data source-specific type" tables are just ignored, not listed as available to the users. Note that some of these "not-working" apps don't make use of the wildcard (i.e. use aNULL
filter), neither specifically query forTABLE
type, so the legacy mode is not triggered.This proposal is to always enable the legacy mode for ODBC clients in the server (and potentially for JDBC too).
(This is a respin of the #30398 issue.)