You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current (c495d22) 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).
the JDBC documentation for getTables() and getTableTypes() hint towards the same types as the ODBC docs.
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).
bpintea
changed the title
SQL: SYS TABLES to list indices as TABLES for internal clients
SQL: SYS TABLES to list indices as TABLE for internal clients
Apr 2, 2020
Uh oh!
There was an error while loading. Please reload this page.
The current (c495d22) 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 awildcard (%
)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 a
NULL
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.)
The text was updated successfully, but these errors were encountered: