On Sep 16, 2006, at 7:31 PM, Gregory Stark wrote:
Would that pose indexing issues? It would also mean that when joining two tables you'd have to handle some interesting type conversion issues (at times). We had someone accidentally create a largish table with userid as "numeric" and other tables are "bigint", it was disastrous for performance
(joining).  I'd imagine that if the  above wasn't done cleverly, that
performance problem would be repeated.

That used to be a problem but Tom solved it a little while back. Not a perfect solution in that it requires lots of cross-data-type operators as the number
of data types grows but it works.

In any case I think Jim was suggesting this be handled internally to the numeric data type which wouldn't cause this problem. However I'm not sure anything has to be done. A numeric is an array of 16 bit integers, so anything
under 64k *is* stored just as an integer.

Yes, I definitely meant for this to be internal-only... end users shouldn't notice any difference (except hopefully improved performance).

If all the math is done in 64k chunks then this might not be as big a help. Numbers between 2^16 and 2^64 (or 2^32 on some platforms) would probably be faster, but how much faster isn't clear. Perhaps the OP could do some testing if someone came up with a quick and dirty prototype patch.

Well, just an integer plus a useless exponent. I think it would be a neat trick to normalize the exponent to the end of the last element of the mantissa
rather than the first digit so that integers don't need an exponent.

How would that help? If I'm understanding correctly you're just talking about storing how many places after the decimal instead of how many in front of it?
--
Jim Nasby                                            [EMAIL PROTECTED]
EnterpriseDB      http://enterprisedb.com      512.569.9461 (cell)



---------------------------(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

Reply via email to