MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / _enum_query

Method _enum_query

lib/sqlalchemy/dialects/postgresql/base.py:5471–5511  ·  view source on GitHub ↗
(self, schema)

Source from the content-addressed store, hash-verified

5469
5470 @lru_cache()
5471 def _enum_query(self, schema):
5472 lbl_agg_sq = (
5473 select(
5474 pg_catalog.pg_enum.c.enumtypid,
5475 sql.func.array_agg(
5476 aggregate_order_by(
5477 # NOTE: cast since some postgresql derivatives may
5478 # not support array_agg on the name type
5479 pg_catalog.pg_enum.c.enumlabel.cast(TEXT),
5480 pg_catalog.pg_enum.c.enumsortorder,
5481 )
5482 ).label("labels"),
5483 )
5484 .group_by(pg_catalog.pg_enum.c.enumtypid)
5485 .subquery("lbl_agg")
5486 )
5487
5488 query = (
5489 select(
5490 pg_catalog.pg_type.c.typname.label("name"),
5491 pg_catalog.pg_type_is_visible(pg_catalog.pg_type.c.oid).label(
5492 "visible"
5493 ),
5494 pg_catalog.pg_namespace.c.nspname.label("schema"),
5495 lbl_agg_sq.c.labels.label("labels"),
5496 )
5497 .join(
5498 pg_catalog.pg_namespace,
5499 pg_catalog.pg_namespace.c.oid
5500 == pg_catalog.pg_type.c.typnamespace,
5501 )
5502 .outerjoin(
5503 lbl_agg_sq, pg_catalog.pg_type.c.oid == lbl_agg_sq.c.enumtypid
5504 )
5505 .where(pg_catalog.pg_type.c.typtype == "e")
5506 .order_by(
5507 pg_catalog.pg_namespace.c.nspname, pg_catalog.pg_type.c.typname
5508 )
5509 )
5510
5511 return self._pg_type_filter_schema(query, schema)
5512
5513 @reflection.cache
5514 def _load_enums(self, connection, schema=None, **kw):

Callers 2

_load_enumsMethod · 0.95
init_classMethod · 0.95

Calls 12

selectFunction · 0.90
array_aggMethod · 0.80
aggregate_order_byClass · 0.70
subqueryMethod · 0.45
group_byMethod · 0.45
labelMethod · 0.45
castMethod · 0.45
order_byMethod · 0.45
whereMethod · 0.45
outerjoinMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected