mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Changed postgresql and postgresql_psycopg2 backends NOT to do a SELECT version() for every connection, which was ludicrous. Now the version is only retrieved if it needs to be, via a lazy loader.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6012 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		| @@ -102,9 +102,6 @@ class DatabaseWrapper(BaseDatabaseWrapper): | ||||
|             cursor.execute("SET TIME ZONE %s", [settings.TIME_ZONE]) | ||||
|         cursor.execute("SET client_encoding to 'UNICODE'") | ||||
|         cursor = UnicodeCursorWrapper(cursor, 'utf-8') | ||||
|         if self.ops.postgres_version is None: | ||||
|             cursor.execute("SELECT version()") | ||||
|             self.ops.postgres_version = [int(val) for val in cursor.fetchone()[0].split()[1].split('.')] | ||||
|         return cursor | ||||
|  | ||||
| def typecast_string(s): | ||||
|   | ||||
| @@ -4,8 +4,17 @@ from django.db.backends import BaseDatabaseOperations | ||||
| # used by both the 'postgresql' and 'postgresql_psycopg2' backends. | ||||
|  | ||||
| class DatabaseOperations(BaseDatabaseOperations): | ||||
|     def __init__(self, postgres_version=None): | ||||
|         self.postgres_version = postgres_version | ||||
|     def __init__(self): | ||||
|         self._postgres_version = None | ||||
|  | ||||
|     def _get_postgres_version(self): | ||||
|         if self._postgres_version is None: | ||||
|             from django.db import connection | ||||
|             cursor = connection.cursor() | ||||
|             cursor.execute("SELECT version()") | ||||
|             self._postgres_version = [int(val) for val in cursor.fetchone()[0].split()[1].split('.')] | ||||
|         return self._postgres_version | ||||
|     postgres_version = property(_get_postgres_version) | ||||
|  | ||||
|     def date_extract_sql(self, lookup_type, field_name): | ||||
|         # http://www.postgresql.org/docs/8.0/static/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT | ||||
|   | ||||
| @@ -64,7 +64,4 @@ class DatabaseWrapper(BaseDatabaseWrapper): | ||||
|         cursor.tzinfo_factory = None | ||||
|         if set_tz: | ||||
|             cursor.execute("SET TIME ZONE %s", [settings.TIME_ZONE]) | ||||
|         if self.ops.postgres_version is None: | ||||
|             cursor.execute("SELECT version()") | ||||
|             self.ops.postgres_version = [int(val) for val in cursor.fetchone()[0].split()[1].split('.')] | ||||
|         return cursor | ||||
|   | ||||
		Reference in New Issue
	
	Block a user