Some corrections on psqlodbc driver

Поиск
Список
Период
Сортировка
От Franco Violi
Тема Some corrections on psqlodbc driver
Дата
Msg-id 200308300939.46923.fvioli@metodo.net
обсуждение исходный текст
Список pgsql-odbc
I subscribed the gborg site 2 days ago. The reason was that we are
openoffice users under linux and we have some problems that make
postgres unusable on openoffice/linux. The issue 17455 and 17500 on
openoffice.org points to the problem. I debug the latest version of the
driver and corrected some ( i think) bugs.

One problem was that openoffice send to the driver escape istructions in
uppercase and the driver was testing just lowercase.

Another problem was that on snprintf You cannot use the same buffer
as source and destination, because in this way the result is a null string.

Here are the modification I made on convert.c. I am not sure that on Windows
the strcasecmp system call exist. By the way:

2785d2784
<     char        tmpbuf[1024];    // temporary snprintf destination
2838c2837
<     if (strcasecmp(key, "d") == 0)
---
>     if (strcmp(key, "d") == 0)
2842,2843c2841,2842
<         prtlen = snprintf(tmpbuf, sizeof(buf), "%s::date ", buf);
<         CVT_APPEND_DATA(qb, tmpbuf, prtlen);
---
>         prtlen = snprintf(buf, sizeof(buf), "%s::date ", buf);
>         CVT_APPEND_DATA(qb, buf, prtlen);
2845c2844
<     else if (strcasecmp(key, "t") == 0)
---
>     else if (strcmp(key, "t") == 0)
2849,2850c2848,2849
<         prtlen = snprintf(tmpbuf, sizeof(buf), "%s::time", buf);
<         CVT_APPEND_DATA(qb, tmpbuf, prtlen);
---
>         prtlen = snprintf(buf, sizeof(buf), "%s::time", buf);
>         CVT_APPEND_DATA(qb, buf, prtlen);
2852c2851
<     else if (strcasecmp(key, "ts") == 0)
---
>     else if (strcmp(key, "ts") == 0)
2857c2856
<             prtlen = snprintf(tmpbuf, sizeof(buf), "%s::datetime", buf);
---
>             prtlen = snprintf(buf, sizeof(buf), "%s::datetime", buf);
2859,2860c2858,2859
<             prtlen = snprintf(tmpbuf, sizeof(buf), "%s::timestamp", buf);
<         CVT_APPEND_DATA(qb, tmpbuf, prtlen);
---
>             prtlen = snprintf(buf, sizeof(buf), "%s::timestamp", buf);
>         CVT_APPEND_DATA(qb, buf, prtlen);
2862c2861
<     else if (strcasecmp(key, "oj") == 0) /* {oj syntax support for 7.1 *
servers */
---
>     else if (strcmp(key, "oj") == 0) /* {oj syntax support for 7.1 * servers */
2867c2866
<     else if (strcasecmp(key, "fn") == 0)
---
>     else if (strcmp(key, "fn") == 0)


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

Предыдущее
От: Hartmut Raschick
Дата:
Сообщение: unnecessary auto-transaction-rollback from driver - part 2 of 2
Следующее
От: "Simeó Reig (Informes Incofisa)"
Дата:
Сообщение: Re: Some corrections on psqlodbc driver