def _load_catalog(self): if self._cache_ts is None or self._cache_ts < datetime.now() - timedelta(minutes=10): with self._get_context_manager() as cursor: logging.debug("Catalog Query: %s", self._get_catalog_query()) cursor.execute(self._get_catalog_query()) self._schemas = [] row = cursor.fetchone() current_schema = None current_table = None if row is not None: current_schema = Schema(row[0]) current_table = Table(current_schema, row[1]) while row is not None: if current_schema.get_name() != row[0]: current_schema.tables.append(current_table) self._schemas.append(current_schema) current_schema = Schema(row[0]) current_table = Table(current_schema, row[1]) elif current_table.get_name() != row[1]: current_schema.tables.append(current_table) current_table = Table(current_schema, row[1]) current_table.add(Column(row[2])) row = cursor.fetchone() if current_schema is not None and current_table is not None: current_schema.tables.append(current_table) self._schemas.append(current_schema) self._cache_ts = datetime.now()
def _load_catalog(self): if self._cache_ts is None or self._cache_ts < datetime.now() - timedelta( minutes=10 ): with self._get_context_manager() as cursor: logging.debug("Catalog Query: {0}".format(self._get_catalog_query())) cursor.execute(self._get_catalog_query()) self._database = Database( "database", include=self._include_schema, exclude=self._exclude_schema, ) row = cursor.fetchone() current_schema = None current_table = None if row is not None: current_schema = Schema( row[0], include=self._include_table, exclude=self._exclude_table ) current_table = Table(current_schema, row[1]) while row is not None: if current_schema.get_name() != row[0]: current_schema.add_child(current_table) self._database.add_child(current_schema) current_schema = Schema( row[0], include=self._include_table, exclude=self._exclude_table, ) current_table = Table(current_schema, row[1]) elif current_table.get_name() != row[1]: current_schema.add_child(current_table) current_table = Table(current_schema, row[1]) current_table.add_child(Column(row[2])) row = cursor.fetchone() if current_schema is not None and current_table is not None: current_schema.add_child(current_table) self._database.add_child(current_schema) self._cache_ts = datetime.now()