Full text search in schema.
[cocanwiki.git] / cocanwiki.sql
index f919920..82585c9 100644 (file)
@@ -5,8 +5,6 @@
 SET client_encoding = 'UNICODE';
 SET check_function_bodies = false;
 
-SET SESSION AUTHORIZATION 'postgres';
-
 --
 -- TOC entry 4 (OID 2200)
 -- Name: public; Type: ACL; Schema: -; Owner: postgres
@@ -17,12 +15,10 @@ REVOKE ALL ON SCHEMA public FROM postgres;
 GRANT ALL ON SCHEMA public TO PUBLIC;
 
 
-SET SESSION AUTHORIZATION 'rich';
-
 SET search_path = public, pg_catalog;
 
 --
--- TOC entry 5 (OID 536004)
+-- TOC entry 12 (OID 26046)
 -- Name: pages; Type: TABLE; Schema: public; Owner: rich
 --
 
@@ -38,12 +34,13 @@ CREATE TABLE pages (
     logged_ip text,
     redirect text,
     css text,
-    logged_user integer
+    logged_user integer,
+    title_description_fti tsvector NOT NULL
 );
 
 
 --
--- TOC entry 6 (OID 536004)
+-- TOC entry 13 (OID 26046)
 -- Name: pages; Type: ACL; Schema: public; Owner: rich
 --
 
@@ -51,10 +48,8 @@ REVOKE ALL ON TABLE pages FROM PUBLIC;
 GRANT ALL ON TABLE pages TO "www-data";
 
 
-SET SESSION AUTHORIZATION 'rich';
-
 --
--- TOC entry 29 (OID 536004)
+-- TOC entry 65 (OID 26046)
 -- Name: pages_id_seq; Type: ACL; Schema: public; Owner: rich
 --
 
@@ -62,10 +57,8 @@ REVOKE ALL ON TABLE pages_id_seq FROM PUBLIC;
 GRANT ALL ON TABLE pages_id_seq TO "www-data";
 
 
-SET SESSION AUTHORIZATION 'rich';
-
 --
--- TOC entry 7 (OID 536021)
+-- TOC entry 14 (OID 26056)
 -- Name: contents; Type: TABLE; Schema: public; Owner: rich
 --
 
@@ -75,12 +68,13 @@ CREATE TABLE contents (
     ordering integer NOT NULL,
     sectionname text,
     content text NOT NULL,
-    divname text
+    divname text,
+    content_fti tsvector NOT NULL
 );
 
 
 --
--- TOC entry 8 (OID 536021)
+-- TOC entry 15 (OID 26056)
 -- Name: contents; Type: ACL; Schema: public; Owner: rich
 --
 
@@ -88,10 +82,8 @@ REVOKE ALL ON TABLE contents FROM PUBLIC;
 GRANT ALL ON TABLE contents TO "www-data";
 
 
-SET SESSION AUTHORIZATION 'rich';
-
 --
--- TOC entry 30 (OID 536021)
+-- TOC entry 66 (OID 26056)
 -- Name: contents_id_seq; Type: ACL; Schema: public; Owner: rich
 --
 
@@ -99,10 +91,8 @@ REVOKE ALL ON TABLE contents_id_seq FROM PUBLIC;
 GRANT ALL ON TABLE contents_id_seq TO "www-data";
 
 
-SET SESSION AUTHORIZATION 'rich';
-
 --
--- TOC entry 9 (OID 536371)
+-- TOC entry 16 (OID 26064)
 -- Name: hosts; Type: TABLE; Schema: public; Owner: rich
 --
 
@@ -113,12 +103,18 @@ CREATE TABLE hosts (
     edit_anon boolean DEFAULT true NOT NULL,
     create_account_anon boolean DEFAULT true NOT NULL,
     theme_css text,
-    feedback_email text
+    feedback_email text,
+    mailing_list boolean DEFAULT false NOT NULL,
+    is_template boolean DEFAULT false NOT NULL,
+    search_box boolean DEFAULT true NOT NULL,
+    view_anon boolean DEFAULT true NOT NULL,
+    navigation boolean DEFAULT false NOT NULL,
+    powered_by integer
 );
 
 
 --
--- TOC entry 10 (OID 536371)
+-- TOC entry 17 (OID 26064)
 -- Name: hosts; Type: ACL; Schema: public; Owner: rich
 --
 
@@ -126,10 +122,8 @@ REVOKE ALL ON TABLE hosts FROM PUBLIC;
 GRANT ALL ON TABLE hosts TO "www-data";
 
 
-SET SESSION AUTHORIZATION 'rich';
-
 --
--- TOC entry 31 (OID 536371)
+-- TOC entry 67 (OID 26064)
 -- Name: hosts_id_seq; Type: ACL; Schema: public; Owner: rich
 --
 
@@ -137,10 +131,8 @@ REVOKE ALL ON TABLE hosts_id_seq FROM PUBLIC;
 GRANT ALL ON TABLE hosts_id_seq TO "www-data";
 
 
-SET SESSION AUTHORIZATION 'rich';
-
 --
--- TOC entry 11 (OID 536379)
+-- TOC entry 18 (OID 26077)
 -- Name: hostnames; Type: TABLE; Schema: public; Owner: rich
 --
 
@@ -151,7 +143,7 @@ CREATE TABLE hostnames (
 
 
 --
--- TOC entry 12 (OID 536379)
+-- TOC entry 19 (OID 26077)
 -- Name: hostnames; Type: ACL; Schema: public; Owner: rich
 --
 
@@ -159,33 +151,8 @@ REVOKE ALL ON TABLE hostnames FROM PUBLIC;
 GRANT ALL ON TABLE hostnames TO "www-data";
 
 
-SET SESSION AUTHORIZATION 'rich';
-
---
--- TOC entry 13 (OID 536915)
--- Name: email_notify; Type: TABLE; Schema: public; Owner: rich
---
-
-CREATE TABLE email_notify (
-    hostid integer NOT NULL,
-    email text NOT NULL,
-    name text
-);
-
-
---
--- TOC entry 14 (OID 536915)
--- Name: email_notify; Type: ACL; Schema: public; Owner: rich
---
-
-REVOKE ALL ON TABLE email_notify FROM PUBLIC;
-GRANT ALL ON TABLE email_notify TO "www-data";
-
-
-SET SESSION AUTHORIZATION 'rich';
-
 --
--- TOC entry 15 (OID 537151)
+-- TOC entry 20 (OID 26084)
 -- Name: images; Type: TABLE; Schema: public; Owner: rich
 --
 
@@ -211,7 +178,7 @@ CREATE TABLE images (
 
 
 --
--- TOC entry 16 (OID 537151)
+-- TOC entry 21 (OID 26084)
 -- Name: images; Type: ACL; Schema: public; Owner: rich
 --
 
@@ -219,10 +186,8 @@ REVOKE ALL ON TABLE images FROM PUBLIC;
 GRANT ALL ON TABLE images TO "www-data";
 
 
-SET SESSION AUTHORIZATION 'rich';
-
 --
--- TOC entry 32 (OID 537151)
+-- TOC entry 68 (OID 26084)
 -- Name: images_id_seq; Type: ACL; Schema: public; Owner: rich
 --
 
@@ -230,10 +195,8 @@ REVOKE ALL ON TABLE images_id_seq FROM PUBLIC;
 GRANT ALL ON TABLE images_id_seq TO "www-data";
 
 
-SET SESSION AUTHORIZATION 'rich';
-
 --
--- TOC entry 17 (OID 537166)
+-- TOC entry 22 (OID 26093)
 -- Name: files; Type: TABLE; Schema: public; Owner: rich
 --
 
@@ -250,7 +213,7 @@ CREATE TABLE files (
 
 
 --
--- TOC entry 18 (OID 537166)
+-- TOC entry 23 (OID 26093)
 -- Name: files; Type: ACL; Schema: public; Owner: rich
 --
 
@@ -258,10 +221,8 @@ REVOKE ALL ON TABLE files FROM PUBLIC;
 GRANT ALL ON TABLE files TO "www-data";
 
 
-SET SESSION AUTHORIZATION 'rich';
-
 --
--- TOC entry 33 (OID 537166)
+-- TOC entry 69 (OID 26093)
 -- Name: files_id_seq; Type: ACL; Schema: public; Owner: rich
 --
 
@@ -269,10 +230,8 @@ REVOKE ALL ON TABLE files_id_seq FROM PUBLIC;
 GRANT ALL ON TABLE files_id_seq TO "www-data";
 
 
-SET SESSION AUTHORIZATION 'rich';
-
 --
--- TOC entry 19 (OID 540816)
+-- TOC entry 24 (OID 26102)
 -- Name: users; Type: TABLE; Schema: public; Owner: rich
 --
 
@@ -287,12 +246,16 @@ CREATE TABLE users (
     can_manage_users boolean DEFAULT false NOT NULL,
     can_manage_contacts boolean DEFAULT false NOT NULL,
     can_manage_site boolean DEFAULT false NOT NULL,
-    can_edit_global_css boolean DEFAULT false NOT NULL
+    can_edit_global_css boolean DEFAULT false NOT NULL,
+    force_password_change boolean DEFAULT false NOT NULL,
+    can_import_mail boolean DEFAULT false NOT NULL,
+    email_notify boolean DEFAULT true NOT NULL,
+    invite text
 );
 
 
 --
--- TOC entry 20 (OID 540816)
+-- TOC entry 25 (OID 26102)
 -- Name: users; Type: ACL; Schema: public; Owner: rich
 --
 
@@ -300,10 +263,8 @@ REVOKE ALL ON TABLE users FROM PUBLIC;
 GRANT ALL ON TABLE users TO "www-data";
 
 
-SET SESSION AUTHORIZATION 'rich';
-
 --
--- TOC entry 34 (OID 540816)
+-- TOC entry 70 (OID 26102)
 -- Name: users_id_seq; Type: ACL; Schema: public; Owner: rich
 --
 
@@ -311,10 +272,8 @@ REVOKE ALL ON TABLE users_id_seq FROM PUBLIC;
 GRANT ALL ON TABLE users_id_seq TO "www-data";
 
 
-SET SESSION AUTHORIZATION 'rich';
-
 --
--- TOC entry 21 (OID 540832)
+-- TOC entry 26 (OID 26117)
 -- Name: usercookies; Type: TABLE; Schema: public; Owner: rich
 --
 
@@ -325,7 +284,7 @@ CREATE TABLE usercookies (
 
 
 --
--- TOC entry 22 (OID 540832)
+-- TOC entry 27 (OID 26117)
 -- Name: usercookies; Type: ACL; Schema: public; Owner: rich
 --
 
@@ -333,10 +292,8 @@ REVOKE ALL ON TABLE usercookies FROM PUBLIC;
 GRANT ALL ON TABLE usercookies TO "www-data";
 
 
-SET SESSION AUTHORIZATION 'rich';
-
 --
--- TOC entry 23 (OID 540961)
+-- TOC entry 28 (OID 26122)
 -- Name: sitemenu; Type: TABLE; Schema: public; Owner: rich
 --
 
@@ -349,7 +306,7 @@ CREATE TABLE sitemenu (
 
 
 --
--- TOC entry 24 (OID 540961)
+-- TOC entry 29 (OID 26122)
 -- Name: sitemenu; Type: ACL; Schema: public; Owner: rich
 --
 
@@ -357,10 +314,8 @@ REVOKE ALL ON TABLE sitemenu FROM PUBLIC;
 GRANT ALL ON TABLE sitemenu TO "www-data";
 
 
-SET SESSION AUTHORIZATION 'rich';
-
 --
--- TOC entry 25 (OID 542605)
+-- TOC entry 30 (OID 26129)
 -- Name: contacts; Type: TABLE; Schema: public; Owner: rich
 --
 
@@ -373,7 +328,7 @@ CREATE TABLE contacts (
 
 
 --
--- TOC entry 26 (OID 542605)
+-- TOC entry 31 (OID 26129)
 -- Name: contacts; Type: ACL; Schema: public; Owner: rich
 --
 
@@ -381,10 +336,8 @@ REVOKE ALL ON TABLE contacts FROM PUBLIC;
 GRANT ALL ON TABLE contacts TO "www-data";
 
 
-SET SESSION AUTHORIZATION 'rich';
-
 --
--- TOC entry 35 (OID 542605)
+-- TOC entry 71 (OID 26129)
 -- Name: contacts_id_seq; Type: ACL; Schema: public; Owner: rich
 --
 
@@ -392,10 +345,8 @@ REVOKE ALL ON TABLE contacts_id_seq FROM PUBLIC;
 GRANT ALL ON TABLE contacts_id_seq TO "www-data";
 
 
-SET SESSION AUTHORIZATION 'rich';
-
 --
--- TOC entry 27 (OID 542617)
+-- TOC entry 32 (OID 26135)
 -- Name: contact_emails; Type: TABLE; Schema: public; Owner: rich
 --
 
@@ -406,7 +357,7 @@ CREATE TABLE contact_emails (
 
 
 --
--- TOC entry 28 (OID 542617)
+-- TOC entry 33 (OID 26135)
 -- Name: contact_emails; Type: ACL; Schema: public; Owner: rich
 --
 
@@ -414,310 +365,1980 @@ REVOKE ALL ON TABLE contact_emails FROM PUBLIC;
 GRANT ALL ON TABLE contact_emails TO "www-data";
 
 
-SET SESSION AUTHORIZATION 'rich';
+--
+-- TOC entry 34 (OID 26140)
+-- Name: themes; Type: TABLE; Schema: public; Owner: rich
+--
+
+CREATE TABLE themes (
+    theme_css text NOT NULL,
+    name text NOT NULL,
+    description text NOT NULL
+);
+
 
 --
--- TOC entry 40 (OID 536388)
--- Name: hostnames_hostid_name_uq; Type: INDEX; Schema: public; Owner: rich
+-- TOC entry 35 (OID 26140)
+-- Name: themes; Type: ACL; Schema: public; Owner: rich
 --
 
-CREATE UNIQUE INDEX hostnames_hostid_name_uq ON hostnames USING btree (hostid, name);
+REVOKE ALL ON TABLE themes FROM PUBLIC;
+GRANT SELECT ON TABLE themes TO "www-data";
 
 
 --
--- TOC entry 41 (OID 536389)
--- Name: hostnams_name_uq; Type: INDEX; Schema: public; Owner: rich
+-- TOC entry 36 (OID 26145)
+-- Name: server_settings; Type: TABLE; Schema: public; Owner: rich
 --
 
-CREATE UNIQUE INDEX hostnams_name_uq ON hostnames USING btree (name);
+CREATE TABLE server_settings (
+    "version" integer NOT NULL,
+    stats_page text,
+    crash_email text
+);
 
 
 --
--- TOC entry 37 (OID 536419)
--- Name: pages_url_uq; Type: INDEX; Schema: public; Owner: rich
+-- TOC entry 38 (OID 26145)
+-- Name: server_settings; Type: ACL; Schema: public; Owner: rich
 --
 
-CREATE UNIQUE INDEX pages_url_uq ON pages USING btree (hostid, url);
+REVOKE ALL ON TABLE server_settings FROM PUBLIC;
+GRANT SELECT ON TABLE server_settings TO "www-data";
 
 
 --
--- TOC entry 42 (OID 536924)
--- Name: email_notify_email_uq; Type: INDEX; Schema: public; Owner: rich
+-- TOC entry 39 (OID 26150)
+-- Name: page_emails; Type: TABLE; Schema: public; Owner: rich
 --
 
-CREATE UNIQUE INDEX email_notify_email_uq ON email_notify USING btree (hostid, email);
+CREATE TABLE page_emails (
+    hostid integer NOT NULL,
+    url text NOT NULL,
+    email text NOT NULL,
+    entry_date date DEFAULT ('now'::text)::date NOT NULL,
+    last_sent date DEFAULT ('now'::text)::date NOT NULL,
+    pending text,
+    opt_out text NOT NULL
+);
 
 
 --
--- TOC entry 43 (OID 540251)
--- Name: images_name_uq; Type: INDEX; Schema: public; Owner: rich
+-- TOC entry 40 (OID 26150)
+-- Name: page_emails; Type: ACL; Schema: public; Owner: rich
 --
 
-CREATE UNIQUE INDEX images_name_uq ON images USING btree (hostid, name);
+REVOKE ALL ON TABLE page_emails FROM PUBLIC;
+GRANT ALL ON TABLE page_emails TO "www-data";
 
 
 --
--- TOC entry 45 (OID 540252)
--- Name: files_name_uq; Type: INDEX; Schema: public; Owner: rich
+-- TOC entry 41 (OID 26157)
+-- Name: mailing_lists; Type: TABLE; Schema: public; Owner: rich
 --
 
-CREATE UNIQUE INDEX files_name_uq ON files USING btree (hostid, name);
+CREATE TABLE mailing_lists (
+    hostid integer NOT NULL,
+    email text NOT NULL,
+    entry_date date DEFAULT ('now'::text)::date NOT NULL,
+    pending text,
+    opt_out text NOT NULL,
+    name text NOT NULL
+);
 
 
 --
--- TOC entry 48 (OID 540831)
--- Name: users_name_uq; Type: INDEX; Schema: public; Owner: rich
+-- TOC entry 42 (OID 26157)
+-- Name: mailing_lists; Type: ACL; Schema: public; Owner: rich
 --
 
-CREATE UNIQUE INDEX users_name_uq ON users USING btree (hostid, name);
+REVOKE ALL ON TABLE mailing_lists FROM PUBLIC;
+GRANT ALL ON TABLE mailing_lists TO "www-data";
 
 
 --
--- TOC entry 47 (OID 540946)
--- Name: users_id_uq; Type: INDEX; Schema: public; Owner: rich
+-- TOC entry 43 (OID 26163)
+-- Name: links; Type: TABLE; Schema: public; Owner: rich
 --
 
-CREATE UNIQUE INDEX users_id_uq ON users USING btree (hostid, id);
+CREATE TABLE links (
+    hostid integer NOT NULL,
+    from_url text NOT NULL,
+    to_url text NOT NULL,
+    CONSTRAINT links_not_selfref_cn CHECK ((from_url <> to_url))
+);
 
 
 --
--- TOC entry 50 (OID 540970)
--- Name: sitemenu_ordering_uq; Type: INDEX; Schema: public; Owner: rich
+-- TOC entry 44 (OID 26163)
+-- Name: links; Type: ACL; Schema: public; Owner: rich
 --
 
-CREATE UNIQUE INDEX sitemenu_ordering_uq ON sitemenu USING btree (hostid, ordering);
+REVOKE ALL ON TABLE links FROM PUBLIC;
+GRANT ALL ON TABLE links TO "www-data";
 
 
 --
--- TOC entry 51 (OID 540971)
--- Name: sitemenu_url_uq; Type: INDEX; Schema: public; Owner: rich
+-- TOC entry 45 (OID 26171)
+-- Name: templates; Type: TABLE; Schema: public; Owner: rich
 --
 
-CREATE UNIQUE INDEX sitemenu_url_uq ON sitemenu USING btree (hostid, url);
+CREATE TABLE templates (
+    id serial NOT NULL,
+    title_regexp text NOT NULL,
+    url_regexp text NOT NULL,
+    extension text NOT NULL,
+    ordering integer NOT NULL
+);
 
 
 --
--- TOC entry 53 (OID 542626)
--- Name: contact_emails_uq; Type: INDEX; Schema: public; Owner: rich
+-- TOC entry 46 (OID 26171)
+-- Name: templates; Type: ACL; Schema: public; Owner: rich
 --
 
-CREATE UNIQUE INDEX contact_emails_uq ON contact_emails USING btree (contactid, email);
+REVOKE ALL ON TABLE templates FROM PUBLIC;
+GRANT SELECT ON TABLE templates TO "www-data";
 
 
 --
--- TOC entry 36 (OID 536012)
--- Name: pages_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 72 (OID 26171)
+-- Name: templates_id_seq; Type: ACL; Schema: public; Owner: rich
 --
 
-ALTER TABLE ONLY pages
-    ADD CONSTRAINT pages_pkey PRIMARY KEY (id);
+REVOKE ALL ON TABLE templates_id_seq FROM PUBLIC;
 
 
 --
--- TOC entry 38 (OID 536027)
--- Name: contents_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 47 (OID 26177)
+-- Name: recently_visited; Type: TABLE; Schema: public; Owner: rich
 --
 
-ALTER TABLE ONLY contents
-    ADD CONSTRAINT contents_pkey PRIMARY KEY (id);
+CREATE TABLE recently_visited (
+    userid integer NOT NULL,
+    hostid integer NOT NULL,
+    url text NOT NULL,
+    visit_time timestamp without time zone DEFAULT ('now'::text)::timestamp(6) with time zone NOT NULL
+);
 
 
 --
--- TOC entry 39 (OID 536377)
--- Name: hosts_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 48 (OID 26177)
+-- Name: recently_visited; Type: ACL; Schema: public; Owner: rich
 --
 
-ALTER TABLE ONLY hosts
-    ADD CONSTRAINT hosts_pkey PRIMARY KEY (id);
+REVOKE ALL ON TABLE recently_visited FROM PUBLIC;
+GRANT ALL ON TABLE recently_visited TO "www-data";
 
 
 --
--- TOC entry 44 (OID 537158)
--- Name: images_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 49 (OID 26185)
+-- Name: messages; Type: TABLE; Schema: public; Owner: rich
 --
 
-ALTER TABLE ONLY images
-    ADD CONSTRAINT images_pkey PRIMARY KEY (id);
+CREATE TABLE messages (
+    id serial NOT NULL,
+    subject text NOT NULL,
+    inet_message_id text NOT NULL,
+    message_date timestamp with time zone NOT NULL,
+    hostid integer NOT NULL
+);
 
 
 --
--- TOC entry 46 (OID 537173)
--- Name: files_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 50 (OID 26185)
+-- Name: messages; Type: ACL; Schema: public; Owner: rich
 --
 
-ALTER TABLE ONLY files
-    ADD CONSTRAINT files_pkey PRIMARY KEY (id);
+REVOKE ALL ON TABLE messages FROM PUBLIC;
+GRANT ALL ON TABLE messages TO "www-data";
 
 
 --
--- TOC entry 49 (OID 540825)
--- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 73 (OID 26185)
+-- Name: messages_id_seq; Type: ACL; Schema: public; Owner: rich
 --
 
-ALTER TABLE ONLY users
-    ADD CONSTRAINT users_pkey PRIMARY KEY (id);
+REVOKE ALL ON TABLE messages_id_seq FROM PUBLIC;
+GRANT ALL ON TABLE messages_id_seq TO "www-data";
 
 
 --
--- TOC entry 52 (OID 542611)
--- Name: contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 51 (OID 26191)
+-- Name: msg_references; Type: TABLE; Schema: public; Owner: rich
 --
 
-ALTER TABLE ONLY contacts
-    ADD CONSTRAINT contacts_pkey PRIMARY KEY (id);
+CREATE TABLE msg_references (
+    message_id integer NOT NULL,
+    inet_message_id text NOT NULL,
+    ordering integer NOT NULL
+);
 
 
 --
--- TOC entry 58 (OID 536029)
--- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 52 (OID 26191)
+-- Name: msg_references; Type: ACL; Schema: public; Owner: rich
 --
 
-ALTER TABLE ONLY contents
-    ADD CONSTRAINT "$1" FOREIGN KEY (pageid) REFERENCES pages(id);
+REVOKE ALL ON TABLE msg_references FROM PUBLIC;
+GRANT ALL ON TABLE msg_references TO "www-data";
 
 
 --
--- TOC entry 60 (OID 536384)
--- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 53 (OID 26198)
+-- Name: powered_by; Type: TABLE; Schema: public; Owner: rich
 --
 
-ALTER TABLE ONLY hostnames
-    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+CREATE TABLE powered_by (
+    id serial NOT NULL,
+    name text NOT NULL,
+    url text NOT NULL
+);
 
 
 --
--- TOC entry 59 (OID 536394)
--- Name: hosts_hostname_cn; Type: FK CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 54 (OID 26198)
+-- Name: powered_by; Type: ACL; Schema: public; Owner: rich
 --
 
-ALTER TABLE ONLY hosts
-    ADD CONSTRAINT hosts_hostname_cn FOREIGN KEY (id, canonical_hostname) REFERENCES hostnames(hostid, name) DEFERRABLE;
+REVOKE ALL ON TABLE powered_by FROM PUBLIC;
+GRANT SELECT ON TABLE powered_by TO "www-data";
 
 
 --
--- TOC entry 54 (OID 536404)
--- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 55 (OID 26204)
+-- Name: pending_email_changes; Type: TABLE; Schema: public; Owner: rich
 --
 
-ALTER TABLE ONLY pages
-    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+CREATE TABLE pending_email_changes (
+    "key" text NOT NULL,
+    change_date date DEFAULT ('now'::text)::date NOT NULL,
+    userid integer NOT NULL,
+    email text NOT NULL
+);
 
 
 --
--- TOC entry 61 (OID 536920)
--- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 56 (OID 26204)
+-- Name: pending_email_changes; Type: ACL; Schema: public; Owner: rich
 --
 
-ALTER TABLE ONLY email_notify
-    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+REVOKE ALL ON TABLE pending_email_changes FROM PUBLIC;
+GRANT ALL ON TABLE pending_email_changes TO "www-data";
 
 
 --
--- TOC entry 62 (OID 537160)
--- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 57 (OID 50792)
+-- Name: pg_ts_dict; Type: TABLE; Schema: public; Owner: postgres
 --
 
-ALTER TABLE ONLY images
-    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+CREATE TABLE pg_ts_dict (
+    dict_name text NOT NULL,
+    dict_init regprocedure,
+    dict_initoption text,
+    dict_lexize regprocedure NOT NULL,
+    dict_comment text
+);
 
 
 --
--- TOC entry 63 (OID 537175)
--- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 58 (OID 50792)
+-- Name: pg_ts_dict; Type: ACL; Schema: public; Owner: postgres
 --
 
-ALTER TABLE ONLY files
-    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+REVOKE ALL ON TABLE pg_ts_dict FROM PUBLIC;
+GRANT SELECT ON TABLE pg_ts_dict TO rich;
+GRANT SELECT ON TABLE pg_ts_dict TO "www-data";
 
 
 --
--- TOC entry 55 (OID 539155)
--- Name: pages_redirect_cn; Type: FK CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 113 (OID 50799)
+-- Name: lexize(oid, text); Type: FUNCTION; Schema: public; Owner: postgres
 --
 
-ALTER TABLE ONLY pages
-    ADD CONSTRAINT pages_redirect_cn FOREIGN KEY (hostid, redirect) REFERENCES pages(hostid, url) DEFERRABLE;
+CREATE FUNCTION lexize(oid, text) RETURNS text[]
+    AS '$libdir/tsearch2', 'lexize'
+    LANGUAGE c STRICT;
 
 
 --
--- TOC entry 64 (OID 540827)
--- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 114 (OID 50800)
+-- Name: lexize(text, text); Type: FUNCTION; Schema: public; Owner: postgres
 --
 
-ALTER TABLE ONLY users
-    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+CREATE FUNCTION lexize(text, text) RETURNS text[]
+    AS '$libdir/tsearch2', 'lexize_byname'
+    LANGUAGE c STRICT;
 
 
 --
--- TOC entry 65 (OID 540837)
--- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 115 (OID 50801)
+-- Name: lexize(text); Type: FUNCTION; Schema: public; Owner: postgres
 --
 
-ALTER TABLE ONLY usercookies
-    ADD CONSTRAINT "$1" FOREIGN KEY (userid) REFERENCES users(id);
+CREATE FUNCTION lexize(text) RETURNS text[]
+    AS '$libdir/tsearch2', 'lexize_bycurrent'
+    LANGUAGE c STRICT;
 
 
 --
--- TOC entry 56 (OID 540942)
--- Name: $2; Type: FK CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 116 (OID 50802)
+-- Name: set_curdict(integer); Type: FUNCTION; Schema: public; Owner: postgres
 --
 
-ALTER TABLE ONLY pages
-    ADD CONSTRAINT "$2" FOREIGN KEY (logged_user) REFERENCES users(id);
+CREATE FUNCTION set_curdict(integer) RETURNS void
+    AS '$libdir/tsearch2', 'set_curdict'
+    LANGUAGE c STRICT;
 
 
 --
--- TOC entry 57 (OID 540947)
--- Name: pages_user_cn; Type: FK CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 117 (OID 50803)
+-- Name: set_curdict(text); Type: FUNCTION; Schema: public; Owner: postgres
 --
 
-ALTER TABLE ONLY pages
-    ADD CONSTRAINT pages_user_cn FOREIGN KEY (hostid, logged_user) REFERENCES users(hostid, id);
+CREATE FUNCTION set_curdict(text) RETURNS void
+    AS '$libdir/tsearch2', 'set_curdict_byname'
+    LANGUAGE c STRICT;
 
 
 --
--- TOC entry 66 (OID 540966)
--- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 118 (OID 50804)
+-- Name: dex_init(text); Type: FUNCTION; Schema: public; Owner: postgres
 --
 
-ALTER TABLE ONLY sitemenu
-    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+CREATE FUNCTION dex_init(text) RETURNS internal
+    AS '$libdir/tsearch2', 'dex_init'
+    LANGUAGE c;
 
 
 --
--- TOC entry 67 (OID 540972)
--- Name: sitemenu_url_cn; Type: FK CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 119 (OID 50805)
+-- Name: dex_lexize(internal, internal, integer); Type: FUNCTION; Schema: public; Owner: postgres
 --
 
-ALTER TABLE ONLY sitemenu
-    ADD CONSTRAINT sitemenu_url_cn FOREIGN KEY (hostid, url) REFERENCES pages(hostid, url) DEFERRABLE;
+CREATE FUNCTION dex_lexize(internal, internal, integer) RETURNS internal
+    AS '$libdir/tsearch2', 'dex_lexize'
+    LANGUAGE c STRICT;
 
 
 --
--- TOC entry 68 (OID 542613)
--- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 120 (OID 50807)
+-- Name: snb_en_init(text); Type: FUNCTION; Schema: public; Owner: postgres
 --
 
-ALTER TABLE ONLY contacts
-    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+CREATE FUNCTION snb_en_init(text) RETURNS internal
+    AS '$libdir/tsearch2', 'snb_en_init'
+    LANGUAGE c;
 
 
 --
--- TOC entry 69 (OID 542622)
--- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+-- TOC entry 121 (OID 50808)
+-- Name: snb_lexize(internal, internal, integer); Type: FUNCTION; Schema: public; Owner: postgres
 --
 
-ALTER TABLE ONLY contact_emails
-    ADD CONSTRAINT "$1" FOREIGN KEY (contactid) REFERENCES contacts(id);
+CREATE FUNCTION snb_lexize(internal, internal, integer) RETURNS internal
+    AS '$libdir/tsearch2', 'snb_lexize'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 122 (OID 50810)
+-- Name: snb_ru_init(text); Type: FUNCTION; Schema: public; Owner: postgres
+--
 
+CREATE FUNCTION snb_ru_init(text) RETURNS internal
+    AS '$libdir/tsearch2', 'snb_ru_init'
+    LANGUAGE c;
 
-SET SESSION AUTHORIZATION 'postgres';
 
 --
--- TOC entry 3 (OID 2200)
--- Name: SCHEMA public; Type: COMMENT; Schema: -; Owner: postgres
+-- TOC entry 123 (OID 50812)
+-- Name: spell_init(text); Type: FUNCTION; Schema: public; Owner: postgres
 --
 
-COMMENT ON SCHEMA public IS 'Standard public namespace';
+CREATE FUNCTION spell_init(text) RETURNS internal
+    AS '$libdir/tsearch2', 'spell_init'
+    LANGUAGE c;
+
+
+--
+-- TOC entry 124 (OID 50813)
+-- Name: spell_lexize(internal, internal, integer); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION spell_lexize(internal, internal, integer) RETURNS internal
+    AS '$libdir/tsearch2', 'spell_lexize'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 125 (OID 50815)
+-- Name: syn_init(text); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION syn_init(text) RETURNS internal
+    AS '$libdir/tsearch2', 'syn_init'
+    LANGUAGE c;
+
+
+--
+-- TOC entry 126 (OID 50816)
+-- Name: syn_lexize(internal, internal, integer); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION syn_lexize(internal, internal, integer) RETURNS internal
+    AS '$libdir/tsearch2', 'syn_lexize'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 59 (OID 50818)
+-- Name: pg_ts_parser; Type: TABLE; Schema: public; Owner: postgres
+--
+
+CREATE TABLE pg_ts_parser (
+    prs_name text NOT NULL,
+    prs_start regprocedure NOT NULL,
+    prs_nexttoken regprocedure NOT NULL,
+    prs_end regprocedure NOT NULL,
+    prs_headline regprocedure NOT NULL,
+    prs_lextype regprocedure NOT NULL,
+    prs_comment text
+);
+
+
+--
+-- TOC entry 60 (OID 50818)
+-- Name: pg_ts_parser; Type: ACL; Schema: public; Owner: postgres
+--
+
+REVOKE ALL ON TABLE pg_ts_parser FROM PUBLIC;
+GRANT SELECT ON TABLE pg_ts_parser TO rich;
+GRANT SELECT ON TABLE pg_ts_parser TO "www-data";
+
+
+--
+-- TOC entry 5 (OID 50826)
+-- Name: tokentype; Type: TYPE; Schema: public; Owner: postgres
+--
+
+CREATE TYPE tokentype AS (
+       tokid integer,
+       alias text,
+       descr text
+);
+
+
+--
+-- TOC entry 127 (OID 50827)
+-- Name: token_type(integer); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION token_type(integer) RETURNS SETOF tokentype
+    AS '$libdir/tsearch2', 'token_type'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 128 (OID 50828)
+-- Name: token_type(text); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION token_type(text) RETURNS SETOF tokentype
+    AS '$libdir/tsearch2', 'token_type_byname'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 129 (OID 50829)
+-- Name: token_type(); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION token_type() RETURNS SETOF tokentype
+    AS '$libdir/tsearch2', 'token_type_current'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 130 (OID 50830)
+-- Name: set_curprs(integer); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION set_curprs(integer) RETURNS void
+    AS '$libdir/tsearch2', 'set_curprs'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 131 (OID 50831)
+-- Name: set_curprs(text); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION set_curprs(text) RETURNS void
+    AS '$libdir/tsearch2', 'set_curprs_byname'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 6 (OID 50833)
+-- Name: tokenout; Type: TYPE; Schema: public; Owner: postgres
+--
+
+CREATE TYPE tokenout AS (
+       tokid integer,
+       token text
+);
+
+
+--
+-- TOC entry 132 (OID 50834)
+-- Name: parse(oid, text); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION parse(oid, text) RETURNS SETOF tokenout
+    AS '$libdir/tsearch2', 'parse'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 133 (OID 50835)
+-- Name: parse(text, text); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION parse(text, text) RETURNS SETOF tokenout
+    AS '$libdir/tsearch2', 'parse_byname'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 134 (OID 50836)
+-- Name: parse(text); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION parse(text) RETURNS SETOF tokenout
+    AS '$libdir/tsearch2', 'parse_current'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 135 (OID 50837)
+-- Name: prsd_start(internal, integer); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION prsd_start(internal, integer) RETURNS internal
+    AS '$libdir/tsearch2', 'prsd_start'
+    LANGUAGE c;
+
+
+--
+-- TOC entry 136 (OID 50838)
+-- Name: prsd_getlexeme(internal, internal, internal); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION prsd_getlexeme(internal, internal, internal) RETURNS integer
+    AS '$libdir/tsearch2', 'prsd_getlexeme'
+    LANGUAGE c;
+
+
+--
+-- TOC entry 137 (OID 50839)
+-- Name: prsd_end(internal); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION prsd_end(internal) RETURNS void
+    AS '$libdir/tsearch2', 'prsd_end'
+    LANGUAGE c;
+
+
+--
+-- TOC entry 138 (OID 50840)
+-- Name: prsd_lextype(internal); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION prsd_lextype(internal) RETURNS internal
+    AS '$libdir/tsearch2', 'prsd_lextype'
+    LANGUAGE c;
+
+
+--
+-- TOC entry 139 (OID 50841)
+-- Name: prsd_headline(internal, internal, internal); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION prsd_headline(internal, internal, internal) RETURNS internal
+    AS '$libdir/tsearch2', 'prsd_headline'
+    LANGUAGE c;
+
+
+--
+-- TOC entry 61 (OID 50843)
+-- Name: pg_ts_cfg; Type: TABLE; Schema: public; Owner: postgres
+--
+
+CREATE TABLE pg_ts_cfg (
+    ts_name text NOT NULL,
+    prs_name text NOT NULL,
+    locale text
+);
+
+
+--
+-- TOC entry 62 (OID 50843)
+-- Name: pg_ts_cfg; Type: ACL; Schema: public; Owner: postgres
+--
+
+REVOKE ALL ON TABLE pg_ts_cfg FROM PUBLIC;
+GRANT SELECT ON TABLE pg_ts_cfg TO rich;
+GRANT SELECT ON TABLE pg_ts_cfg TO "www-data";
+
+
+--
+-- TOC entry 63 (OID 50850)
+-- Name: pg_ts_cfgmap; Type: TABLE; Schema: public; Owner: postgres
+--
+
+CREATE TABLE pg_ts_cfgmap (
+    ts_name text NOT NULL,
+    tok_alias text NOT NULL,
+    dict_name text[]
+);
+
+
+--
+-- TOC entry 64 (OID 50850)
+-- Name: pg_ts_cfgmap; Type: ACL; Schema: public; Owner: postgres
+--
+
+REVOKE ALL ON TABLE pg_ts_cfgmap FROM PUBLIC;
+GRANT SELECT ON TABLE pg_ts_cfgmap TO rich;
+GRANT SELECT ON TABLE pg_ts_cfgmap TO "www-data";
+
+
+--
+-- TOC entry 140 (OID 50857)
+-- Name: set_curcfg(integer); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION set_curcfg(integer) RETURNS void
+    AS '$libdir/tsearch2', 'set_curcfg'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 141 (OID 50858)
+-- Name: set_curcfg(text); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION set_curcfg(text) RETURNS void
+    AS '$libdir/tsearch2', 'set_curcfg_byname'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 142 (OID 50859)
+-- Name: show_curcfg(); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION show_curcfg() RETURNS oid
+    AS '$libdir/tsearch2', 'show_curcfg'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 143 (OID 50921)
+-- Name: tsvector_in(cstring); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION tsvector_in(cstring) RETURNS tsvector
+    AS '$libdir/tsearch2', 'tsvector_in'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 144 (OID 50922)
+-- Name: tsvector_out(tsvector); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION tsvector_out(tsvector) RETURNS cstring
+    AS '$libdir/tsearch2', 'tsvector_out'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 7 (OID 50920)
+-- Name: tsvector; Type: TYPE; Schema: public; Owner: postgres
+--
+
+CREATE TYPE tsvector (
+    INTERNALLENGTH = variable,
+    INPUT = tsvector_in,
+    OUTPUT = tsvector_out,
+    ALIGNMENT = int4,
+    STORAGE = extended
+);
+
+
+--
+-- TOC entry 145 (OID 50924)
+-- Name: length(tsvector); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION length(tsvector) RETURNS integer
+    AS '$libdir/tsearch2', 'tsvector_length'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 146 (OID 50925)
+-- Name: to_tsvector(oid, text); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION to_tsvector(oid, text) RETURNS tsvector
+    AS '$libdir/tsearch2', 'to_tsvector'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 147 (OID 50926)
+-- Name: to_tsvector(text, text); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION to_tsvector(text, text) RETURNS tsvector
+    AS '$libdir/tsearch2', 'to_tsvector_name'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 148 (OID 50927)
+-- Name: to_tsvector(text); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION to_tsvector(text) RETURNS tsvector
+    AS '$libdir/tsearch2', 'to_tsvector_current'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 149 (OID 50928)
+-- Name: strip(tsvector); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION strip(tsvector) RETURNS tsvector
+    AS '$libdir/tsearch2', 'strip'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 150 (OID 50929)
+-- Name: setweight(tsvector, "char"); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION setweight(tsvector, "char") RETURNS tsvector
+    AS '$libdir/tsearch2', 'setweight'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 151 (OID 50930)
+-- Name: concat(tsvector, tsvector); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION concat(tsvector, tsvector) RETURNS tsvector
+    AS '$libdir/tsearch2', 'concat'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 191 (OID 50931)
+-- Name: ||; Type: OPERATOR; Schema: public; Owner: postgres
+--
+
+CREATE OPERATOR || (
+    PROCEDURE = concat,
+    LEFTARG = tsvector,
+    RIGHTARG = tsvector
+);
+
+
+--
+-- TOC entry 152 (OID 50933)
+-- Name: tsquery_in(cstring); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION tsquery_in(cstring) RETURNS tsquery
+    AS '$libdir/tsearch2', 'tsquery_in'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 153 (OID 50934)
+-- Name: tsquery_out(tsquery); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION tsquery_out(tsquery) RETURNS cstring
+    AS '$libdir/tsearch2', 'tsquery_out'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 8 (OID 50932)
+-- Name: tsquery; Type: TYPE; Schema: public; Owner: postgres
+--
+
+CREATE TYPE tsquery (
+    INTERNALLENGTH = variable,
+    INPUT = tsquery_in,
+    OUTPUT = tsquery_out,
+    ALIGNMENT = int4,
+    STORAGE = plain
+);
+
+
+--
+-- TOC entry 154 (OID 50936)
+-- Name: querytree(tsquery); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION querytree(tsquery) RETURNS text
+    AS '$libdir/tsearch2', 'tsquerytree'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 155 (OID 50937)
+-- Name: to_tsquery(oid, text); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION to_tsquery(oid, text) RETURNS tsquery
+    AS '$libdir/tsearch2', 'to_tsquery'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 156 (OID 50938)
+-- Name: to_tsquery(text, text); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION to_tsquery(text, text) RETURNS tsquery
+    AS '$libdir/tsearch2', 'to_tsquery_name'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 157 (OID 50939)
+-- Name: to_tsquery(text); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION to_tsquery(text) RETURNS tsquery
+    AS '$libdir/tsearch2', 'to_tsquery_current'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 158 (OID 50940)
+-- Name: exectsq(tsvector, tsquery); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION exectsq(tsvector, tsquery) RETURNS boolean
+    AS '$libdir/tsearch2', 'exectsq'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 160 (OID 50941)
+-- Name: rexectsq(tsquery, tsvector); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION rexectsq(tsquery, tsvector) RETURNS boolean
+    AS '$libdir/tsearch2', 'rexectsq'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 193 (OID 50942)
+-- Name: @@; Type: OPERATOR; Schema: public; Owner: postgres
+--
+
+CREATE OPERATOR @@ (
+    PROCEDURE = rexectsq,
+    LEFTARG = tsquery,
+    RIGHTARG = tsvector,
+    COMMUTATOR = @@,
+    RESTRICT = contsel,
+    JOIN = contjoinsel
+);
+
+
+--
+-- TOC entry 192 (OID 50943)
+-- Name: @@; Type: OPERATOR; Schema: public; Owner: postgres
+--
+
+CREATE OPERATOR @@ (
+    PROCEDURE = exectsq,
+    LEFTARG = tsvector,
+    RIGHTARG = tsquery,
+    COMMUTATOR = @@,
+    RESTRICT = contsel,
+    JOIN = contjoinsel
+);
+
+
+--
+-- TOC entry 162 (OID 50944)
+-- Name: tsearch2(); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION tsearch2() RETURNS "trigger"
+    AS '$libdir/tsearch2', 'tsearch2'
+    LANGUAGE c;
+
+
+--
+-- TOC entry 163 (OID 50945)
+-- Name: rank(real[], tsvector, tsquery); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION rank(real[], tsvector, tsquery) RETURNS real
+    AS '$libdir/tsearch2', 'rank'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 164 (OID 50946)
+-- Name: rank(real[], tsvector, tsquery, integer); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION rank(real[], tsvector, tsquery, integer) RETURNS real
+    AS '$libdir/tsearch2', 'rank'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 165 (OID 50947)
+-- Name: rank(tsvector, tsquery); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION rank(tsvector, tsquery) RETURNS real
+    AS '$libdir/tsearch2', 'rank_def'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 166 (OID 50948)
+-- Name: rank(tsvector, tsquery, integer); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION rank(tsvector, tsquery, integer) RETURNS real
+    AS '$libdir/tsearch2', 'rank_def'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 167 (OID 50949)
+-- Name: rank_cd(integer, tsvector, tsquery); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION rank_cd(integer, tsvector, tsquery) RETURNS real
+    AS '$libdir/tsearch2', 'rank_cd'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 168 (OID 50950)
+-- Name: rank_cd(integer, tsvector, tsquery, integer); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION rank_cd(integer, tsvector, tsquery, integer) RETURNS real
+    AS '$libdir/tsearch2', 'rank_cd'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 169 (OID 50951)
+-- Name: rank_cd(tsvector, tsquery); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION rank_cd(tsvector, tsquery) RETURNS real
+    AS '$libdir/tsearch2', 'rank_cd_def'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 170 (OID 50952)
+-- Name: rank_cd(tsvector, tsquery, integer); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION rank_cd(tsvector, tsquery, integer) RETURNS real
+    AS '$libdir/tsearch2', 'rank_cd_def'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 171 (OID 50953)
+-- Name: headline(oid, text, tsquery, text); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION headline(oid, text, tsquery, text) RETURNS text
+    AS '$libdir/tsearch2', 'headline'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 172 (OID 50954)
+-- Name: headline(oid, text, tsquery); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION headline(oid, text, tsquery) RETURNS text
+    AS '$libdir/tsearch2', 'headline'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 173 (OID 50955)
+-- Name: headline(text, text, tsquery, text); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION headline(text, text, tsquery, text) RETURNS text
+    AS '$libdir/tsearch2', 'headline_byname'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 174 (OID 50956)
+-- Name: headline(text, text, tsquery); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION headline(text, text, tsquery) RETURNS text
+    AS '$libdir/tsearch2', 'headline_byname'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 175 (OID 50957)
+-- Name: headline(text, tsquery, text); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION headline(text, tsquery, text) RETURNS text
+    AS '$libdir/tsearch2', 'headline_current'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 176 (OID 50958)
+-- Name: headline(text, tsquery); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION headline(text, tsquery) RETURNS text
+    AS '$libdir/tsearch2', 'headline_current'
+    LANGUAGE c IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 177 (OID 50960)
+-- Name: gtsvector_in(cstring); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION gtsvector_in(cstring) RETURNS gtsvector
+    AS '$libdir/tsearch2', 'gtsvector_in'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 178 (OID 50961)
+-- Name: gtsvector_out(gtsvector); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION gtsvector_out(gtsvector) RETURNS cstring
+    AS '$libdir/tsearch2', 'gtsvector_out'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 9 (OID 50959)
+-- Name: gtsvector; Type: TYPE; Schema: public; Owner: postgres
+--
+
+CREATE TYPE gtsvector (
+    INTERNALLENGTH = variable,
+    INPUT = gtsvector_in,
+    OUTPUT = gtsvector_out,
+    ALIGNMENT = int4,
+    STORAGE = plain
+);
+
+
+--
+-- TOC entry 179 (OID 50963)
+-- Name: gtsvector_consistent(gtsvector, internal, integer); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION gtsvector_consistent(gtsvector, internal, integer) RETURNS boolean
+    AS '$libdir/tsearch2', 'gtsvector_consistent'
+    LANGUAGE c;
+
+
+--
+-- TOC entry 180 (OID 50964)
+-- Name: gtsvector_compress(internal); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION gtsvector_compress(internal) RETURNS internal
+    AS '$libdir/tsearch2', 'gtsvector_compress'
+    LANGUAGE c;
+
+
+--
+-- TOC entry 181 (OID 50965)
+-- Name: gtsvector_decompress(internal); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION gtsvector_decompress(internal) RETURNS internal
+    AS '$libdir/tsearch2', 'gtsvector_decompress'
+    LANGUAGE c;
+
+
+--
+-- TOC entry 182 (OID 50966)
+-- Name: gtsvector_penalty(internal, internal, internal); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION gtsvector_penalty(internal, internal, internal) RETURNS internal
+    AS '$libdir/tsearch2', 'gtsvector_penalty'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 183 (OID 50967)
+-- Name: gtsvector_picksplit(internal, internal); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION gtsvector_picksplit(internal, internal) RETURNS internal
+    AS '$libdir/tsearch2', 'gtsvector_picksplit'
+    LANGUAGE c;
+
+
+--
+-- TOC entry 184 (OID 50968)
+-- Name: gtsvector_union(bytea, internal); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION gtsvector_union(bytea, internal) RETURNS integer[]
+    AS '$libdir/tsearch2', 'gtsvector_union'
+    LANGUAGE c;
+
+
+--
+-- TOC entry 185 (OID 50969)
+-- Name: gtsvector_same(gtsvector, gtsvector, internal); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION gtsvector_same(gtsvector, gtsvector, internal) RETURNS internal
+    AS '$libdir/tsearch2', 'gtsvector_same'
+    LANGUAGE c;
+
+
+--
+-- TOC entry 194 (OID 50970)
+-- Name: gist_tsvector_ops; Type: OPERATOR CLASS; Schema: public; Owner: postgres
+--
+
+CREATE OPERATOR CLASS gist_tsvector_ops
+    DEFAULT FOR TYPE tsvector USING gist AS
+    STORAGE gtsvector ,
+    OPERATOR 1 @@(tsvector,tsquery) RECHECK ,
+    FUNCTION 1 gtsvector_consistent(gtsvector,internal,integer) ,
+    FUNCTION 2 gtsvector_union(bytea,internal) ,
+    FUNCTION 3 gtsvector_compress(internal) ,
+    FUNCTION 4 gtsvector_decompress(internal) ,
+    FUNCTION 5 gtsvector_penalty(internal,internal,internal) ,
+    FUNCTION 6 gtsvector_picksplit(internal,internal) ,
+    FUNCTION 7 gtsvector_same(gtsvector,gtsvector,internal);
+
+
+--
+-- TOC entry 10 (OID 50972)
+-- Name: statinfo; Type: TYPE; Schema: public; Owner: postgres
+--
+
+CREATE TYPE statinfo AS (
+       word text,
+       ndoc integer,
+       nentry integer
+);
+
+
+--
+-- TOC entry 186 (OID 50973)
+-- Name: stat(text); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION stat(text) RETURNS SETOF statinfo
+    AS '$libdir/tsearch2', 'ts_stat'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 187 (OID 50974)
+-- Name: reset_tsearch(); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION reset_tsearch() RETURNS void
+    AS '$libdir/tsearch2', 'reset_tsearch'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 188 (OID 50975)
+-- Name: get_covers(tsvector, tsquery); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION get_covers(tsvector, tsquery) RETURNS text
+    AS '$libdir/tsearch2', 'get_covers'
+    LANGUAGE c STRICT;
+
+
+--
+-- TOC entry 11 (OID 50977)
+-- Name: tsdebug; Type: TYPE; Schema: public; Owner: postgres
+--
+
+CREATE TYPE tsdebug AS (
+       ts_name text,
+       tok_type text,
+       description text,
+       token text,
+       dict_name text[],
+       tsvector tsvector
+);
+
+
+--
+-- TOC entry 189 (OID 50978)
+-- Name: _get_parser_from_curcfg(); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION _get_parser_from_curcfg() RETURNS text
+    AS ' select prs_name from pg_ts_cfg where oid = show_curcfg() '
+    LANGUAGE sql IMMUTABLE STRICT;
+
+
+--
+-- TOC entry 190 (OID 50979)
+-- Name: ts_debug(text); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION ts_debug(text) RETURNS SETOF tsdebug
+    AS '
+select 
+        m.ts_name,
+        t.alias as tok_type,
+        t.descr as description,
+        p.token,
+        m.dict_name,
+        strip(to_tsvector(p.token)) as tsvector
+from
+        parse( _get_parser_from_curcfg(), $1 ) as p,
+        token_type() as t,
+        pg_ts_cfgmap as m,
+        pg_ts_cfg as c
+where
+        t.tokid=p.tokid and
+        t.alias = m.tok_alias and 
+        m.ts_name=c.ts_name and 
+        c.oid=show_curcfg() 
+'
+    LANGUAGE sql STRICT;
+
+
+--
+-- TOC entry 82 (OID 50632)
+-- Name: hostnames_hostid_name_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX hostnames_hostid_name_uq ON hostnames USING btree (hostid, name);
+
+
+--
+-- TOC entry 83 (OID 50633)
+-- Name: hostnams_name_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX hostnams_name_uq ON hostnames USING btree (name);
+
+
+--
+-- TOC entry 78 (OID 50634)
+-- Name: pages_url_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX pages_url_uq ON pages USING btree (hostid, url);
+
+
+--
+-- TOC entry 84 (OID 50635)
+-- Name: images_name_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX images_name_uq ON images USING btree (hostid, name);
+
+
+--
+-- TOC entry 86 (OID 50636)
+-- Name: files_name_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX files_name_uq ON files USING btree (hostid, name);
+
+
+--
+-- TOC entry 89 (OID 50637)
+-- Name: users_name_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX users_name_uq ON users USING btree (hostid, name);
+
+
+--
+-- TOC entry 88 (OID 50638)
+-- Name: users_id_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX users_id_uq ON users USING btree (hostid, id);
+
+
+--
+-- TOC entry 91 (OID 50639)
+-- Name: sitemenu_ordering_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX sitemenu_ordering_uq ON sitemenu USING btree (hostid, ordering);
+
+
+--
+-- TOC entry 92 (OID 50640)
+-- Name: sitemenu_url_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX sitemenu_url_uq ON sitemenu USING btree (hostid, url);
+
+
+--
+-- TOC entry 95 (OID 50641)
+-- Name: contact_emails_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX contact_emails_uq ON contact_emails USING btree (contactid, email);
+
+
+--
+-- TOC entry 96 (OID 50642)
+-- Name: themes_theme_css_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX themes_theme_css_uq ON themes USING btree (theme_css);
+
+
+--
+-- TOC entry 97 (OID 50643)
+-- Name: page_emails_email_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX page_emails_email_uq ON page_emails USING btree (hostid, url, email);
+
+
+--
+-- TOC entry 98 (OID 50644)
+-- Name: mailing_lists_email_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX mailing_lists_email_uq ON mailing_lists USING btree (hostid, email);
+
+
+--
+-- TOC entry 93 (OID 50645)
+-- Name: contacts_name_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX contacts_name_uq ON contacts USING btree (hostid, name);
+
+
+--
+-- TOC entry 99 (OID 50646)
+-- Name: links_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX links_uq ON links USING btree (hostid, from_url, to_url);
+
+
+--
+-- TOC entry 100 (OID 50647)
+-- Name: templates_ext_ord_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX templates_ext_ord_uq ON templates USING btree (extension, ordering);
+
+
+--
+-- TOC entry 102 (OID 50648)
+-- Name: templates_title_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX templates_title_uq ON templates USING btree (title_regexp);
+
+
+--
+-- TOC entry 103 (OID 50649)
+-- Name: templates_url_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX templates_url_uq ON templates USING btree (url_regexp);
+
+
+--
+-- TOC entry 104 (OID 50650)
+-- Name: recently_visited_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX recently_visited_uq ON recently_visited USING btree (userid, hostid, url);
+
+
+--
+-- TOC entry 105 (OID 50651)
+-- Name: messages_inet_message_id_uq; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE UNIQUE INDEX messages_inet_message_id_uq ON messages USING btree (hostid, inet_message_id);
+
+
+--
+-- TOC entry 77 (OID 50652)
+-- Name: pages_url_ix; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE INDEX pages_url_ix ON pages USING btree (url);
+
+
+--
+-- TOC entry 76 (OID 50653)
+-- Name: pages_redirect_ix; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE INDEX pages_redirect_ix ON pages USING btree (redirect);
+
+
+--
+-- TOC entry 74 (OID 50981)
+-- Name: pages_fti_idx; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE INDEX pages_fti_idx ON pages USING gist (title_description_fti);
+
+
+--
+-- TOC entry 79 (OID 53128)
+-- Name: contents_fti_idx; Type: INDEX; Schema: public; Owner: rich
+--
+
+CREATE INDEX contents_fti_idx ON contents USING gist (content_fti);
+
+
+--
+-- TOC entry 75 (OID 50654)
+-- Name: pages_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY pages
+    ADD CONSTRAINT pages_pkey PRIMARY KEY (id);
+
+
+--
+-- TOC entry 80 (OID 50656)
+-- Name: contents_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY contents
+    ADD CONSTRAINT contents_pkey PRIMARY KEY (id);
+
+
+--
+-- TOC entry 81 (OID 50658)
+-- Name: hosts_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY hosts
+    ADD CONSTRAINT hosts_pkey PRIMARY KEY (id);
+
+
+--
+-- TOC entry 85 (OID 50660)
+-- Name: images_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY images
+    ADD CONSTRAINT images_pkey PRIMARY KEY (id);
+
+
+--
+-- TOC entry 87 (OID 50662)
+-- Name: files_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY files
+    ADD CONSTRAINT files_pkey PRIMARY KEY (id);
+
+
+--
+-- TOC entry 90 (OID 50664)
+-- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY users
+    ADD CONSTRAINT users_pkey PRIMARY KEY (id);
+
+
+--
+-- TOC entry 94 (OID 50666)
+-- Name: contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY contacts
+    ADD CONSTRAINT contacts_pkey PRIMARY KEY (id);
+
+
+--
+-- TOC entry 101 (OID 50668)
+-- Name: templates_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY templates
+    ADD CONSTRAINT templates_pkey PRIMARY KEY (id);
+
+
+--
+-- TOC entry 106 (OID 50670)
+-- Name: messages_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY messages
+    ADD CONSTRAINT messages_pkey PRIMARY KEY (id);
+
+
+--
+-- TOC entry 107 (OID 50672)
+-- Name: powered_by_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY powered_by
+    ADD CONSTRAINT powered_by_pkey PRIMARY KEY (id);
+
+
+--
+-- TOC entry 108 (OID 50674)
+-- Name: pending_email_changes_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY pending_email_changes
+    ADD CONSTRAINT pending_email_changes_pkey PRIMARY KEY ("key");
+
+
+--
+-- TOC entry 109 (OID 50797)
+-- Name: pg_ts_dict_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY pg_ts_dict
+    ADD CONSTRAINT pg_ts_dict_pkey PRIMARY KEY (dict_name);
+
+
+--
+-- TOC entry 110 (OID 50823)
+-- Name: pg_ts_parser_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY pg_ts_parser
+    ADD CONSTRAINT pg_ts_parser_pkey PRIMARY KEY (prs_name);
+
+
+--
+-- TOC entry 111 (OID 50848)
+-- Name: pg_ts_cfg_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY pg_ts_cfg
+    ADD CONSTRAINT pg_ts_cfg_pkey PRIMARY KEY (ts_name);
+
+
+--
+-- TOC entry 112 (OID 50855)
+-- Name: pg_ts_cfgmap_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY pg_ts_cfgmap
+    ADD CONSTRAINT pg_ts_cfgmap_pkey PRIMARY KEY (ts_name, tok_alias);
+
+
+--
+-- TOC entry 199 (OID 50676)
+-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY contents
+    ADD CONSTRAINT "$1" FOREIGN KEY (pageid) REFERENCES pages(id);
+
+
+--
+-- TOC entry 203 (OID 50680)
+-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY hostnames
+    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+
+
+--
+-- TOC entry 200 (OID 50684)
+-- Name: hosts_hostname_cn; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY hosts
+    ADD CONSTRAINT hosts_hostname_cn FOREIGN KEY (id, canonical_hostname) REFERENCES hostnames(hostid, name) DEFERRABLE;
+
+
+--
+-- TOC entry 195 (OID 50688)
+-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY pages
+    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+
+
+--
+-- TOC entry 204 (OID 50692)
+-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY images
+    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+
+
+--
+-- TOC entry 205 (OID 50696)
+-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY files
+    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+
+
+--
+-- TOC entry 196 (OID 50700)
+-- Name: pages_redirect_cn; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY pages
+    ADD CONSTRAINT pages_redirect_cn FOREIGN KEY (hostid, redirect) REFERENCES pages(hostid, url) DEFERRABLE;
+
+
+--
+-- TOC entry 206 (OID 50704)
+-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY users
+    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+
+
+--
+-- TOC entry 207 (OID 50708)
+-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY usercookies
+    ADD CONSTRAINT "$1" FOREIGN KEY (userid) REFERENCES users(id);
+
+
+--
+-- TOC entry 197 (OID 50712)
+-- Name: $2; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY pages
+    ADD CONSTRAINT "$2" FOREIGN KEY (logged_user) REFERENCES users(id);
+
+
+--
+-- TOC entry 198 (OID 50716)
+-- Name: pages_user_cn; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY pages
+    ADD CONSTRAINT pages_user_cn FOREIGN KEY (hostid, logged_user) REFERENCES users(hostid, id);
+
+
+--
+-- TOC entry 208 (OID 50720)
+-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY sitemenu
+    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+
+
+--
+-- TOC entry 209 (OID 50724)
+-- Name: sitemenu_url_cn; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY sitemenu
+    ADD CONSTRAINT sitemenu_url_cn FOREIGN KEY (hostid, url) REFERENCES pages(hostid, url) DEFERRABLE;
+
+
+--
+-- TOC entry 210 (OID 50728)
+-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY contacts
+    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+
+
+--
+-- TOC entry 211 (OID 50732)
+-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY contact_emails
+    ADD CONSTRAINT "$1" FOREIGN KEY (contactid) REFERENCES contacts(id);
+
+
+--
+-- TOC entry 201 (OID 50736)
+-- Name: hosts_theme_css_cn; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY hosts
+    ADD CONSTRAINT hosts_theme_css_cn FOREIGN KEY (theme_css) REFERENCES themes(theme_css);
+
+
+--
+-- TOC entry 212 (OID 50740)
+-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY page_emails
+    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+
+
+--
+-- TOC entry 213 (OID 50744)
+-- Name: page_emails_url_cn; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY page_emails
+    ADD CONSTRAINT page_emails_url_cn FOREIGN KEY (hostid, url) REFERENCES pages(hostid, url) DEFERRABLE;
+
+
+--
+-- TOC entry 214 (OID 50748)
+-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY mailing_lists
+    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+
+
+--
+-- TOC entry 215 (OID 50752)
+-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY links
+    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+
+
+--
+-- TOC entry 216 (OID 50756)
+-- Name: links_from_cn; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY links
+    ADD CONSTRAINT links_from_cn FOREIGN KEY (hostid, from_url) REFERENCES pages(hostid, url) DEFERRABLE;
+
+
+--
+-- TOC entry 217 (OID 50760)
+-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY recently_visited
+    ADD CONSTRAINT "$1" FOREIGN KEY (userid) REFERENCES users(id);
+
+
+--
+-- TOC entry 218 (OID 50764)
+-- Name: $2; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY recently_visited
+    ADD CONSTRAINT "$2" FOREIGN KEY (hostid) REFERENCES hosts(id);
+
+
+--
+-- TOC entry 219 (OID 50768)
+-- Name: recently_visited_url_cn; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY recently_visited
+    ADD CONSTRAINT recently_visited_url_cn FOREIGN KEY (hostid, url) REFERENCES pages(hostid, url) DEFERRABLE;
+
+
+--
+-- TOC entry 220 (OID 50772)
+-- Name: recently_visited_userid_cn; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY recently_visited
+    ADD CONSTRAINT recently_visited_userid_cn FOREIGN KEY (hostid, userid) REFERENCES users(hostid, id);
+
+
+--
+-- TOC entry 222 (OID 50776)
+-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY msg_references
+    ADD CONSTRAINT "$1" FOREIGN KEY (message_id) REFERENCES messages(id);
+
+
+--
+-- TOC entry 221 (OID 50780)
+-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY messages
+    ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
+
+
+--
+-- TOC entry 202 (OID 50784)
+-- Name: hosts_powered_by_cn; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY hosts
+    ADD CONSTRAINT hosts_powered_by_cn FOREIGN KEY (powered_by) REFERENCES powered_by(id);
+
+
+--
+-- TOC entry 223 (OID 50788)
+-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
+--
+
+ALTER TABLE ONLY pending_email_changes
+    ADD CONSTRAINT "$1" FOREIGN KEY (userid) REFERENCES users(id);
+
+
+--
+-- TOC entry 224 (OID 50980)
+-- Name: pages_fti_tr; Type: TRIGGER; Schema: public; Owner: rich
+--
+
+CREATE TRIGGER pages_fti_tr
+    BEFORE INSERT OR UPDATE ON pages
+    FOR EACH ROW
+    EXECUTE PROCEDURE tsearch2('title_description_fti', 'title', 'description');
+
+
+--
+-- TOC entry 225 (OID 50983)
+-- Name: contents_fti_tr; Type: TRIGGER; Schema: public; Owner: rich
+--
+
+CREATE TRIGGER contents_fti_tr
+    BEFORE INSERT OR UPDATE ON contents
+    FOR EACH ROW
+    EXECUTE PROCEDURE tsearch2('content_fti', 'sectionname', 'content');
+
+
+--
+-- TOC entry 3 (OID 2200)
+-- Name: SCHEMA public; Type: COMMENT; Schema: -; Owner: postgres
+--
+
+COMMENT ON SCHEMA public IS 'Standard public namespace';
+
+
+--
+-- TOC entry 37 (OID 26145)
+-- Name: TABLE server_settings; Type: COMMENT; Schema: public; Owner: rich
+--
+
+COMMENT ON TABLE server_settings IS 'This table contains global settings for the server.  There should be only one row in this table.  If you modify any setting, you must restart the webserver for the change to take effect.  The "version" field is intended to be some sort of database version, but is currently unused.';
+
+
+--
+-- TOC entry 159 (OID 50940)
+-- Name: FUNCTION exectsq(tsvector, tsquery); Type: COMMENT; Schema: public; Owner: postgres
+--
+
+COMMENT ON FUNCTION exectsq(tsvector, tsquery) IS 'boolean operation with text index';
+
+
+--
+-- TOC entry 161 (OID 50941)
+-- Name: FUNCTION rexectsq(tsquery, tsvector); Type: COMMENT; Schema: public; Owner: postgres
+--
+
+COMMENT ON FUNCTION rexectsq(tsquery, tsvector) IS 'boolean operation with text index';
+
+
+--
+-- PostgreSQL database dump
+--
+
+SET client_encoding = 'UNICODE';
+SET check_function_bodies = false;
+
+SET search_path = public, pg_catalog;
+
+--
+-- Data for TOC entry 3 (OID 26171)
+-- Name: templates; Type: TABLE DATA; Schema: public; Owner: rich
+--
+
+COPY templates (id, title_regexp, url_regexp, extension, ordering) FROM stdin;
+1      ^(199[0-9]|20[0-9][0-9])/(0[1-9]|1[0-2])/(0[1-9]|1[0-9]|2[0-9]|3[01])$  ^(199[0-9]|20[0-9][0-9])/(0[1-9]|1[0-2])/(0[1-9]|1[0-9]|2[0-9]|3[01])$  calendar        10
+3      ^(199[0-9]|20[0-9][0-9])/(0[1-9]|1[0-2])$       ^(199[0-9]|20[0-9][0-9])/(0[1-9]|1[0-2])$       calendar        20
+4      ^(199[0-9]|20[0-9][0-9])$       ^(199[0-9]|20[0-9][0-9])$       calendar        30
+\.
+
+
+--
+-- TOC entry 2 (OID 26169)
+-- Name: templates_id_seq; Type: SEQUENCE SET; Schema: public; Owner: rich
+--
+
+SELECT pg_catalog.setval('templates_id_seq', 4, true);
+
+
+--
+-- PostgreSQL database dump
+--
+
+SET client_encoding = 'UNICODE';
+SET check_function_bodies = false;
+
+SET search_path = public, pg_catalog;
+
+--
+-- Data for TOC entry 2 (OID 26140)
+-- Name: themes; Type: TABLE DATA; Schema: public; Owner: rich
+--
+
+COPY themes (theme_css, name, description) FROM stdin;
+/_css/easyweb.css      Merjis Easy Web Marketing       This is the easy web marketing stylesheet developed by Merjis Ltd.  Please see http://www.merjis.com/
+/_css/basic.css        Basic styles only       Only the most essential styles.  This is a good starting point if you want to completely restyle pages using site-specific CSS.
+\.