Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Added quote_name hook for each database backend. Refs #121. Thanks, R…

…obin Munn -- we miss you.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@1039 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 23bb8c4a4b5e785cd4992689c529f2d9a86898b2 1 parent c65332d
Adrian Holovaty adrianholovaty authored
1  django/core/db/__init__.py
View
@@ -36,6 +36,7 @@
get_random_function_sql = dbmod.get_random_function_sql
get_table_list = dbmod.get_table_list
get_relations = dbmod.get_relations
+quote_name = dbmod.quote_name
OPERATOR_MAPPING = dbmod.OPERATOR_MAPPING
DATA_TYPES = dbmod.DATA_TYPES
DATA_TYPES_REVERSE = dbmod.DATA_TYPES_REVERSE
4 django/core/db/backends/ado_mssql.py
View
@@ -110,6 +110,10 @@ def get_table_list(cursor):
def get_relations(cursor, table_name):
raise NotImplementedError
+def quote_name(name):
+ # TODO: Figure out how MS-SQL quotes database identifiers.
+ return name
+
OPERATOR_MAPPING = {
'exact': '=',
'iexact': 'LIKE',
5 django/core/db/backends/mysql.py
View
@@ -122,6 +122,11 @@ def get_table_list(cursor):
def get_relations(cursor, table_name):
raise NotImplementedError
+def quote_name(name):
+ if name.startswith("`") and name.endswith("`"):
+ return name # Quoting once is enough.
+ return "`%s`" % name
+
OPERATOR_MAPPING = {
'exact': '=',
'iexact': 'LIKE',
5 django/core/db/backends/postgresql.py
View
@@ -116,6 +116,11 @@ def get_relations(cursor, table_name):
continue
return relations
+def quote_name(name):
+ if name.startswith('"') and name.endswith('"'):
+ return name # Quoting once is enough.
+ return '"%s"' % name
+
# Register these custom typecasts, because Django expects dates/times to be
# in Python's native (standard-library) datetime/time format, whereas psycopg
# use mx.DateTime by default.
5 django/core/db/backends/sqlite3.py
View
@@ -124,6 +124,11 @@ def get_table_list(cursor):
def get_relations(cursor, table_name):
raise NotImplementedError
+def quote_name(name):
+ if name.startswith('"') and name.endswith('"'):
+ return name # Quoting once is enough.
+ return '"%s"' % name
+
# Operators and fields ########################################################
OPERATOR_MAPPING = {
Please sign in to comment.
Something went wrong with that request. Please try again.