Re: [BUGS] numerics lose scale and precision in views of unions
От | Tom Lane |
---|---|
Тема | Re: [BUGS] numerics lose scale and precision in views of unions |
Дата | |
Msg-id | 2361.1155168737@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: [BUGS] numerics lose scale and precision in views of unions (Stephen Frost <sfrost@snowman.net>) |
Ответы |
Re: [BUGS] numerics lose scale and precision in views of unions
|
Список | pgsql-hackers |
Stephen Frost <sfrost@snowman.net> writes: > Sounds good to me. I'd like to talk a bit about the expected behavior > of a numeric hash function. This is the current behavior: You're hijacking the thread, tsk tsk. > abc=# select * from test1; > a1 > -------- > 1.00 > 1.0000 > 1.0 > (3 rows) > abc=# select * from test1 group by a1; > a1 > ------ > 1.00 > (1 row) > abc=# select distinct a1 from test1; > a1 > ------ > 1.00 > (1 row) Yeah, because numeric_cmp says that 1.0 and 1.00 are equal (what else could it say? "less" and "greater" are surely wrong). So you need to ensure that dscale is not included in the hash calculation. The comments in numeric.h claim that you should not need to worry about leading or trailing zeroes, but it sounds like you do need to worry about differing weights for zero. Might be easiest and safest to use only nonzero digit words in the hash calculation. regards, tom lane
В списке pgsql-hackers по дате отправления: