Re: Regression tests for functions of info.c

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема Re: Regression tests for functions of info.c
Дата
Msg-id CAB7nPqQ0TgazVMRE=y5Ss9gd32pfn+8-Cgadhh-kX6a7-u9nYw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Regression tests for functions of info.c  (Heikki Linnakangas <hlinnakangas@vmware.com>)
Ответы Re: Regression tests for functions of info.c  (Heikki Linnakangas <hlinnakangas@vmware.com>)
Список pgsql-odbc
On Thu, Mar 13, 2014 at 11:01 PM, Heikki Linnakangas
<hlinnakangas@vmware.com> wrote:
> On 03/13/2014 03:52 PM, Michael Paquier wrote:
>>
>> Please find attached a patch adding regression tests for the functions
>> in info.c. The following functions, that use hardcoded column names
>> for their results are checked:
>> - SQLGetTypeInfo
>> - SQLTables
>> - SQLColumns
>> - SQLSpecialColumns
>> - SQLStatistics
>> - SQLPrimaryKeys
>> - SQLForeignKeys
>> - SQLProcedureColumns
>> - SQLTablePrivileges
>> Note that the number of columns used for some of those functions, like
>> SQLGetTypeInfo, has increased since 0x0300, so those regression tests
>> are not compatible with versions of odbc older than 0x0300 and would
>> need an alternative output.
>
>
> Hmm, that's fine as far as it goes, but surely we need to test that they
> actually return correct data, not just the column names?
>
> I envisioned the "catalogfunctions" test case to eventually cover these,
> although at the moment it only tests SQLTables. The ODBC standard calls
> these "catalog functions", per
> http://msdn.microsoft.com/en-us/library/ms711722%28v=vs.85%29.aspx. From
> that list, you're missing SQLColumnPrivileges and SQLProcedures.
OK, I have been working more on this patch and have integrated all the
tests directly in catalogfunctions. I have also extended as well the
functions in common.c to be able to print results for arrays of column
IDs. I found that this became necessary as the current logic is able
to print results only for all the columns, and there are some data
like table OID or user name that we do not want as output in the test
suite.

Also, I think that I have found a bug, or let's say a limitation with
SQLColumnPrivileges, which does not work with unixodbc 2.3.2. I tried
to use this function on LInux and OSX, each time it failed with the
following error:
! IM001=[unixODBC][Driver Manager]Driver does not support this function
The patch I am attaching has some commented code for the test case of
SQLColumnPrivileges, but I disabled it.

For example I tried to call it like that but it failed:
rc = SQLColumnPrivileges(hstmt, NULL, 0,
    (SQLCHAR *) "public", SQL_NTS,
    (SQLCHAR *) "testtab1", SQL_NTS,
    (SQLCHAR *) "id", SQL_NTS);
Comments and feedback are welcome.
--
Michael

Вложения

В списке pgsql-odbc по дате отправления:

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: Adding flag LDFLAGS for compilation of regression tests
Следующее
От: Alvaro Herrera
Дата:
Сообщение: relkind check in info.c