24 lines
660 B
Python
24 lines
660 B
Python
"""
|
|
Extracts the version of the PostgreSQL server.
|
|
"""
|
|
|
|
import re
|
|
|
|
# This reg-exp is intentionally fairly flexible here. Require only the major
|
|
# and minor version numbers, but need to be able to handle standard stuff like:
|
|
# PostgreSQL 8.3.6
|
|
# EnterpriseDB 8.3
|
|
# PostgreSQL 8.3 beta4
|
|
VERSION_RE = re.compile(r'\S+ (\d+)\.(\d+)')
|
|
|
|
def get_version(cursor):
|
|
"""
|
|
Returns a tuple representing the major and minor version number of the
|
|
server. For example, (7, 4) or (8, 3).
|
|
"""
|
|
cursor.execute("SELECT version()")
|
|
version = cursor.fetchone()[0]
|
|
major, minor = VERSION_RE.search(version).groups()
|
|
return int(major), int(minor)
|
|
|