--- /dev/null
+-- 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'),
+
+