pgadmin4/web/pgadmin/misc/templates/sqlautocomplete/sql/default/columns.sql

44 lines
1.6 KiB
SQL

{# SQL query for getting columns #}
{% if object_name == 'table' %}
SELECT nsp.nspname schema_name,
cls.relname table_name,
att.attname column_name,
att.atttypid::regtype::text type_name,
att.atthasdef AS has_default,
pg_get_expr(def.adbin, def.adrelid) as default
FROM pg_catalog.pg_attribute att
INNER JOIN pg_catalog.pg_class cls
ON att.attrelid = cls.oid
INNER JOIN pg_catalog.pg_namespace nsp
ON cls.relnamespace = nsp.oid
LEFT OUTER JOIN pg_catalog.pg_attrdef def
ON def.adrelid = att.attrelid
AND def.adnum = att.attnum
WHERE nsp.nspname IN ({{schema_names}})
AND cls.relkind = ANY(array['r', 'p'])
AND NOT att.attisdropped
AND att.attnum > 0
ORDER BY 1, 2, att.attnum
{% endif %}
{% if object_name == 'view' %}
SELECT nsp.nspname schema_name,
cls.relname table_name,
att.attname column_name,
att.atttypid::regtype::text type_name,
att.atthasdef AS has_default,
pg_get_expr(def.adbin, def.adrelid) as default
FROM pg_catalog.pg_attribute att
INNER JOIN pg_catalog.pg_class cls
ON att.attrelid = cls.oid
INNER JOIN pg_catalog.pg_namespace nsp
ON cls.relnamespace = nsp.oid
LEFT OUTER JOIN pg_catalog.pg_attrdef def
ON def.adrelid = att.attrelid
AND def.adnum = att.attnum
WHERE nsp.nspname IN ({{schema_names}})
AND cls.relkind = ANY(array['v', 'm'])
AND NOT att.attisdropped
AND att.attnum > 0
ORDER BY 1, 2, att.attnum
{% endif %}