"Martin L. Buchanan" <martinlbuchanan@xxxxxxxxx> writes: > Reading the documentation I found no built-in function for integer square > root, requiring a sequence of: > floor(sqrt(foo))::integer > to go from an integer to the integer square root as an integer. I'm a little down on this idea, mainly because I doubt there is any principled argument as to whether the rounding ought to be down, up, or to nearest. Specific applications probably want a specific one of those, but how likely is it that a built-in choice would satisfy many users? I'm not buying the performance angle too much either. Even granting that your platform has an integer square root instruction that's faster than its floating-point one, and that we can get at that from C, the difference would likely be swamped by the overhead of the SQL function call. > (And with infinities and NaNs processed as described in > 8.1 Numeric Types). Our integers do not have infinities, nor NaNs. Anyway, I don't mean to slam the door on this idea completely, but I think you need to make a much better-supported argument for it. regards, tom lane