(self, schema)
| 5322 | |
| 5323 | @lru_cache() |
| 5324 | def _enum_query(self, schema): |
| 5325 | lbl_agg_sq = ( |
| 5326 | select( |
| 5327 | pg_catalog.pg_enum.c.enumtypid, |
| 5328 | sql.func.array_agg( |
| 5329 | aggregate_order_by( |
| 5330 | # NOTE: cast since some postgresql derivatives may |
| 5331 | # not support array_agg on the name type |
| 5332 | pg_catalog.pg_enum.c.enumlabel.cast(TEXT), |
| 5333 | pg_catalog.pg_enum.c.enumsortorder, |
| 5334 | ) |
| 5335 | ).label("labels"), |
| 5336 | ) |
| 5337 | .group_by(pg_catalog.pg_enum.c.enumtypid) |
| 5338 | .subquery("lbl_agg") |
| 5339 | ) |
| 5340 | |
| 5341 | query = ( |
| 5342 | select( |
| 5343 | pg_catalog.pg_type.c.typname.label("name"), |
| 5344 | pg_catalog.pg_type_is_visible(pg_catalog.pg_type.c.oid).label( |
| 5345 | "visible" |
| 5346 | ), |
| 5347 | pg_catalog.pg_namespace.c.nspname.label("schema"), |
| 5348 | lbl_agg_sq.c.labels.label("labels"), |
| 5349 | ) |
| 5350 | .join( |
| 5351 | pg_catalog.pg_namespace, |
| 5352 | pg_catalog.pg_namespace.c.oid |
| 5353 | == pg_catalog.pg_type.c.typnamespace, |
| 5354 | ) |
| 5355 | .outerjoin( |
| 5356 | lbl_agg_sq, pg_catalog.pg_type.c.oid == lbl_agg_sq.c.enumtypid |
| 5357 | ) |
| 5358 | .where(pg_catalog.pg_type.c.typtype == "e") |
| 5359 | .order_by( |
| 5360 | pg_catalog.pg_namespace.c.nspname, pg_catalog.pg_type.c.typname |
| 5361 | ) |
| 5362 | ) |
| 5363 | |
| 5364 | return self._pg_type_filter_schema(query, schema) |
| 5365 | |
| 5366 | @reflection.cache |
| 5367 | def _load_enums(self, connection, schema=None, **kw): |
no test coverage detected