[ENH] Allow passing MetaData (or meta kwargs) to high-level SQL functions · Issue #7441 · pandas-dev/pandas (original) (raw)
Use case: I want to query an Oracle table but I'm not the owner, so meta.reflect(engine)
would do nothing and always return an empty list of tables rendering read_sql_table
useless. This works: meta.reflect(engine, schema='the_real_owner')
, however there's no way of passing the metadata / schema to the high-level pandas.io.sql functions. One may also want to use a meta.reflect(engine, only=[...])
or meta.reflect(engine, oracle_resolve_synonyms=True)
or any other dialect-specific argument.
PandasSQLAlchemy
class already support passing meta
in the constructor, so it's just a matter of a adding an extra keyword argument to the three io.sql.read_sql* functions. Or maybe allow passing through arbitrary kwargs to meta's reflect method, like read_sql_table(table, engine, reflect=dict(schema='my_schema', oracle_resolve_synonyms=True))
-- ugly but functional.