summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorAdrian Holovaty <adrian@holovaty.com>2007-08-20 00:30:19 +0000
committerAdrian Holovaty <adrian@holovaty.com>2007-08-20 00:30:19 +0000
commitd4f218bd91d08ed79fcc67c10f4e1cfc6b221784 (patch)
tree752217d54feb37b974e831720b2ad0323db6db18 /django
parent13061bf20bc467c5655c2dfa280dc226a00effcd (diff)
Refactored get_tablespace_sql() to DatabaseOperations.tablespace_sql(). Refs #5106
git-svn-id: http://code.djangoproject.com/svn/django/trunk@5966 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
-rw-r--r--django/core/management/sql.py12
-rw-r--r--django/db/backends/__init__.py7
-rw-r--r--django/db/backends/ado_mssql/base.py6
-rw-r--r--django/db/backends/oracle/base.py6
4 files changed, 19 insertions, 12 deletions
diff --git a/django/core/management/sql.py b/django/core/management/sql.py
index f053ec7082..fc73e6a933 100644
--- a/django/core/management/sql.py
+++ b/django/core/management/sql.py
@@ -237,7 +237,7 @@ def sql_model_create(model, style, known_models=set()):
if tablespace and backend.supports_tablespaces and (f.unique or f.primary_key) and backend.autoindexes_primary_keys:
# We must specify the index tablespace inline, because we
# won't be generating a CREATE INDEX statement for this field.
- field_output.append(backend.get_tablespace_sql(tablespace, inline=True))
+ field_output.append(connection.ops.tablespace_sql(tablespace, inline=True))
if f.rel:
if f.rel.to in known_models:
field_output.append(style.SQL_KEYWORD('REFERENCES') + ' ' + \
@@ -263,7 +263,7 @@ def sql_model_create(model, style, known_models=set()):
full_statement.append(' %s%s' % (line, i < len(table_output)-1 and ',' or ''))
full_statement.append(')')
if opts.db_tablespace and backend.supports_tablespaces:
- full_statement.append(backend.get_tablespace_sql(opts.db_tablespace))
+ full_statement.append(connection.ops.tablespace_sql(opts.db_tablespace))
full_statement.append(';')
final_output.append('\n'.join(full_statement))
@@ -313,7 +313,7 @@ def many_to_many_sql_for_model(model, style):
if not isinstance(f.rel, generic.GenericRel):
tablespace = f.db_tablespace or opts.db_tablespace
if tablespace and backend.supports_tablespaces and backend.autoindexes_primary_keys:
- tablespace_sql = ' ' + backend.get_tablespace_sql(tablespace, inline=True)
+ tablespace_sql = ' ' + connection.ops.tablespace_sql(tablespace, inline=True)
else:
tablespace_sql = ''
table_output = [style.SQL_KEYWORD('CREATE TABLE') + ' ' + \
@@ -345,7 +345,7 @@ def many_to_many_sql_for_model(model, style):
table_output.append(')')
if opts.db_tablespace and backend.supports_tablespaces:
# f.db_tablespace is only for indices, so ignore its value here.
- table_output.append(backend.get_tablespace_sql(opts.db_tablespace))
+ table_output.append(connection.ops.tablespace_sql(opts.db_tablespace))
table_output.append(';')
final_output.append('\n'.join(table_output))
@@ -386,7 +386,7 @@ def custom_sql_for_model(model):
def sql_indexes_for_model(model, style):
"Returns the CREATE INDEX SQL statements for a single model"
- from django.db import backend
+ from django.db import backend, connection
output = []
for f in model._meta.fields:
@@ -394,7 +394,7 @@ def sql_indexes_for_model(model, style):
unique = f.unique and 'UNIQUE ' or ''
tablespace = f.db_tablespace or model._meta.db_tablespace
if tablespace and backend.supports_tablespaces:
- tablespace_sql = ' ' + backend.get_tablespace_sql(tablespace)
+ tablespace_sql = ' ' + connection.ops.tablespace_sql(tablespace)
else:
tablespace_sql = ''
output.append(
diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py
index 8af82a4dda..78dc506add 100644
--- a/django/db/backends/__init__.py
+++ b/django/db/backends/__init__.py
@@ -166,3 +166,10 @@ class BaseDatabaseOperations(object):
Returns the SQL statement required to start a transaction.
"""
return "BEGIN;"
+
+ def tablespace_sql(self, tablespace, inline=False):
+ """
+ Returns the tablespace SQL, or None if the backend doesn't use
+ tablespaces.
+ """
+ return None
diff --git a/django/db/backends/ado_mssql/base.py b/django/db/backends/ado_mssql/base.py
index 192c069449..4898d38341 100644
--- a/django/db/backends/ado_mssql/base.py
+++ b/django/db/backends/ado_mssql/base.py
@@ -70,6 +70,9 @@ class DatabaseOperations(BaseDatabaseOperations):
def random_function_sql(self):
return 'RAND()'
+ def tablespace_sql(self, tablespace, inline=False):
+ return "ON %s" % quote_name(tablespace)
+
class DatabaseWrapper(BaseDatabaseWrapper):
ops = DatabaseOperations()
@@ -103,9 +106,6 @@ dictfetchone = util.dictfetchone
dictfetchmany = util.dictfetchmany
dictfetchall = util.dictfetchall
-def get_tablespace_sql(tablespace, inline=False):
- return "ON %s" % quote_name(tablespace)
-
OPERATOR_MAPPING = {
'exact': '= %s',
'iexact': 'LIKE %s',
diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py
index b84dc48bbe..0c9a0a55b0 100644
--- a/django/db/backends/oracle/base.py
+++ b/django/db/backends/oracle/base.py
@@ -115,6 +115,9 @@ class DatabaseOperations(BaseDatabaseOperations):
def start_transaction_sql(self):
return ''
+ def tablespace_sql(self, tablespace, inline=False):
+ return "%sTABLESPACE %s" % ((inline and "USING INDEX " or ""), quote_name(tablespace))
+
class DatabaseWrapper(BaseDatabaseWrapper):
ops = DatabaseOperations()
@@ -231,9 +234,6 @@ def get_field_cast_sql(db_type):
else:
return "%s%s"
-def get_tablespace_sql(tablespace, inline=False):
- return "%sTABLESPACE %s" % ((inline and "USING INDEX " or ""), quote_name(tablespace))
-
def get_drop_sequence(table):
return "DROP SEQUENCE %s;" % quote_name(get_sequence_name(table))