MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / get_table_names

Method get_table_names

lib/sqlalchemy/dialects/oracle/base.py:2578–2650  ·  view source on GitHub ↗

Supported kw arguments are: ``dblink`` to reflect via a db link.

(self, connection, schema=None, dblink=None, **kw)

Source from the content-addressed store, hash-verified

2576
2577 @reflection.cache
2578 def get_table_names(self, connection, schema=None, dblink=None, **kw):
2579 """Supported kw arguments are: ``dblink`` to reflect via a db link."""
2580 # note that table_names() isn't loading DBLINKed or synonym'ed tables
2581 if schema is None:
2582 schema = self.default_schema_name
2583
2584 den_schema = self.denormalize_schema_name(schema)
2585 if kw.get("oracle_resolve_synonyms", False):
2586 tables = (
2587 select(
2588 dictionary.all_tables.c.table_name,
2589 dictionary.all_tables.c.owner,
2590 dictionary.all_tables.c.iot_name,
2591 dictionary.all_tables.c.duration,
2592 dictionary.all_tables.c.tablespace_name,
2593 )
2594 .union_all(
2595 select(
2596 dictionary.all_synonyms.c.synonym_name.label(
2597 "table_name"
2598 ),
2599 dictionary.all_synonyms.c.owner,
2600 dictionary.all_tables.c.iot_name,
2601 dictionary.all_tables.c.duration,
2602 dictionary.all_tables.c.tablespace_name,
2603 )
2604 .select_from(dictionary.all_tables)
2605 .join(
2606 dictionary.all_synonyms,
2607 and_(
2608 dictionary.all_tables.c.table_name
2609 == dictionary.all_synonyms.c.table_name,
2610 dictionary.all_tables.c.owner
2611 == func.coalesce(
2612 dictionary.all_synonyms.c.table_owner,
2613 dictionary.all_synonyms.c.owner,
2614 ),
2615 ),
2616 )
2617 )
2618 .subquery("available_tables")
2619 )
2620 else:
2621 tables = dictionary.all_tables
2622
2623 query = select(tables.c.table_name)
2624 if self.exclude_tablespaces:
2625 query = query.where(
2626 func.coalesce(
2627 tables.c.tablespace_name, "no tablespace"
2628 ).not_in(self.exclude_tablespaces)
2629 )
2630 query = query.where(
2631 tables.c.owner == den_schema,
2632 tables.c.iot_name.is_(null()),
2633 tables.c.duration.is_(null()),
2634 )
2635

Callers

nothing calls this directly

Calls 15

_execute_reflectionMethod · 0.95
selectFunction · 0.90
and_Function · 0.85
nullFunction · 0.85
coalesceMethod · 0.80
getMethod · 0.45
subqueryMethod · 0.45
union_allMethod · 0.45
joinMethod · 0.45
select_fromMethod · 0.45
labelMethod · 0.45

Tested by

no test coverage detected