On Wed, Aug 19, 2009 at 8:24 PM, Alvaro Herrera<alvherre@xxxxxxxxxxxxxxxxx> wrote: >> [1] It doesn't correctly convert °C to °F or vv, that was one of the >> first things I tried. > > Seems it's easy to misuse it. You need tempF(x) and tempC notation for > converting absolute temperature differences: > > You have: tempF(212) > You want: tempC > 100 That depends on whether you're converting a temperature or a temperature difference. If you want to know what a 100 degree C drop in temperature equates to in Fahrenheit the answer is not 212 but rather 180. I think it would be useful to have a builtin data type which contained a float and an opaque text unit. It could support linear operations like +, -, and sum() by just throwing an error if the units didn't match. Then you could add an add-on function which converted one such datum to another with a desired new units by calling out to the units program. That would allow people to store values with heterogenous units. So for example you could have SMART stats in a single table where the time values, unitless values, and temperature values are all in the same column. As long as you only compare, say, drive temperatures to max temperatures you never actually need to know about the units. It would serve as an assertion check to ensure you don't compare drive temperatures to error counts or something like that. -- greg http://mit.edu/~gsstark/resume.pdf -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general