Commit 77028194 authored by Andrew Godwin's avatar Andrew Godwin
Browse files

Update get_constraints with better comments

parent d5a7a3d6
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -1328,9 +1328,20 @@ class BaseDatabaseIntrospection(object):

    def get_constraints(self, cursor, table_name):
        """
        Returns {'cnname': {'columns': set(columns), 'primary_key': bool, 'unique': bool}}
        
        Both single- and multi-column constraints are introspected.
        Retrieves any constraints or keys (unique, pk, fk, check, index)
        across one or more columns.

        Returns a dict mapping constraint names to their attributes,
        where attributes is a dict with keys:
         * columns: List of columns this covers
         * primary_key: True if primary key, False otherwise
         * unique: True if this is a unique constraint, False otherwise
         * foreign_key: (table, column) of target, or None
         * check: True if check constraint, False otherwise
         * index: True if index, False otherwise.

        Some backends may return special constraint names that don't exist
        if they don't name constraints of a certain type (e.g. SQLite)
        """
        raise NotImplementedError

+2 −2
Original line number Diff line number Diff line
@@ -169,7 +169,7 @@ class DatabaseIntrospection(BaseDatabaseIntrospection):
                    "columns": [],
                    "primary_key": False,
                    "unique": False,
                    "foreign_key": False,
                    "foreign_key": None,
                    "check": True,
                    "index": False,
                }
@@ -197,7 +197,7 @@ class DatabaseIntrospection(BaseDatabaseIntrospection):
                    "columns": list(columns),
                    "primary_key": primary,
                    "unique": unique,
                    "foreign_key": False,
                    "foreign_key": None,
                    "check": False,
                    "index": True,
                }