MCPcopy Create free account
hub / github.com/sqlalchemy/sqlalchemy / get_table_names

Method get_table_names

lib/sqlalchemy/dialects/oracle/base.py:2407–2479  ·  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

2405
2406 @reflection.cache
2407 def get_table_names(self, connection, schema=None, dblink=None, **kw):
2408 """Supported kw arguments are: ``dblink`` to reflect via a db link."""
2409 # note that table_names() isn't loading DBLINKed or synonym'ed tables
2410 if schema is None:
2411 schema = self.default_schema_name
2412
2413 den_schema = self.denormalize_schema_name(schema)
2414 if kw.get("oracle_resolve_synonyms", False):
2415 tables = (
2416 select(
2417 dictionary.all_tables.c.table_name,
2418 dictionary.all_tables.c.owner,
2419 dictionary.all_tables.c.iot_name,
2420 dictionary.all_tables.c.duration,
2421 dictionary.all_tables.c.tablespace_name,
2422 )
2423 .union_all(
2424 select(
2425 dictionary.all_synonyms.c.synonym_name.label(
2426 "table_name"
2427 ),
2428 dictionary.all_synonyms.c.owner,
2429 dictionary.all_tables.c.iot_name,
2430 dictionary.all_tables.c.duration,
2431 dictionary.all_tables.c.tablespace_name,
2432 )
2433 .select_from(dictionary.all_tables)
2434 .join(
2435 dictionary.all_synonyms,
2436 and_(
2437 dictionary.all_tables.c.table_name
2438 == dictionary.all_synonyms.c.table_name,
2439 dictionary.all_tables.c.owner
2440 == func.coalesce(
2441 dictionary.all_synonyms.c.table_owner,
2442 dictionary.all_synonyms.c.owner,
2443 ),
2444 ),
2445 )
2446 )
2447 .subquery("available_tables")
2448 )
2449 else:
2450 tables = dictionary.all_tables
2451
2452 query = select(tables.c.table_name)
2453 if self.exclude_tablespaces:
2454 query = query.where(
2455 func.coalesce(
2456 tables.c.tablespace_name, "no tablespace"
2457 ).not_in(self.exclude_tablespaces)
2458 )
2459 query = query.where(
2460 tables.c.owner == den_schema,
2461 tables.c.iot_name.is_(null()),
2462 tables.c.duration.is_(null()),
2463 )
2464

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