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