Django

Code

Changeset 4023

Show
Ignore:
Timestamp:
11/06/06 10:22:02 (2 years ago)
Author:
bouldersprinters
Message:

[boulder-oracle-sprint] Oracle "inspectdb" runs, thanks to Mitchell Smith for the hairy SQL needed

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/boulder-oracle-sprint/django/db/backends/oracle/introspection.py

    r4004 r4023  
    2525    Returns a dictionary of {field_index: (field_index_other_table, other_table)} 
    2626    representing all relationships to the given table. Indexes are 0-based. 
    27     """ 
    28     raise NotImplementedError 
     27    """     
     28    cursor.execute(""" 
     29SELECT ta.column_id - 1, tb.table_name, tb.column_id - 1 
     30FROM   user_constraints, USER_CONS_COLUMNS ca, USER_CONS_COLUMNS cb, 
     31user_tab_cols ta, user_tab_cols tb 
     32WHERE  user_constraints.table_name = %s AND 
     33      ta.table_name = %s AND 
     34      ta.column_name = ca.column_name AND 
     35      ca.table_name = %s AND 
     36      user_constraints.constraint_name = ca.constraint_name AND 
     37      user_constraints.r_constraint_name = cb.constraint_name AND 
     38      cb.table_name = tb.table_name AND 
     39      cb.column_name = tb.column_name AND 
     40      ca.position = cb.position""", [table_name, table_name, table_name]) 
     41 
     42    relations = {} 
     43    for row in cursor.fetchall(): 
     44        relations[row[0]] = (row[2], row[1]) 
     45    return relations 
    2946 
    3047def get_indexes(cursor, table_name):