summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2012-09-08 10:24:13 +0200
committerClaude Paroz <claude@2xlibre.net>2012-09-08 10:24:13 +0200
commit09a99714c05316717d2797afd2e458dbf6aa880f (patch)
tree83f95edb4f2781d2a687754181b5b54bcd301146
parent3622be42b0902391a93c30af8483cdf34bac2783 (diff)
Moved get_primary_key_column implementation to base
Refs #17574.
-rw-r--r--django/db/backends/__init__.py7
-rw-r--r--django/db/backends/mysql/introspection.py10
2 files changed, 5 insertions, 12 deletions
diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py
index f0fd2f56d2..9b0f495749 100644
--- a/django/db/backends/__init__.py
+++ b/django/db/backends/__init__.py
@@ -1034,9 +1034,12 @@ class BaseDatabaseIntrospection(object):
def get_primary_key_column(self, cursor, table_name):
"""
- Backends can override this to return the column name of the primary key for the given table.
+ Returns the name of the primary key column for the given table.
"""
- raise NotImplementedError
+ for column in six.iteritems(self.get_indexes(cursor, table_name)):
+ if column[1]['primary_key']:
+ return column[0]
+ return None
def get_indexes(self, cursor, table_name):
"""
diff --git a/django/db/backends/mysql/introspection.py b/django/db/backends/mysql/introspection.py
index 3b5a6fecd3..c552263e5e 100644
--- a/django/db/backends/mysql/introspection.py
+++ b/django/db/backends/mysql/introspection.py
@@ -2,7 +2,6 @@ import re
from .base import FIELD_TYPE
from django.db.backends import BaseDatabaseIntrospection
-from django.utils import six
foreign_key_re = re.compile(r"\sCONSTRAINT `[^`]*` FOREIGN KEY \(`([^`]*)`\) REFERENCES `([^`]*)` \(`([^`]*)`\)")
@@ -88,15 +87,6 @@ class DatabaseIntrospection(BaseDatabaseIntrospection):
key_columns.extend(cursor.fetchall())
return key_columns
- def get_primary_key_column(self, cursor, table_name):
- """
- Returns the name of the primary key column for the given table
- """
- for column in six.iteritems(self.get_indexes(cursor, table_name)):
- if column[1]['primary_key']:
- return column[0]
- return None
-
def get_indexes(self, cursor, table_name):
cursor.execute("SHOW INDEX FROM %s" % self.connection.ops.quote_name(table_name))
# Do a two-pass search for indexes: on first pass check which indexes