From 557936be2dbc6c0e2d2b64232628e4870c2a98f2 Mon Sep 17 00:00:00 2001 From: Andreas Scherbaum Date: Thu, 21 Jun 2012 23:30:57 +0200 Subject: [PATCH] - add demo sql file --- sql/docbot.sql | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 sql/docbot.sql diff --git a/sql/docbot.sql b/sql/docbot.sql new file mode 100644 index 0000000..41316f8 --- /dev/null +++ b/sql/docbot.sql @@ -0,0 +1,96 @@ +-- docbot database + +CREATE OR REPLACE LANGUAGE plpgsql; +SET search_path = public, pg_catalog; + +REVOKE ALL ON SCHEMA public FROM PUBLIC; +REVOKE ALL ON SCHEMA public FROM postgres; +GRANT ALL ON SCHEMA public TO postgres; +GRANT ALL ON SCHEMA public TO docbot; +GRANT ALL ON SCHEMA public TO PUBLIC; + + + + +CREATE TABLE docbot_key ( + key TEXT NOT NULL, + kurl INTEGER NOT NULL +); +ALTER TABLE public.docbot_key OWNER TO docbot; +REVOKE ALL ON TABLE docbot_key FROM PUBLIC; +REVOKE ALL ON TABLE docbot_key FROM docbot; +GRANT ALL ON TABLE docbot_key TO docbot; + + + +CREATE TABLE docbot_url ( + id SERIAL NOT NULL PRIMARY KEY, + url TEXT NOT NULL UNIQUE +); +ALTER TABLE public.docbot_url OWNER TO docbot; +CREATE INDEX docbot_key_url_idx ON docbot_key USING btree (kurl); +REVOKE ALL ON TABLE docbot_url FROM PUBLIC; +REVOKE ALL ON TABLE docbot_url FROM docbot; +GRANT ALL ON TABLE docbot_url TO docbot; + + + +CREATE TABLE docbot_user ( + u_nick TEXT NOT NULL PRIMARY KEY, + u_role TEXT NOT NULL, + u_reason TEXT, + CONSTRAINT docbot_user_u_role CHECK ((u_role = ANY (ARRAY['op'::text, 'admin'::text]))) +); +ALTER TABLE public.docbot_user OWNER TO docbot; +REVOKE ALL ON TABLE docbot_user FROM PUBLIC; +REVOKE ALL ON TABLE docbot_user FROM docbot; +GRANT ALL ON TABLE docbot_user TO docbot; + + + + +CREATE VIEW docbot_keylist AS + SELECT docbot_key.key, docbot_url.url FROM docbot_key, docbot_url WHERE (docbot_key.kurl = docbot_url.id); +ALTER TABLE public.docbot_keylist OWNER TO docbot; +REVOKE ALL ON TABLE docbot_keylist FROM PUBLIC; +REVOKE ALL ON TABLE docbot_keylist FROM docbot; +GRANT ALL ON TABLE docbot_keylist TO docbot; + + + +ALTER TABLE ONLY docbot_key + ADD CONSTRAINT "$1" FOREIGN KEY (kurl) REFERENCES docbot_url(id) ON DELETE CASCADE; + + + + + + + + +CREATE FUNCTION has_key(integer, text) RETURNS boolean + LANGUAGE sql + AS $_$select exists (select true from docbot_key where kurl = $1 and key = $2)$_$; +ALTER FUNCTION public.has_key(integer, text) OWNER TO docbot; + + +CREATE FUNCTION has_key_like(integer, text) RETURNS boolean + LANGUAGE sql + AS $_$select exists (select true from docbot_key where kurl = $1 and key like $2)$_$; +ALTER FUNCTION public.has_key_like(integer, text) OWNER TO docbot; + + + + + + +INSERT INTO docbot_user + (u_nick, u_role, u_reason) + VALUES ('ads', 'admin', 'Admin'), + ('davidfetter', 'op', 'Operator'), + ('pjmodos', 'op', 'Operator'), + ('depesz', 'op', 'Operator'), + ('pjmodos', 'op', 'Operator'), + ('pjmodos', 'op', 'Operator'), + + -- 2.39.5