Django

Code

Changeset 7415

Show
Ignore:
Timestamp:
04/12/08 21:04:10 (3 months ago)
Author:
mtredinnick
Message:

Fixed #6433 -- Handle some varied PostgreSQL version strings (beta versions and
Windows version strings). Patch from jerickso.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/db/backends/postgresql/operations.py

    r7294 r7415  
     1import re 
     2 
    13from django.db.backends import BaseDatabaseOperations 
     4 
     5server_version_re = re.compile(r'PostgreSQL (\d{1,2})\.(\d{1,2})\.?(\d{1,2})?') 
    26 
    37# This DatabaseOperations class lives in here instead of base.py because it's 
     
    1317            cursor = connection.cursor() 
    1418            cursor.execute("SELECT version()") 
    15             self._postgres_version = [int(val) for val in cursor.fetchone()[0].split()[1].split('.')] 
     19            version_string = cursor.fetchone()[0] 
     20            m = server_version_re.match(version_string) 
     21            if not m: 
     22                raise Exception('Unable to determine PostgreSQL version from version() function string: %r' % version_string) 
     23            self._postgres_version = [int(val) for val in m.groups() if val] 
    1624        return self._postgres_version 
    1725    postgres_version = property(_get_postgres_version)