Supported kw arguments are: ``dblink`` to reflect via a db link.
(self, connection, schema=None, dblink=None, **kw)
| 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 |
nothing calls this directly
no test coverage detected