1
0
mirror of https://github.com/django/django.git synced 2025-07-05 18:29:11 +00:00

[soc2009/multidb] Fix several bugs I introduced into the Oracle backend. Thanks to Karen Tracey\!

git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/multidb@11392 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Alex Gaynor 2009-08-04 23:49:14 +00:00
parent ada3f39dca
commit 80ef8a86d1
3 changed files with 17 additions and 13 deletions

View File

@ -138,7 +138,7 @@ WHEN (new.%(col_name)s IS NULL)
return self._cache[DefaultQueryClass, subclass] return self._cache[DefaultQueryClass, subclass]
Query = query.query_class(DefaultQueryClass, Database) Query = query.query_class(DefaultQueryClass, Database)
if subclass is not None: if subclass is not None:
Query = type('Query', (subclsas, Query), {}) Query = type('Query', (subclass, Query), {})
self._cache[DefaultQueryClass, subclass] = Query self._cache[DefaultQueryClass, subclass] = Query
return Query return Query

View File

@ -206,7 +206,7 @@ class DatabaseCreation(BaseDatabaseCreation):
sys.stderr.write("Failed (%s)\n" % (err)) sys.stderr.write("Failed (%s)\n" % (err))
raise raise
def _test_database_name(self, settings): def _test_database_name(self):
name = TEST_DATABASE_PREFIX + self.connection.settings_dict['DATABASE_NAME'] name = TEST_DATABASE_PREFIX + self.connection.settings_dict['DATABASE_NAME']
try: try:
if self.connection.settings_dict['TEST_DATABASE_NAME']: if self.connection.settings_dict['TEST_DATABASE_NAME']:
@ -217,10 +217,10 @@ class DatabaseCreation(BaseDatabaseCreation):
raise raise
return name return name
def _test_database_create(self, settings): def _test_database_create(self):
name = True name = True
try: try:
if self.connection.setting_dict['TEST_DATABASE_CREATE']: if self.connection.settings_dict['TEST_DATABASE_CREATE']:
name = True name = True
else: else:
name = False name = False
@ -230,7 +230,7 @@ class DatabaseCreation(BaseDatabaseCreation):
raise raise
return name return name
def _test_user_create(self, settings): def _test_user_create(self):
name = True name = True
try: try:
if self.connection.settings_dict['TEST_USER_CREATE']: if self.connection.settings_dict['TEST_USER_CREATE']:
@ -244,11 +244,11 @@ class DatabaseCreation(BaseDatabaseCreation):
return name return name
def _test_database_user(self): def _test_database_user(self):
name = TEST_DATABASE_PREFIX + self.settings_dict['DATABASE_USER'] name = TEST_DATABASE_PREFIX + self.connection.settings_dict['DATABASE_USER']
try: try:
if self.connection.settings_dict['TEST_DATABASE_USER']: if self.connection.settings_dict['TEST_DATABASE_USER']:
name = self.connection.settings_dict['TEST_DATABASE_USER'] name = self.connection.settings_dict['TEST_DATABASE_USER']
except AttributeError: except KeyError:
pass pass
except: except:
raise raise
@ -259,29 +259,29 @@ class DatabaseCreation(BaseDatabaseCreation):
try: try:
if self.connection.settings_dict['TEST_DATABASE_PASSWD']: if self.connection.settings_dict['TEST_DATABASE_PASSWD']:
name = self.connection.settings_dict['TEST_DATABASE_PASSWD'] name = self.connection.settings_dict['TEST_DATABASE_PASSWD']
except AttributeError: except KeyError:
pass pass
except: except:
raise raise
return name return name
def _test_database_tblspace(self, settings): def _test_database_tblspace(self):
name = TEST_DATABASE_PREFIX + self.connection.settings_dict['DATABASE_NAME'] name = TEST_DATABASE_PREFIX + self.connection.settings_dict['DATABASE_NAME']
try: try:
if self.connection.settings_dict['TEST_DATABASE_TBLSPACE']: if self.connection.settings_dict['TEST_DATABASE_TBLSPACE']:
name = self.connection.settings_dict['TEST_DATABASE_TBLSPACE'] name = self.connection.settings_dict['TEST_DATABASE_TBLSPACE']
except AttributeError: except KeyError:
pass pass
except: except:
raise raise
return name return name
def _test_database_tblspace_tmp(self, settings): def _test_database_tblspace_tmp(self):
name = TEST_DATABASE_PREFIX + self.connection.settings_dict['DATABASE_NAME'] + '_temp' name = TEST_DATABASE_PREFIX + self.connection.settings_dict['DATABASE_NAME'] + '_temp'
try: try:
if self.connection.settings_dict['TEST_DATABASE_TBLSPACE_TMP']: if self.connection.settings_dict['TEST_DATABASE_TBLSPACE_TMP']:
name = self.connection.settings_dict['TEST_DATABASE_TBLSPACE_TMP'] name = self.connection.settings_dict['TEST_DATABASE_TBLSPACE_TMP']
except AttributeError: except KeyError:
pass pass
except: except:
raise raise

View File

@ -666,8 +666,12 @@ class QuerySet(object):
connection = connections[alias] connection = connections[alias]
clone.query.set_connection(connection) clone.query.set_connection(connection)
cls = clone.query.get_query_class() cls = clone.query.get_query_class()
if cls is sql.Query:
subclass = None
else:
subclass = cls
clone.query.__class__ = connection.ops.query_class( clone.query.__class__ = connection.ops.query_class(
sql.Query, cls is sql.Query and None or cls sql.Query, subclass
) )
return clone return clone