On Wed, Aug 09, 2006 at 11:35:48PM -0400, Tom Lane wrote: > Stephen Frost <[EMAIL PROTECTED]> writes: > > * Tom Lane ([EMAIL PROTECTED]) wrote: > >> 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 > > It could say "not equal" pretty reasonably as the scale is > > different. > Nope, there are exactly three options: equal, less, greater. > btree doesn't understand anything else.
Mathematically, 1.0 = 0.9500... -> 1.05000... In theory, B-Tree could be fine with this. As long as the operators for =, <>, <, and > are made to consistently understand this principle. For example: 1.0 = 0.95 1.0 = 1.05 1.0 <> 0.94 1.0 <> 1.06 0.94 < 1.0 1.06 > 1.0 I'm not sure that it warrants being changed, though. Storing mixed precision values in a column and expecting the database to understand rounding rules does not appeal to me. Too magical. Cheers, mark -- [EMAIL PROTECTED] / [EMAIL PROTECTED] / [EMAIL PROTECTED] __________________________ . . _ ._ . . .__ . . ._. .__ . . . .__ | Neighbourhood Coder |\/| |_| |_| |/ |_ |\/| | |_ | |/ |_ | | | | | | \ | \ |__ . | | .|. |__ |__ | \ |__ | Ottawa, Ontario, Canada One ring to rule them all, one ring to find them, one ring to bring them all and in the darkness bind them... http://mark.mielke.cc/ ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match