Commit 0027f139 authored by Shai Berger's avatar Shai Berger
Browse files

Fixed #20014 -- implemented get_key_columns() for Oracle

Thanks Aymeric Augustin for reporting
parent 0268aba9
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -90,6 +90,18 @@ class DatabaseIntrospection(BaseDatabaseIntrospection):
            relations[row[0]] = (row[2], row[1].lower())
        return relations

    def get_key_columns(self, cursor, table_name):
        cursor.execute("""
            SELECT ccol.column_name, rcol.table_name AS referenced_table, rcol.column_name AS referenced_column
            FROM user_constraints c
            JOIN user_cons_columns ccol
              ON ccol.constraint_name = c.constraint_name 
            JOIN user_cons_columns rcol
              ON rcol.constraint_name = c.r_constraint_name 
            WHERE c.table_name = %s AND c.constraint_type = 'R'""" , [table_name.upper()])
        return [tuple(cell.lower() for cell in row) 
                for row in cursor.fetchall()]

    def get_indexes(self, cursor, table_name):
        sql = """
    SELECT LOWER(uic1.column_name) AS column_name,