graphql-engine/server/src-rsr/catalog_metadata.sql
Vamshi Surabhi 4facb3c780 remove support for query templates (#2560)
query templates is a little known feature that lets you template rql
queries and serve them as rest apis. This is not relevant anymore
given the GraphQL interface and getting rid of it reduces the dev
time when adding features in few subsystems.

This feature has never been used outside hasura's internal projects or
documented or exposed through console and hence can safely be removed.
2019-07-23 19:11:34 +00:00

187 lines
4.6 KiB
SQL

select
json_build_object(
'tables', tables.items,
'relations', relations.items,
'permissions', permissions.items,
'event_triggers', event_triggers.items,
'remote_schemas', remote_schemas.items,
'functions', functions.items,
'foreign_keys', foreign_keys.items,
'allowlist_collections', allowlist.item
)
from
(
select
coalesce(json_agg(
json_build_object(
'table',
json_build_object(
'name', ht.table_name,
'schema', ht.table_schema
),
'system_defined', ht.is_system_defined,
'info', tables.info
)
), '[]') as items
from
hdb_catalog.hdb_table as ht
left outer join (
select
table_schema,
table_name,
json_build_object(
'name',
json_build_object(
'schema', table_schema,
'name', table_name
),
'columns', columns,
'primary_key_columns', primary_key_columns,
'constraints', constraints,
'view_info', view_info
) as info
from
hdb_catalog.hdb_table_info_agg
) as tables on (
tables.table_schema = ht.table_schema
and tables.table_name = ht.table_name
)
) as tables,
(
select
coalesce(
json_agg(
json_build_object(
'table',
json_build_object(
'schema', table_schema,
'name', table_name
),
'rel_name', rel_name,
'rel_type', rel_type,
'def', rel_def :: json,
'comment', comment
)
),
'[]'
) as items
from
hdb_catalog.hdb_relationship
) as relations,
(
select
coalesce(
json_agg(
json_build_object(
'table',
json_build_object(
'schema', table_schema,
'name', table_name
),
'role', role_name,
'perm_type', perm_type,
'def', perm_def :: json,
'comment', comment
)
),
'[]'
) as items
from
hdb_catalog.hdb_permission
) as permissions,
(
select
coalesce(
json_agg(
json_build_object(
'table',
json_build_object(
'schema', schema_name,
'name', table_name
),
'name', name,
'def', configuration :: json
)
),
'[]'
) as items
from
hdb_catalog.event_triggers
) as event_triggers,
(
select
coalesce(
json_agg(
json_build_object(
'name',
name,
'definition', definition :: json,
'comment', comment
)
),
'[]'
) as items
from
hdb_catalog.remote_schemas
) as remote_schemas,
(
select
coalesce(json_agg(q.info), '[]') as items
from
(
select
json_build_object(
'function',
json_build_object(
'schema', hf.function_schema,
'name', hf.function_name
),
'info', function_info
) as info
from
hdb_catalog.hdb_function hf
left outer join
hdb_catalog.hdb_function_info_agg hf_agg on
( hf_agg.function_name = hf.function_name
and hf_agg.function_schema = hf.function_schema
)
) as q
) as functions,
(
select
coalesce(json_agg(foreign_key.info), '[]') as items
from
(
select
json_build_object(
'table',
json_build_object(
'schema', f.table_schema,
'name', f.table_name
),
'ref_table',
json_build_object(
'schema', f.ref_table_table_schema,
'name', f.ref_table
),
'oid', f.constraint_oid,
'constraint', f.constraint_name,
'column_mapping', f.column_mapping
) as info
from
hdb_catalog.hdb_foreign_key_constraint f
left outer join hdb_catalog.hdb_table ht
on ( ht.table_schema = f.table_schema
and ht.table_name = f.table_name
)
) as foreign_key
) as foreign_keys,
(
select
coalesce(json_agg(hqc.collection_defn), '[]') as item
from hdb_catalog.hdb_allowlist ha
left outer join
hdb_catalog.hdb_query_collection hqc
on (hqc.collection_name = ha.collection_name)
) as allowlist