Add a view-like public function to commondata #136
This commit is contained in:
42
common-data/metadata.sql
Normal file
42
common-data/metadata.sql
Normal file
@@ -0,0 +1,42 @@
|
||||
CREATE FUNCTION public.metadata()
|
||||
RETURNS TABLE(
|
||||
name text,
|
||||
tabname text,
|
||||
description text,
|
||||
source text,
|
||||
license text,
|
||||
geometry_types text,
|
||||
rows real,
|
||||
size bigint,
|
||||
created_at timestamp with time zone,
|
||||
updated_at timestamp with time zone,
|
||||
category text,
|
||||
image_url text)
|
||||
AS $$
|
||||
SELECT
|
||||
meta_dataset.name,
|
||||
meta_dataset.tabname,
|
||||
meta_dataset.description,
|
||||
meta_dataset.source,
|
||||
meta_dataset.license,
|
||||
meta_dataset.geometry_types,
|
||||
(
|
||||
SELECT reltuples
|
||||
FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
|
||||
WHERE
|
||||
nspname NOT IN ('pg_catalog', 'information_schema')
|
||||
AND relkind='r'
|
||||
AND relname = meta_dataset.tabname
|
||||
) as rows,
|
||||
pg_relation_size(meta_dataset.tabname) size,
|
||||
meta_dataset.created_at,
|
||||
meta_dataset.updated_at,
|
||||
meta_category.name category,
|
||||
meta_category.image_url category_image_url
|
||||
FROM meta_dataset, meta_category
|
||||
WHERE meta_dataset.meta_category_id = meta_category.cartodb_id;
|
||||
$$ LANGUAGE SQL;
|
||||
|
||||
GRANT SELECT ON TABLE meta_dataset TO publicuser;
|
||||
GRANT SELECT ON TABLE meta_category TO publicuser;
|
||||
GRANT EXECUTE ON FUNCTION metadata() TO publicuser;
|
||||
Reference in New Issue
Block a user