Improve version comparison functions, esp for PostgreSQL
|Reported by:||Russell Keith-Magee||Owned by:||nobody|
|Component:||Database layer (models, ORM)||Version:||1.0|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
The PostgreSQL backend currently implements a get_version function that returns a tuple (e.g., (8,3,1) ) that describes the version of the PostgreSQL server. This version tuple is then used in many locations to determine feature availability - for example, between 8.2 and 8.2.4, STDDEV_POP is known to be broken, and errors will be raised.
Version comparisons are implemented in multiple locations, using different techniques. This should be cleaned up and improved so that the process of identifying versions can be improved without affecting the version comparisons that are required. This probably means writing a function that returns -1/0/1 comparing one version to another version.
This is an offshoot of #10842 - more discussion and context is available on that ticket.