MCPcopy Create free account
hub / github.com/sqlalchemy/sqlalchemy / _domain_query

Method _domain_query

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

Source from the content-addressed store, hash-verified

5384
5385 @lru_cache()
5386 def _domain_query(self, schema):
5387 con_sq = (
5388 select(
5389 pg_catalog.pg_constraint.c.contypid,
5390 sql.func.array_agg(
5391 pg_catalog.pg_get_constraintdef(
5392 pg_catalog.pg_constraint.c.oid, True
5393 )
5394 ).label("condefs"),
5395 sql.func.array_agg(
5396 # NOTE: cast since some postgresql derivatives may
5397 # not support array_agg on the name type
5398 pg_catalog.pg_constraint.c.conname.cast(TEXT)
5399 ).label("connames"),
5400 )
5401 # The domain this constraint is on; zero if not a domain constraint
5402 .where(pg_catalog.pg_constraint.c.contypid != 0)
5403 .group_by(pg_catalog.pg_constraint.c.contypid)
5404 .subquery("domain_constraints")
5405 )
5406
5407 query = (
5408 select(
5409 pg_catalog.pg_type.c.typname.label("name"),
5410 pg_catalog.format_type(
5411 pg_catalog.pg_type.c.typbasetype,
5412 pg_catalog.pg_type.c.typtypmod,
5413 ).label("attype"),
5414 (~pg_catalog.pg_type.c.typnotnull).label("nullable"),
5415 pg_catalog.pg_type.c.typdefault.label("default"),
5416 pg_catalog.pg_type_is_visible(pg_catalog.pg_type.c.oid).label(
5417 "visible"
5418 ),
5419 pg_catalog.pg_namespace.c.nspname.label("schema"),
5420 con_sq.c.condefs,
5421 con_sq.c.connames,
5422 pg_catalog.pg_collation.c.collname,
5423 )
5424 .join(
5425 pg_catalog.pg_namespace,
5426 pg_catalog.pg_namespace.c.oid
5427 == pg_catalog.pg_type.c.typnamespace,
5428 )
5429 .outerjoin(
5430 pg_catalog.pg_collation,
5431 pg_catalog.pg_type.c.typcollation
5432 == pg_catalog.pg_collation.c.oid,
5433 )
5434 .outerjoin(
5435 con_sq,
5436 pg_catalog.pg_type.c.oid == con_sq.c.contypid,
5437 )
5438 .where(pg_catalog.pg_type.c.typtype == "d")
5439 .order_by(
5440 pg_catalog.pg_namespace.c.nspname, pg_catalog.pg_type.c.typname
5441 )
5442 )
5443 return self._pg_type_filter_schema(query, schema)

Callers 1

_load_domainsMethod · 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