[Sqlalchemy-tickets] Issue #4042: reflect oracle no-column (functional) index when table has no pri
Brought to you by:
zzzeek
From: Michael B. <iss...@bi...> - 2017-08-09 21:38:10
|
New issue 4042: reflect oracle no-column (functional) index when table has no primray key https://bitbucket.org/zzzeek/sqlalchemy/issues/4042/reflect-oracle-no-column-functional-index Michael Bayer: ``` #!python from sqlalchemy import * m = MetaData() t = Table( 't', m, Column('q', Integer) ) Index('t_idx_1', func.lower(t.c.q)) Index('t_idx_2', t.c.q) e = create_engine("oracle://scott:tiger@xe", echo='debug') m.drop_all(e) m.create_all(e) insp = inspect(e) print insp.get_indexes('t') ``` fix: ``` #!diff diff --git a/lib/sqlalchemy/dialects/oracle/base.py b/lib/sqlalchemy/dialects/oracle/base.py index d9fa80d..83a76e5 100644 --- a/lib/sqlalchemy/dialects/oracle/base.py +++ b/lib/sqlalchemy/dialects/oracle/base.py @@ -1476,7 +1476,7 @@ class OracleDialect(default.DefaultDialect): def remove_if_primary_key(index): # don't include the primary key index - if index is not None and \ + if pk_names and index is not None and \ upper_name_set(index['column_names']) == pk_names: indexes.pop() ``` |