0.6 can't handle Oracle function based indexes
Issue #1525
resolved
using 0.6beta1
this used to work in 0.5
from sqlalchemy import create_engine, Table, MetaData, __version__
print __version__
engine = create_engine('oracle://xxx:xxx@XXX', echo=False)
metadata = MetaData(engine)
engine.execute("""create or replace function ADDONE (a number) return number
deterministic
is
begin
return a+1;
end;
""")
try:
engine.execute('drop table BOB')
except:
pass
engine.execute('create table BOB (a number)')
engine.execute('create index fn_idx on BOB (ADDONE(a))')
bob_table = Table(
'bob',
metadata,
autoload=True
)
Gives
Traceback (most recent call last):
File "bob.py", line 28, in <module>
autoload=True
File "/home/geraint/work/sqlalchemy/lib/sqlalchemy/schema.py", line 202, in __new__
table._init(name, metadata, *args, **kw)
File "/home/geraint/work/sqlalchemy/lib/sqlalchemy/schema.py", line 250, in _init
_bind_or_error(metadata).reflecttable(self, include_columns=include_columns)
File "/home/geraint/work/sqlalchemy/lib/sqlalchemy/engine/base.py", line 1450, in reflecttable
self.dialect.reflecttable(conn, table, include_columns)
File "/home/geraint/work/sqlalchemy/lib/sqlalchemy/engine/default.py", line 122, in reflecttable
return insp.reflecttable(table, include_columns)
File "/home/geraint/work/sqlalchemy/lib/sqlalchemy/engine/reflection.py", line 362, in reflecttable
sa_schema.Index(name, *[table.columns[c](table.columns[c) for c in columns],
File "/home/geraint/work/sqlalchemy/lib/sqlalchemy/util.py", line 666, in __getitem__
return self._data[key](key)
KeyError: u'sys_nc00002$'
Comments (2)
-
Account Deleted -
repo owner - changed status to duplicate
- Log in to comment
Sorry.. should have searched issues first.. this is dup of 1513.
Please close.