From 4dece40beb0a1b5ac0a7b14e647b9224ede05cd2 Mon Sep 17 00:00:00 2001 From: Rafa de la Torre Date: Tue, 5 May 2015 19:06:53 +0200 Subject: [PATCH 1/5] Add schema of common-data metadata tables #136 pg_dump -U postgres --schema-only --table=meta_dataset cartodb_user_db > meta_dataset.sql pg_dump -U postgres --schema-only --table=meta_category cartodb_user_db > meta_category.sql --- common-data/meta_category.sql | 13 +++++++++++++ common-data/meta_dataset.sql | 21 +++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 common-data/meta_category.sql create mode 100644 common-data/meta_dataset.sql diff --git a/common-data/meta_category.sql b/common-data/meta_category.sql new file mode 100644 index 0000000..8f9622f --- /dev/null +++ b/common-data/meta_category.sql @@ -0,0 +1,13 @@ +-- +-- Name: meta_category; Type: TABLE; Schema: public +-- + +CREATE TABLE meta_category ( + cartodb_id integer NOT NULL, + name text, + created_at timestamp with time zone DEFAULT now() NOT NULL, + updated_at timestamp with time zone DEFAULT now() NOT NULL, + the_geom geometry(Geometry,4326), + the_geom_webmercator geometry(Geometry,3857), + image_url text +); diff --git a/common-data/meta_dataset.sql b/common-data/meta_dataset.sql new file mode 100644 index 0000000..d8becf0 --- /dev/null +++ b/common-data/meta_dataset.sql @@ -0,0 +1,21 @@ +-- +-- Name: meta_dataset; Type: TABLE; Schema: public +-- + +CREATE TABLE meta_dataset ( + cartodb_id integer NOT NULL, + name text, + description text, + created_at timestamp with time zone DEFAULT now() NOT NULL, + updated_at timestamp with time zone DEFAULT now() NOT NULL, + the_geom geometry(Geometry,4326), + the_geom_webmercator geometry(Geometry,3857), + source text, + license text, + meta_category_id integer, + tabname text, + geometry_types text +); + +ALTER TABLE ONLY meta_dataset + ADD CONSTRAINT meta_dataset_meta_category_id_fkey FOREIGN KEY (meta_category_id) REFERENCES meta_category(cartodb_id); From b065edbaeb32a50f1d08a3d3d4e8f8240bc52e96 Mon Sep 17 00:00:00 2001 From: Rafa de la Torre Date: Tue, 5 May 2015 19:50:37 +0200 Subject: [PATCH 2/5] Add a view-like public function to commondata #136 --- common-data/metadata.sql | 42 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 common-data/metadata.sql diff --git a/common-data/metadata.sql b/common-data/metadata.sql new file mode 100644 index 0000000..1dc15be --- /dev/null +++ b/common-data/metadata.sql @@ -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; From fbba289cb0c608453d6dc55f580b396f1c026a07 Mon Sep 17 00:00:00 2001 From: Rafa de la Torre Date: Wed, 6 May 2015 11:30:42 +0200 Subject: [PATCH 3/5] Rename metadata() to cdb_metadata() #136 --- common-data/{metadata.sql => cdb_metadata.sql} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename common-data/{metadata.sql => cdb_metadata.sql} (92%) diff --git a/common-data/metadata.sql b/common-data/cdb_metadata.sql similarity index 92% rename from common-data/metadata.sql rename to common-data/cdb_metadata.sql index 1dc15be..eb5ac46 100644 --- a/common-data/metadata.sql +++ b/common-data/cdb_metadata.sql @@ -1,4 +1,4 @@ -CREATE FUNCTION public.metadata() +CREATE FUNCTION public.cdb_metadata() RETURNS TABLE( name text, tabname text, @@ -39,4 +39,4 @@ $$ 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; +GRANT EXECUTE ON FUNCTION cdb_metadata() TO publicuser; From 79fe8a9be868026418a836401c689755f6ac0f64 Mon Sep 17 00:00:00 2001 From: Rafa de la Torre Date: Wed, 6 May 2015 11:53:42 +0200 Subject: [PATCH 4/5] Rename cdb_metadata() to CDB_CommonDataCatalog() #136 --- common-data/{cdb_metadata.sql => cdb_common_data_listing.sql} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename common-data/{cdb_metadata.sql => cdb_common_data_listing.sql} (91%) diff --git a/common-data/cdb_metadata.sql b/common-data/cdb_common_data_listing.sql similarity index 91% rename from common-data/cdb_metadata.sql rename to common-data/cdb_common_data_listing.sql index eb5ac46..2c0777a 100644 --- a/common-data/cdb_metadata.sql +++ b/common-data/cdb_common_data_listing.sql @@ -1,4 +1,4 @@ -CREATE FUNCTION public.cdb_metadata() +CREATE FUNCTION public.CDB_CommonDataCatalog() RETURNS TABLE( name text, tabname text, @@ -39,4 +39,4 @@ $$ LANGUAGE SQL; GRANT SELECT ON TABLE meta_dataset TO publicuser; GRANT SELECT ON TABLE meta_category TO publicuser; -GRANT EXECUTE ON FUNCTION cdb_metadata() TO publicuser; +GRANT EXECUTE ON FUNCTION CDB_CommonDataCatalog() TO publicuser; From 9fb5b60bc179356a26e2baf7bcf825ece536ae99 Mon Sep 17 00:00:00 2001 From: Rafa de la Torre Date: Wed, 6 May 2015 11:55:06 +0200 Subject: [PATCH 5/5] Rename cdb_metadata() to CDB_CommonDataCatalog() #136 --- .../{cdb_common_data_listing.sql => cdb_common_data_catalog.sql} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename common-data/{cdb_common_data_listing.sql => cdb_common_data_catalog.sql} (100%) diff --git a/common-data/cdb_common_data_listing.sql b/common-data/cdb_common_data_catalog.sql similarity index 100% rename from common-data/cdb_common_data_listing.sql rename to common-data/cdb_common_data_catalog.sql