diff options
| author | Claude Paroz <claude@2xlibre.net> | 2012-09-08 10:24:13 +0200 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2012-09-08 10:24:13 +0200 |
| commit | 09a99714c05316717d2797afd2e458dbf6aa880f (patch) | |
| tree | 83f95edb4f2781d2a687754181b5b54bcd301146 | |
| parent | 3622be42b0902391a93c30af8483cdf34bac2783 (diff) | |
Moved get_primary_key_column implementation to base
Refs #17574.
| -rw-r--r-- | django/db/backends/__init__.py | 7 | ||||
| -rw-r--r-- | django/db/backends/mysql/introspection.py | 10 |
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 |
