MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / _domain_query

Method _domain_query

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

Source from the content-addressed store, hash-verified

5531
5532 @lru_cache()
5533 def _domain_query(self, schema):
5534 con_sq = (
5535 select(
5536 pg_catalog.pg_constraint.c.contypid,
5537 sql.func.array_agg(
5538 pg_catalog.pg_get_constraintdef(
5539 pg_catalog.pg_constraint.c.oid, True
5540 )
5541 ).label("condefs"),
5542 sql.func.array_agg(
5543 # NOTE: cast since some postgresql derivatives may
5544 # not support array_agg on the name type
5545 pg_catalog.pg_constraint.c.conname.cast(TEXT)
5546 ).label("connames"),
5547 )
5548 # The domain this constraint is on; zero if not a domain constraint
5549 .where(pg_catalog.pg_constraint.c.contypid != 0)
5550 .group_by(pg_catalog.pg_constraint.c.contypid)
5551 .subquery("domain_constraints")
5552 )
5553
5554 query = (
5555 select(
5556 pg_catalog.pg_type.c.typname.label("name"),
5557 pg_catalog.format_type(
5558 pg_catalog.pg_type.c.typbasetype,
5559 pg_catalog.pg_type.c.typtypmod,
5560 ).label("attype"),
5561 (~pg_catalog.pg_type.c.typnotnull).label("nullable"),
5562 pg_catalog.pg_type.c.typdefault.label("default"),
5563 pg_catalog.pg_type_is_visible(pg_catalog.pg_type.c.oid).label(
5564 "visible"
5565 ),
5566 pg_catalog.pg_namespace.c.nspname.label("schema"),
5567 con_sq.c.condefs,
5568 con_sq.c.connames,
5569 pg_catalog.pg_collation.c.collname,
5570 )
5571 .join(
5572 pg_catalog.pg_namespace,
5573 pg_catalog.pg_namespace.c.oid
5574 == pg_catalog.pg_type.c.typnamespace,
5575 )
5576 .outerjoin(
5577 pg_catalog.pg_collation,
5578 pg_catalog.pg_type.c.typcollation
5579 == pg_catalog.pg_collation.c.oid,
5580 )
5581 .outerjoin(
5582 con_sq,
5583 pg_catalog.pg_type.c.oid == con_sq.c.contypid,
5584 )
5585 .where(pg_catalog.pg_type.c.typtype == "d")
5586 .order_by(
5587 pg_catalog.pg_namespace.c.nspname, pg_catalog.pg_type.c.typname
5588 )
5589 )
5590 return self._pg_type_filter_schema(query, schema)

Callers 2

_load_domainsMethod · 0.95
init_classMethod · 0.95

Calls 12

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

Tested by

no test coverage detected