Re: Undesired decimal truncation with psqlodbc version 08.04.0100
От | Hiroshi Inoue |
---|---|
Тема | Re: Undesired decimal truncation with psqlodbc version 08.04.0100 |
Дата | |
Msg-id | 4B02CC76.50008@tpf.co.jp обсуждение исходный текст |
Ответ на | Undesired decimal truncation with psqlodbc version 08.04.0100 (Marco Cassiano <mcassiano.job@gmail.com>) |
Ответы |
Re: Undesired decimal truncation with psqlodbc version 08.04.0100
("Cassiano, Marco" <mcassiano@manord.com>)
|
Список | pgsql-odbc |
Hi Marco, Marco Cassiano wrote: > Hello everybody, > > during this weekend we upgraded our Postgres database from version 8.3.8 > to version 8.4.1. > We also updated the odbc driver from version 08.03.0400 to version > 08.04.0100. > With this new version though, we observe an unwanted decimal truncation > as you can see in the following example. > > I would need your help to understand the reason of this different, > undesired behavior and how to fix it. Please apply the attached patch. regards, Hiroshi Inoue > Thank you > > Marco > > I attached the output from the same query on the same database made with > the two drivers version: > > >> >>>> With version 08.03.0400 (Correct decimal handling, see column > "co_perc_magg_matrice", first row): > > SQL> select * from anamat.collezioni; > +-----+---------------------+-----------------+---------------------+--------------+---------+ > | coll| co_descr | co_coll_numerica| co_perc_magg_matrice| > co_descr_abbr| cond_pag| > +-----+---------------------+-----------------+---------------------+--------------+---------+ > | 1 | Descr. non disponib.| 10 | 1.200 | > PennyPull | RB10 | > | 2 | Descr. non disponib.| 20 | 0.000 | > PennyBlack | | > | 3 | Descr. non disponib.| 30 | 0.000 | > NewPenny | | > | 4 | Descr. non disponib.| 40 | 0.000 | > Classic | RB09 | > | 5 | Descr. non disponib.| 50 | 0.000 | PB > Plus | | > | 6 | Descr. non disponib.| 60 | 0.000 | > Active | | > | 7 | Descr. non disponib.| 70 | 0.000 | > Jeans & B. | | > | 8 | Descr. non disponib.| 96 | 0.000 | > Trend | | > | 9 | Descr. non disponib.| 90 | 0.000 | F. > Natale | | > | A | Descr. non disponib.| 48 | 0.000 > | | RB09 | > | B | Descr. non disponib.| 31 | 0.000 | > Flash NP S | RB09 | > | C | Descr. non disponib.| 32 | 0.000 | > Flash NP C | RB09 | > | E | Descr. non disponib.| 11 | 0.000 | > Ins.P.Pull | | > | F | Descr. non disponib.| 21 | 0.000 | > Flash PB J | RB09 | > | G | Descr. non disponib.| 22 | 0.000 | > Flash PB G | RB09 | > | H | Descr. non disponib.| 35 | 0.000 | > Ins.N.Penn | | > | I | Descr. non disponib.| 23 | 0.000 | F. > PB Ant. | RB09 | > | K | Descr. non disponib.| 28 | 0.000 | > N.D. | | > | L | Descr. non disponib.| 84 | 0.000 | > FL | | > | M | Descr. non disponib.| 24 | 0.000 | > Flash PB M | RB09 | > | N | Descr. non disponib.| 85 | 0.000 | > Ins. NP | RB09 | > | O | Descr. non disponib.| 26 | 0.000 | > Saldi I. P | | > | P | Descr. non disponib.| 98 | 0.000 | > Pubblicit. | | > | R | Descr. non disponib.| 99 | 0.000 | > Prototipi | | > | S | Descr. non disponib.| 25 | 0.000 | > Ins. PB Ac | | > | T | Descr. non disponib.| 45 | 0.000 | > Fl. abiti | | > | U | Descr. non disponib.| 46 | 0.000 | > Chemises | | > | V | Descr. non disponib.| 47 | 0.000 | > Max&Co Acc | | > | W | B2B by default | 91 | 0.000 | > B2B by def | | > | X | Descr. non disponib.| 61 | 0.000 | > Ins. MaxCo | | > | Y | Descr. non disponib.| 27 | 0.000 | > Idee reg. | | > | Z | Descr. non disponib.| 49 | 0.000 | > DD | | > +-----+---------------------+-----------------+---------------------+--------------+---------+ > SQLRowCount returns 32 > 32 rows fetched > >> >>>> With version 08.04.0100 (wrong decimal truncation): > > SQL> select * from anamat.collezioni; > +-----+---------------------+-----------------+---------------------+--------------+---------+ > | coll| co_descr | co_coll_numerica| co_perc_magg_matrice| > co_descr_abbr| cond_pag| > +-----+---------------------+-----------------+---------------------+--------------+---------+ > | 1 | Descr. non disponib.| 10 | 1 | > PennyPull | RB10 | > | 2 | Descr. non disponib.| 20 | 0 | > PennyBlack | | > | 3 | Descr. non disponib.| 30 | 0 | > NewPenny | | > | 4 | Descr. non disponib.| 40 | 0 | > Classic | RB09 | > | 5 | Descr. non disponib.| 50 | 0 | PB > Plus | | > | 6 | Descr. non disponib.| 60 | 0 | > Active | | > | 7 | Descr. non disponib.| 70 | 0 | > Jeans & B. | | > | 8 | Descr. non disponib.| 96 | 0 | > Trend | | > | 9 | Descr. non disponib.| 90 | 0 | F. > Natale | | > | A | Descr. non disponib.| 48 | 0 > | | RB09 | > | B | Descr. non disponib.| 31 | 0 | > Flash NP S | RB09 | > | C | Descr. non disponib.| 32 | 0 | > Flash NP C | RB09 | > | E | Descr. non disponib.| 11 | 0 | > Ins.P.Pull | | > | F | Descr. non disponib.| 21 | 0 | > Flash PB J | RB09 | > | G | Descr. non disponib.| 22 | 0 | > Flash PB G | RB09 | > | H | Descr. non disponib.| 35 | 0 | > Ins.N.Penn | | > | I | Descr. non disponib.| 23 | 0 | F. > PB Ant. | RB09 | > | K | Descr. non disponib.| 28 | 0 | > N.D. | | > | L | Descr. non disponib.| 84 | 0 | > FL | | > | M | Descr. non disponib.| 24 | 0 | > Flash PB M | RB09 | > | N | Descr. non disponib.| 85 | 0 | > Ins. NP | RB09 | > | O | Descr. non disponib.| 26 | 0 | > Saldi I. P | | > | P | Descr. non disponib.| 98 | 0 | > Pubblicit. | | > | R | Descr. non disponib.| 99 | 0 | > Prototipi | | > | S | Descr. non disponib.| 25 | 0 | > Ins. PB Ac | | > | T | Descr. non disponib.| 45 | 0 | > Fl. abiti | | > | U | Descr. non disponib.| 46 | 0 | > Chemises | | > | V | Descr. non disponib.| 47 | 0 | > Max&Co Acc | | > | W | B2B by default | 91 | 0 | > B2B by def | | > | X | Descr. non disponib.| 61 | 0 | > Ins. MaxCo | | > | Y | Descr. non disponib.| 27 | 0 | > Idee reg. | | > | Z | Descr. non disponib.| 49 | 0 | > DD | | > +-----+---------------------+-----------------+---------------------+--------------+---------+ > SQLRowCount returns 32 > 32 rows fetched *** convert.c Wed Nov 18 01:11:06 2009 --- ../ver_8040100/convert.c Tue Nov 17 23:59:08 2009 *************** *** 1099,1105 **** for (i = 0, j = 0; ptr[i]; i++) if (ptr[i] == '.') { ! strncpy_null(&new_string[j], lc->decimal_point, strlen(lc->decimal_point)); j += strlen(lc->decimal_point); } else --- 1099,1105 ---- for (i = 0, j = 0; ptr[i]; i++) if (ptr[i] == '.') { ! strncpy_null(&new_string[j], lc->decimal_point, cbValueMax - j); j += strlen(lc->decimal_point); } else
В списке pgsql-odbc по дате отправления:
Предыдущее
От: Richard BroersmaДата:
Сообщение: Re: Postgres issues "Not enough storage is available to complete this operation" exception
Следующее
От: shoji.morimoto@soliton.co.jpДата:
Сообщение: odbc driver leaks memory when connection failed