Commit 97c89928 authored by Adrian Holovaty's avatar Adrian Holovaty
Browse files

Merge pull request #16 from akaariai/ticket_18218

Made table_names() output sorted.
parents 75743c18 527cce80
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ class Command(NoArgsCommand):
        yield 'from %s import models' % self.db_module
        yield ''
        known_models = []
        for table_name in connection.introspection.get_table_list(cursor):
        for table_name in connection.introspection.table_names(cursor):
            yield 'class %s(models.Model):' % table2model(table_name)
            known_models.append(table2model(table_name))
            try:
+1 −1
Original line number Diff line number Diff line
@@ -63,7 +63,7 @@ def sql_delete(app, style, connection):

    # Figure out which tables already exist
    if cursor:
        table_names = connection.introspection.get_table_list(cursor)
        table_names = connection.introspection.table_names(cursor)
    else:
        table_names = []

+17 −4
Original line number Diff line number Diff line
@@ -898,10 +898,23 @@ class BaseDatabaseIntrospection(object):
        """
        return name

    def table_names(self):
        "Returns a list of names of all tables that exist in the database."
    def table_names(self, cursor=None):
        """
        Returns a list of names of all tables that exist in the database.
        The returned table list is sorted by Python's default sorting. We
        do NOT use database's ORDER BY here to avoid subtle differences
        in sorting order between databases.
        """
        if cursor is None:
            cursor = self.connection.cursor()
        return self.get_table_list(cursor)
        return sorted(self.get_table_list(cursor))

    def get_table_list(self, cursor):
        """
        Returns an unsorted list of names of all tables that exist in the
        database.
        """
        raise NotImplementedError

    def django_table_names(self, only_existing=False):
        """
+1 −1
Original line number Diff line number Diff line
@@ -454,7 +454,7 @@ class DatabaseWrapper(BaseDatabaseWrapper):
        """
        cursor = self.cursor()
        if table_names is None:
            table_names = self.introspection.get_table_list(cursor)
            table_names = self.introspection.table_names(cursor)
        for table_name in table_names:
            primary_key_column_name = self.introspection.get_primary_key_column(cursor, table_name)
            if not primary_key_column_name:
+1 −1
Original line number Diff line number Diff line
@@ -295,7 +295,7 @@ class DatabaseWrapper(BaseDatabaseWrapper):
        """
        cursor = self.cursor()
        if table_names is None:
            table_names = self.introspection.get_table_list(cursor)
            table_names = self.introspection.table_names(cursor)
        for table_name in table_names:
            primary_key_column_name = self.introspection.get_primary_key_column(cursor, table_name)
            if not primary_key_column_name:
Loading