stephen.hindmarch@bt.com wrote:
> I came across this problem while trying to debug another application
> that uses unix ODBC to access a Postgresql database. The application
> uses the SQLColumns function to describe tables. When the table is in
> the public schema and the table name is given just as "tname" then the
> columns are returned. When the table is given as "public.tname" then the
> request returns empty.
The declaration of SQLColumns() is the following.
SQLRETURN SQL_API
SQLColumns(HSTMT StatementHandle,
SQLCHAR *szCatalogName, SQLSMALLINT cbCatalogName,
SQLCHAR *szSchemaName, SQLSMALLINT cbSchemaName,
SQLCHAR *szTableName, SQLSMALLINT cbTableName,
SQLCHAR *szColumnName, SQLSMALLINT cbColumnName);
We specify the schema name as the 4th parameter together with
the 5th length parameter.
> You can reproduce this in isql. If you connect to the database and do
> "help tname" you get the columns listed. If you try "help public.tname"
> no rows are returned. Selects return the same results either way, so it
> is just the description functions that appears broken.
>
> I am using unixODBC-2.2.12-9, Postgresql-odbc-08.03.0200-1 and
> Postgresql-server-8.3.8-1.
>
> Steve Hindmarch
> BT Design
>
>