- add demo sql file
authorAndreas Scherbaum <andreas@scherbaum.biz>
Thu, 21 Jun 2012 21:30:57 +0000 (23:30 +0200)
committerAndreas Scherbaum <andreas@scherbaum.biz>
Thu, 21 Jun 2012 21:30:57 +0000 (23:30 +0200)
sql/docbot.sql [new file with mode: 0644]

diff --git a/sql/docbot.sql b/sql/docbot.sql
new file mode 100644 (file)
index 0000000..41316f8
--- /dev/null
@@ -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'),
+
+