diff options
author | randomdan <randomdan@localhost> | 2014-04-03 12:12:30 +0000 |
---|---|---|
committer | randomdan <randomdan@localhost> | 2014-04-03 12:12:30 +0000 |
commit | 1f9913204ab56c9df50ffcbdb8b0ebda1d9cef52 (patch) | |
tree | 3276265e67be11e521f0906a4a6aa610b8618597 | |
parent | Add missing nav button for small viewports (diff) | |
download | gentoobrowse-1f9913204ab56c9df50ffcbdb8b0ebda1d9cef52.tar.bz2 gentoobrowse-1f9913204ab56c9df50ffcbdb8b0ebda1d9cef52.tar.xz gentoobrowse-1f9913204ab56c9df50ffcbdb8b0ebda1d9cef52.zip |
Copy of schema with new functional FTS indexes
Switch search to use functional FTS indexes
-rw-r--r-- | gentoobrowse/datasources/schema.sql | 2175 | ||||
-rw-r--r-- | gentoobrowse/views/search.xml | 10 |
2 files changed, 2179 insertions, 6 deletions
diff --git a/gentoobrowse/datasources/schema.sql b/gentoobrowse/datasources/schema.sql new file mode 100644 index 0000000..47761fc --- /dev/null +++ b/gentoobrowse/datasources/schema.sql @@ -0,0 +1,2175 @@ +-- +-- PostgreSQL database dump +-- + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SET check_function_bodies = false; +SET client_min_messages = warning; + +-- +-- Name: gentoobrowse; Type: SCHEMA; Schema: -; Owner: gentoo +-- + +CREATE SCHEMA gentoobrowse; + + +ALTER SCHEMA gentoobrowse OWNER TO gentoo; + +SET search_path = gentoobrowse, pg_catalog; + +-- +-- Name: ebuildversion; Type: TYPE; Schema: gentoobrowse; Owner: gentoo +-- + +CREATE TYPE ebuildversion AS ( + ver bigint[], + versuffix character(1), + suffix bigint, + suffixnum bigint, + revision bigint +); + + +ALTER TYPE gentoobrowse.ebuildversion OWNER TO gentoo; + +SET default_tablespace = ''; + +SET default_with_oids = false; + +-- +-- Name: bugs; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE bugs ( + bugid integer NOT NULL, + severity text NOT NULL, + status text NOT NULL, + summary text NOT NULL, + firstseen timestamp without time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE gentoobrowse.bugs OWNER TO gentoo; + +-- +-- Name: TABLE bugs; Type: COMMENT; Schema: gentoobrowse; Owner: gentoo +-- + +COMMENT ON TABLE bugs IS 'Import of Gentoo Bugs bug list from snapshots'; + + +-- +-- Name: bugfts(bugs); Type: FUNCTION; Schema: gentoobrowse; Owner: gentoo +-- + +CREATE FUNCTION bugfts(b bugs) RETURNS tsvector + LANGUAGE plpgsql IMMUTABLE + AS $$ +BEGIN + RETURN TO_TSVECTOR('english', regexp_replace(b.summary, '-[0-9][^ ]*', '', 'g')); +END +$$; + + +ALTER FUNCTION gentoobrowse.bugfts(b bugs) OWNER TO gentoo; + +-- +-- Name: ebuildfilter(text); Type: FUNCTION; Schema: gentoobrowse; Owner: gentoo +-- + +CREATE FUNCTION ebuildfilter(atomspec text) RETURNS SETOF integer + LANGUAGE plpgsql + AS $_$ +declare + op text; + cat text; + pkg text; + ver gentoobrowse.ebuildversion; +begin +if (atomspec like '=%*') then + atomspec = '~' || substr(atomspec, 2, length(atomspec) - 2); +end if; +op = (regexp_matches(atomspec, '^([^a-z]*)'))[1]; +cat = (regexp_matches(atomspec, '^[^a-z]*([^/]+)/'))[1]; +pkg = (regexp_matches(atomspec, '/(.+?)((-[0-9])|$)'))[1]; +ver = ebuildversion_constructor((regexp_matches(atomspec, '-([0-9]+.*)$'))[1]); +return query select ebuildid +from ebuilds e, packages p, categories c +where e.packageid = p.packageid +and p.categoryid = c.categoryid +and p.name = pkg +and c.name = cat +and case + when op = '=' then e.versioninst = ver + when op = '>=' then e.versioninst >= ver + when op = '<=' then e.versioninst <= ver + when op = '<' then e.versioninst < ver + when op = '>' then e.versioninst > ver + when op = '~' then e.versioninst ~ ver + when op = '' then true + else false +end +; +end; +$_$; + + +ALTER FUNCTION gentoobrowse.ebuildfilter(atomspec text) OWNER TO gentoo; + +-- +-- Name: ebuildversion_constructor(text); Type: FUNCTION; Schema: gentoobrowse; Owner: gentoo +-- + +CREATE FUNCTION ebuildversion_constructor(val text) RETURNS ebuildversion + LANGUAGE plpgsql IMMUTABLE + AS $_$ +declare + v ebuildversion; + s text; +begin + v.ver = string_to_array((regexp_matches(val, '^([0-9.]+)'))[1], '.')::bigint[]; + v.versuffix = (regexp_matches(val, '[0-9]([a-z])'))[1]; + v.versuffix = coalesce(v.versuffix, '@'); + s = (regexp_matches(val, '_([a-z]+)'))[1]; + case + when s = 'alpha' then v.suffix = -4; + when s = 'beta' then v.suffix = -3; + when s = 'pre' then v.suffix = -2; + when s = 'rc' then v.suffix = -1; + when s = 'p' then v.suffix = 1; + else v.suffix = 0; + end case; + v.suffixnum = (regexp_matches(val, '_[a-z]+([0-9]+)'))[1]; + v.suffixnum = coalesce(v.suffixnum, 0); + v.revision = (regexp_matches(val, '-r([0-9]+)$'))[1]; + v.revision = coalesce(v.revision, 0); + return v; +end; +$_$; + + +ALTER FUNCTION gentoobrowse.ebuildversion_constructor(val text) OWNER TO gentoo; + +-- +-- Name: ebuildversionrange(ebuildversion, ebuildversion); Type: FUNCTION; Schema: gentoobrowse; Owner: gentoo +-- + +CREATE FUNCTION ebuildversionrange(a ebuildversion, b ebuildversion) RETURNS boolean + LANGUAGE plpgsql + AS $$begin +-- If spec if longer, can't match +if (array_length(a.ver, 1) < array_length(b.ver, 1)) then + return false; +end if; +-- Otherwise, they have to start the same +if (position(array_to_string(b.ver, '.') in array_to_string(a.ver, '.')) != 1) then + return false; +end if; +if (a.ver = b.ver) then + if (a.versuffix != b.versuffix and b.versuffix != '@') then + return false; + end if; + if (a.suffix != b.suffix and b.suffix != 0) then + return false; + end if; + if (a.suffixnum != b.suffixnum and b.suffixnum != 0) then + return false; + end if; + if (a.revision != b.revision and b.revision != 0) then + return false; + end if; + return true; +else + return ((b.versuffix = '@' + and b.suffix = 0 + and b.suffixnum = 0 + and b.revision = 0) or b is null); +end if; +end +$$; + + +ALTER FUNCTION gentoobrowse.ebuildversionrange(a ebuildversion, b ebuildversion) OWNER TO gentoo; + +-- +-- Name: ebuildversiontotext(ebuildversion); Type: FUNCTION; Schema: gentoobrowse; Owner: gentoo +-- + +CREATE FUNCTION ebuildversiontotext(v ebuildversion) RETURNS text + LANGUAGE plpgsql + AS $_$ +declare +str text; +begin +str = array_to_string($1.ver, '.'); +if ($1.versuffix != '@') then + str = str || $1.versuffix; +end if; +if ($1.suffix != 0) then +str = str || ( + case + when $1.suffix = -4 then '_alpha' + when $1.suffix = -3 then '_beta' + when $1.suffix = -2 then '_pre' + when $1.suffix = -1 then '_rc' + when $1.suffix = 1 then '_p' + end ); + str = str || $1.suffixnum; +end if; +if ($1.revision != 0) then + str = str || '-r' || $1.revision; +end if; +return str; +end; +$_$; + + +ALTER FUNCTION gentoobrowse.ebuildversiontotext(v ebuildversion) OWNER TO gentoo; + +-- +-- Name: namedpackages(text); Type: FUNCTION; Schema: gentoobrowse; Owner: gentoo +-- + +CREATE FUNCTION namedpackages(str text) RETURNS text[] + LANGUAGE plpgsql IMMUTABLE + AS $$ +declare + pkgs text[]; + p record; +begin + for p in select regexp_matches(str, '([[:alnum:]]+-[[:alnum:]]+/(?:-?[_[:alpha:]+][[:alnum:]+]+)+)', 'g') as p + loop + pkgs = array_append(pkgs, p.p[1]); + end loop; + return pkgs; +end +$$; + + +ALTER FUNCTION gentoobrowse.namedpackages(str text) OWNER TO gentoo; + +-- +-- Name: packages; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE packages ( + packageid integer NOT NULL, + categoryid integer NOT NULL, + name text NOT NULL, + firstseen timestamp without time zone DEFAULT now() NOT NULL, + description text NOT NULL, + summary text, + maintainer text, + herd text, + metadatadate timestamp without time zone +); + + +ALTER TABLE gentoobrowse.packages OWNER TO gentoo; + +-- +-- Name: TABLE packages; Type: COMMENT; Schema: gentoobrowse; Owner: gentoo +-- + +COMMENT ON TABLE packages IS 'Packages as summarised from their ebuilds'; + + +-- +-- Name: packagefts(packages); Type: FUNCTION; Schema: gentoobrowse; Owner: gentoo +-- + +CREATE FUNCTION packagefts(p packages) RETURNS tsvector + LANGUAGE plpgsql IMMUTABLE + AS $$ +BEGIN + RETURN (SETWEIGHT(TO_TSVECTOR('english', p.name), 'A') || + SETWEIGHT(TO_TSVECTOR('english', p.description), 'B') || + SETWEIGHT(TO_TSVECTOR('english', COALESCE(p.description, '')), 'C')); +END +$$; + + +ALTER FUNCTION gentoobrowse.packagefts(p packages) OWNER TO gentoo; + +-- +-- Name: ~; Type: OPERATOR; Schema: gentoobrowse; Owner: gentoo +-- + +CREATE OPERATOR ~ ( + PROCEDURE = ebuildversionrange, + LEFTARG = ebuildversion, + RIGHTARG = ebuildversion +); + + +ALTER OPERATOR gentoobrowse.~ (ebuildversion, ebuildversion) OWNER TO gentoo; + +-- +-- Name: categories; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE categories ( + categoryid integer NOT NULL, + name text, + summary text, + metadatadate timestamp without time zone +); + + +ALTER TABLE gentoobrowse.categories OWNER TO gentoo; + +-- +-- Name: TABLE categories; Type: COMMENT; Schema: gentoobrowse; Owner: gentoo +-- + +COMMENT ON TABLE categories IS 'Gentoo defined package categories'; + + +-- +-- Name: ebuild_archs; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE ebuild_archs ( + ebuildid integer NOT NULL, + arch text NOT NULL +); + + +ALTER TABLE gentoobrowse.ebuild_archs OWNER TO gentoo; + +-- +-- Name: TABLE ebuild_archs; Type: COMMENT; Schema: gentoobrowse; Owner: gentoo +-- + +COMMENT ON TABLE ebuild_archs IS 'Architectures an ebuild is suitable for'; + + +-- +-- Name: ebuild_deps; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE ebuild_deps ( + ebuildid integer NOT NULL, + packageid integer NOT NULL, + versionspec text NOT NULL, + flags text NOT NULL, + op character varying(4) NOT NULL, + slot text NOT NULL +); + + +ALTER TABLE gentoobrowse.ebuild_deps OWNER TO gentoo; + +-- +-- Name: TABLE ebuild_deps; Type: COMMENT; Schema: gentoobrowse; Owner: gentoo +-- + +COMMENT ON TABLE ebuild_deps IS 'The dependencies of ebuilds (includes blocks, etc)'; + + +-- +-- Name: ebuild_masks; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE ebuild_masks ( + line integer NOT NULL, + setno integer NOT NULL, + ebuildid integer NOT NULL +); + + +ALTER TABLE gentoobrowse.ebuild_masks OWNER TO gentoo; + +-- +-- Name: ebuild_rdeps; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE ebuild_rdeps ( + ebuildid integer NOT NULL, + packageid integer NOT NULL, + versionspec text NOT NULL, + flags text NOT NULL, + op character varying(4) NOT NULL, + slot text NOT NULL +); + + +ALTER TABLE gentoobrowse.ebuild_rdeps OWNER TO gentoo; + +-- +-- Name: ebuild_uses; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE ebuild_uses ( + ebuildid integer NOT NULL, + use text NOT NULL +); + + +ALTER TABLE gentoobrowse.ebuild_uses OWNER TO gentoo; + +-- +-- Name: TABLE ebuild_uses; Type: COMMENT; Schema: gentoobrowse; Owner: gentoo +-- + +COMMENT ON TABLE ebuild_uses IS 'Use flags affecting ebuilds'; + + +-- +-- Name: ebuilds; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE ebuilds ( + ebuildid integer NOT NULL, + packageid integer NOT NULL, + version text NOT NULL, + versioninst ebuildversion NOT NULL, + slot text NOT NULL, + license text, + firstseen timestamp without time zone NOT NULL, + moddate timestamp without time zone NOT NULL +); + + +ALTER TABLE gentoobrowse.ebuilds OWNER TO gentoo; + +-- +-- Name: TABLE ebuilds; Type: COMMENT; Schema: gentoobrowse; Owner: gentoo +-- + +COMMENT ON TABLE ebuilds IS 'Ebuilds :-)'; + + +-- +-- Name: filecache; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE filecache ( + line integer NOT NULL, + content text NOT NULL, + fileid integer NOT NULL +); + + +ALTER TABLE gentoobrowse.filecache OWNER TO gentoo; + +-- +-- Name: files; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE files ( + filename text NOT NULL, + fileid integer NOT NULL, + moddate timestamp without time zone NOT NULL, + firstseen timestamp without time zone DEFAULT now() NOT NULL, + cachedat timestamp without time zone, + filetypeid integer NOT NULL +); + + +ALTER TABLE gentoobrowse.files OWNER TO gentoo; + +-- +-- Name: file_masks; Type: VIEW; Schema: gentoobrowse; Owner: gentoo +-- + +CREATE VIEW file_masks AS + SELECT fc.line, + fc.content + FROM files f, + filecache fc + WHERE (((f.filename = 'package.mask'::text) AND (f.fileid = fc.fileid)) AND (fc.line > 32)); + + +ALTER TABLE gentoobrowse.file_masks OWNER TO gentoo; + +-- +-- Name: file_masks_withset; Type: VIEW; Schema: gentoobrowse; Owner: gentoo +-- + +CREATE VIEW file_masks_withset AS + SELECT o.line, + o.content, + CASE + WHEN (o.content !~~ '#%'::text) THEN ( SELECT max(i.line) AS max + FROM file_masks i + WHERE ((i.line <= o.line) AND (substr(i.content, 1, 1) = '#'::text))) + ELSE ( SELECT (min(i.line) - 1) + FROM file_masks i + WHERE ((i.line >= o.line) AND (substr(i.content, 1, 1) <> '#'::text))) + END AS setno + FROM file_masks o; + + +ALTER TABLE gentoobrowse.file_masks_withset OWNER TO gentoo; + +-- +-- Name: filetypes; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE filetypes ( + filetypeid integer NOT NULL, + description text NOT NULL, + searchroot text, + searchspec text, + content boolean DEFAULT true NOT NULL +); + + +ALTER TABLE gentoobrowse.filetypes OWNER TO gentoo; + +-- +-- Name: TABLE filetypes; Type: COMMENT; Schema: gentoobrowse; Owner: gentoo +-- + +COMMENT ON TABLE filetypes IS 'What kind of file is this?... metadata, changelog, etc'; + + +-- +-- Name: license; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE license ( + name text NOT NULL, + legalbumph text +); + + +ALTER TABLE gentoobrowse.license OWNER TO gentoo; + +-- +-- Name: masksets; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE masksets ( + setno integer NOT NULL, + person text NOT NULL, + email text NOT NULL, + dateadded date NOT NULL, + message text NOT NULL +); + + +ALTER TABLE gentoobrowse.masksets OWNER TO gentoo; + +-- +-- Name: package_bugs; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE package_bugs ( + packageid integer NOT NULL, + bugid integer NOT NULL, + firstseen timestamp without time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE gentoobrowse.package_bugs OWNER TO gentoo; + +-- +-- Name: TABLE package_bugs; Type: COMMENT; Schema: gentoobrowse; Owner: gentoo +-- + +COMMENT ON TABLE package_bugs IS 'Association of bugs to products by bug description'; + + +-- +-- Name: package_changelogs; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE package_changelogs ( + packageid integer NOT NULL, + date date NOT NULL, + n smallint NOT NULL, + person text, + email text, + comment text +); + + +ALTER TABLE gentoobrowse.package_changelogs OWNER TO gentoo; + +-- +-- Name: package_urls; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE package_urls ( + packageid integer NOT NULL, + url text NOT NULL +); + + +ALTER TABLE gentoobrowse.package_urls OWNER TO gentoo; + +-- +-- Name: TABLE package_urls; Type: COMMENT; Schema: gentoobrowse; Owner: gentoo +-- + +COMMENT ON TABLE package_urls IS 'URLs associated with a given package'; + + +-- +-- Name: seq_categoryid; Type: SEQUENCE; Schema: gentoobrowse; Owner: gentoo +-- + +CREATE SEQUENCE seq_categoryid + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE gentoobrowse.seq_categoryid OWNER TO gentoo; + +-- +-- Name: seq_categoryid; Type: SEQUENCE OWNED BY; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER SEQUENCE seq_categoryid OWNED BY categories.categoryid; + + +-- +-- Name: seq_fileid; Type: SEQUENCE; Schema: gentoobrowse; Owner: gentoo +-- + +CREATE SEQUENCE seq_fileid + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE gentoobrowse.seq_fileid OWNER TO gentoo; + +-- +-- Name: seq_fileid; Type: SEQUENCE OWNED BY; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER SEQUENCE seq_fileid OWNED BY files.fileid; + + +-- +-- Name: seq_packageid; Type: SEQUENCE; Schema: gentoobrowse; Owner: gentoo +-- + +CREATE SEQUENCE seq_packageid + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE gentoobrowse.seq_packageid OWNER TO gentoo; + +-- +-- Name: seq_packageid; Type: SEQUENCE OWNED BY; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER SEQUENCE seq_packageid OWNED BY packages.packageid; + + +-- +-- Name: use_global; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE use_global ( + use text NOT NULL, + description text +); + + +ALTER TABLE gentoobrowse.use_global OWNER TO gentoo; + +-- +-- Name: use_group; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE use_group ( + usegroupid integer NOT NULL, + use text NOT NULL, + description text NOT NULL +); + + +ALTER TABLE gentoobrowse.use_group OWNER TO gentoo; + +-- +-- Name: use_groups; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE use_groups ( + usegroupid integer NOT NULL, + name text NOT NULL +); + + +ALTER TABLE gentoobrowse.use_groups OWNER TO gentoo; + +-- +-- Name: use_groups_usegroupid_seq; Type: SEQUENCE; Schema: gentoobrowse; Owner: gentoo +-- + +CREATE SEQUENCE use_groups_usegroupid_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE gentoobrowse.use_groups_usegroupid_seq OWNER TO gentoo; + +-- +-- Name: use_groups_usegroupid_seq; Type: SEQUENCE OWNED BY; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER SEQUENCE use_groups_usegroupid_seq OWNED BY use_groups.usegroupid; + + +-- +-- Name: use_local; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE use_local ( + packageid integer NOT NULL, + use text NOT NULL, + description text +); + + +ALTER TABLE gentoobrowse.use_local OWNER TO gentoo; + +-- +-- Name: user_ebuild_emails; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE user_ebuild_emails ( + userid integer NOT NULL, + ebuildid integer NOT NULL, + sentat timestamp without time zone NOT NULL +); + + +ALTER TABLE gentoobrowse.user_ebuild_emails OWNER TO gentoo; + +-- +-- Name: user_packages; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE user_packages ( + userid integer NOT NULL, + packageid integer NOT NULL, + trackedsince timestamp without time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE gentoobrowse.user_packages OWNER TO gentoo; + +-- +-- Name: TABLE user_packages; Type: COMMENT; Schema: gentoobrowse; Owner: gentoo +-- + +COMMENT ON TABLE user_packages IS 'Lists packages that registered users are interested in'; + + +-- +-- Name: users; Type: TABLE; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE TABLE users ( + userid integer NOT NULL, + username text NOT NULL, + userrealname text NOT NULL, + userpassword text NOT NULL, + useremail text NOT NULL, + verifyguid uuid +); + + +ALTER TABLE gentoobrowse.users OWNER TO gentoo; + +-- +-- Name: TABLE users; Type: COMMENT; Schema: gentoobrowse; Owner: gentoo +-- + +COMMENT ON TABLE users IS 'Registered users'; + + +-- +-- Name: users_userid_seq; Type: SEQUENCE; Schema: gentoobrowse; Owner: gentoo +-- + +CREATE SEQUENCE users_userid_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE gentoobrowse.users_userid_seq OWNER TO gentoo; + +-- +-- Name: users_userid_seq; Type: SEQUENCE OWNED BY; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER SEQUENCE users_userid_seq OWNED BY users.userid; + + +-- +-- Name: categoryid; Type: DEFAULT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY categories ALTER COLUMN categoryid SET DEFAULT nextval('seq_categoryid'::regclass); + + +-- +-- Name: fileid; Type: DEFAULT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY files ALTER COLUMN fileid SET DEFAULT nextval('seq_fileid'::regclass); + + +-- +-- Name: packageid; Type: DEFAULT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY packages ALTER COLUMN packageid SET DEFAULT nextval('seq_packageid'::regclass); + + +-- +-- Name: usegroupid; Type: DEFAULT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY use_groups ALTER COLUMN usegroupid SET DEFAULT nextval('use_groups_usegroupid_seq'::regclass); + + +-- +-- Name: userid; Type: DEFAULT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY users ALTER COLUMN userid SET DEFAULT nextval('users_userid_seq'::regclass); + + +-- +-- Name: license_pkey; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY license + ADD CONSTRAINT license_pkey PRIMARY KEY (name); + + +-- +-- Name: pk_bugs; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY bugs + ADD CONSTRAINT pk_bugs PRIMARY KEY (bugid); + + +-- +-- Name: pk_ebuild; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY ebuilds + ADD CONSTRAINT pk_ebuild PRIMARY KEY (ebuildid); + + +-- +-- Name: pk_ebuildarch; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY ebuild_archs + ADD CONSTRAINT pk_ebuildarch PRIMARY KEY (ebuildid, arch); + + +-- +-- Name: pk_ebuilddeps; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY ebuild_deps + ADD CONSTRAINT pk_ebuilddeps PRIMARY KEY (ebuildid, packageid, versionspec, flags, slot, op); + + +-- +-- Name: pk_ebuildrdeps; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY ebuild_rdeps + ADD CONSTRAINT pk_ebuildrdeps PRIMARY KEY (ebuildid, packageid, versionspec, flags, slot, op); + + +-- +-- Name: pk_ebuilduses; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY ebuild_uses + ADD CONSTRAINT pk_ebuilduses PRIMARY KEY (ebuildid, use); + + +-- +-- Name: pk_filecache; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY filecache + ADD CONSTRAINT pk_filecache PRIMARY KEY (fileid, line); + + +-- +-- Name: pk_fileclass; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY filetypes + ADD CONSTRAINT pk_fileclass PRIMARY KEY (filetypeid); + + +-- +-- Name: pk_files; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY files + ADD CONSTRAINT pk_files PRIMARY KEY (fileid); + + +-- +-- Name: pk_package_changelogs; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY package_changelogs + ADD CONSTRAINT pk_package_changelogs PRIMARY KEY (packageid, date, n); + + +-- +-- Name: pk_packagebugs; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY package_bugs + ADD CONSTRAINT pk_packagebugs PRIMARY KEY (packageid, bugid); + + +-- +-- Name: pk_packagemasks; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY ebuild_masks + ADD CONSTRAINT pk_packagemasks PRIMARY KEY (ebuildid, setno, line); + + +-- +-- Name: pk_packagemasksets; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY masksets + ADD CONSTRAINT pk_packagemasksets PRIMARY KEY (setno); + + +-- +-- Name: pk_packages; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY packages + ADD CONSTRAINT pk_packages PRIMARY KEY (packageid); + + +-- +-- Name: pk_pkggroup; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY categories + ADD CONSTRAINT pk_pkggroup PRIMARY KEY (categoryid); + + +-- +-- Name: pk_pkgurls; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY package_urls + ADD CONSTRAINT pk_pkgurls PRIMARY KEY (packageid, url); + + +-- +-- Name: pk_usegroup; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY use_groups + ADD CONSTRAINT pk_usegroup PRIMARY KEY (usegroupid); + + +-- +-- Name: pk_userebuildemails; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY user_ebuild_emails + ADD CONSTRAINT pk_userebuildemails PRIMARY KEY (userid, ebuildid); + + +-- +-- Name: pk_userpackages; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY user_packages + ADD CONSTRAINT pk_userpackages PRIMARY KEY (userid, packageid); + + +-- +-- Name: pk_users; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY users + ADD CONSTRAINT pk_users PRIMARY KEY (userid); + + +-- +-- Name: uni_ebuild_pkgver; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY ebuilds + ADD CONSTRAINT uni_ebuild_pkgver UNIQUE (packageid, version); + + +-- +-- Name: uni_files_filename; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY files + ADD CONSTRAINT uni_files_filename UNIQUE (filename); + + +-- +-- Name: uni_pkg_name; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY packages + ADD CONSTRAINT uni_pkg_name UNIQUE (categoryid, name); + + +-- +-- Name: uni_pkggroup_group; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY categories + ADD CONSTRAINT uni_pkggroup_group UNIQUE (name); + + +-- +-- Name: uni_useremail; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY users + ADD CONSTRAINT uni_useremail UNIQUE (useremail); + + +-- +-- Name: uni_username; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY users + ADD CONSTRAINT uni_username UNIQUE (username); + + +-- +-- Name: use_global_pkey; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY use_global + ADD CONSTRAINT use_global_pkey PRIMARY KEY (use); + + +-- +-- Name: use_group_pkey; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY use_group + ADD CONSTRAINT use_group_pkey PRIMARY KEY (usegroupid, use); + + +-- +-- Name: use_local_pkey; Type: CONSTRAINT; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +ALTER TABLE ONLY use_local + ADD CONSTRAINT use_local_pkey PRIMARY KEY (packageid, use); + + +-- +-- Name: idx_bug_fts; Type: INDEX; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE INDEX idx_bug_fts ON bugs USING gin (bugfts(bugs.*)); + + +-- +-- Name: idx_bugs_firstseen; Type: INDEX; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE INDEX idx_bugs_firstseen ON bugs USING btree (firstseen DESC); + + +-- +-- Name: idx_bugs_summarypackages; Type: INDEX; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE INDEX idx_bugs_summarypackages ON bugs USING gin (namedpackages(summary)); + + +-- +-- Name: idx_ebuilddeps_package; Type: INDEX; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE INDEX idx_ebuilddeps_package ON ebuild_deps USING btree (packageid); + + +-- +-- Name: idx_ebuildrdeps_package; Type: INDEX; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE INDEX idx_ebuildrdeps_package ON ebuild_rdeps USING btree (packageid); + + +-- +-- Name: idx_ebuilds_firstseen; Type: INDEX; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE INDEX idx_ebuilds_firstseen ON ebuilds USING btree (firstseen); + + +-- +-- Name: idx_ebuilduses_use; Type: INDEX; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE INDEX idx_ebuilduses_use ON ebuild_uses USING btree (use); + + +-- +-- Name: idx_filecache_line; Type: INDEX; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE INDEX idx_filecache_line ON filecache USING btree (line); + +ALTER TABLE filecache CLUSTER ON idx_filecache_line; + + +-- +-- Name: idx_package_name; Type: INDEX; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE INDEX idx_package_name ON packages USING btree (name); + + +-- +-- Name: idx_packagebugs_bug; Type: INDEX; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE INDEX idx_packagebugs_bug ON package_bugs USING btree (bugid); + + +-- +-- Name: idx_packages_fts; Type: INDEX; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE INDEX idx_packages_fts ON packages USING gin (packagefts(packages.*)); + + +-- +-- Name: idx_packages_herd; Type: INDEX; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE INDEX idx_packages_herd ON packages USING btree (herd); + + +-- +-- Name: idx_uselocal_use; Type: INDEX; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE INDEX idx_uselocal_use ON use_local USING btree (use); + + +-- +-- Name: idx_userpackages_package; Type: INDEX; Schema: gentoobrowse; Owner: gentoo; Tablespace: +-- + +CREATE INDEX idx_userpackages_package ON user_packages USING btree (packageid); + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- + + + +-- +-- Name: fk_ebuild_pkg; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY ebuilds + ADD CONSTRAINT fk_ebuild_pkg FOREIGN KEY (packageid) REFERENCES packages(packageid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: fk_ebuildarch_file; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY ebuild_archs + ADD CONSTRAINT fk_ebuildarch_file FOREIGN KEY (ebuildid) REFERENCES ebuilds(ebuildid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: fk_ebuilddeps_ebuild; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY ebuild_deps + ADD CONSTRAINT fk_ebuilddeps_ebuild FOREIGN KEY (ebuildid) REFERENCES ebuilds(ebuildid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: fk_ebuilddeps_pkg; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY ebuild_deps + ADD CONSTRAINT fk_ebuilddeps_pkg FOREIGN KEY (packageid) REFERENCES packages(packageid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: fk_ebuildrdeps_ebuild; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY ebuild_rdeps + ADD CONSTRAINT fk_ebuildrdeps_ebuild FOREIGN KEY (ebuildid) REFERENCES ebuilds(ebuildid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: fk_ebuildrdeps_pkg; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY ebuild_rdeps + ADD CONSTRAINT fk_ebuildrdeps_pkg FOREIGN KEY (packageid) REFERENCES packages(packageid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: fk_ebuilduses_file; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY ebuild_uses + ADD CONSTRAINT fk_ebuilduses_file FOREIGN KEY (ebuildid) REFERENCES ebuilds(ebuildid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: fk_filecache_fileid; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY filecache + ADD CONSTRAINT fk_filecache_fileid FOREIGN KEY (fileid) REFERENCES files(fileid) ON DELETE CASCADE; + + +-- +-- Name: fk_files_type; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY files + ADD CONSTRAINT fk_files_type FOREIGN KEY (filetypeid) REFERENCES filetypes(filetypeid) ON UPDATE CASCADE; + + +-- +-- Name: fk_packagebugs_bug; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY package_bugs + ADD CONSTRAINT fk_packagebugs_bug FOREIGN KEY (bugid) REFERENCES bugs(bugid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: fk_packagebugs_package; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY package_bugs + ADD CONSTRAINT fk_packagebugs_package FOREIGN KEY (packageid) REFERENCES packages(packageid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: fk_packagechangelogs_package; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY package_changelogs + ADD CONSTRAINT fk_packagechangelogs_package FOREIGN KEY (packageid) REFERENCES packages(packageid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: fk_packageurls_package; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY package_urls + ADD CONSTRAINT fk_packageurls_package FOREIGN KEY (packageid) REFERENCES packages(packageid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: fk_pkg_grp; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY packages + ADD CONSTRAINT fk_pkg_grp FOREIGN KEY (categoryid) REFERENCES categories(categoryid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: fk_pkgurls_pkg; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY package_urls + ADD CONSTRAINT fk_pkgurls_pkg FOREIGN KEY (packageid) REFERENCES packages(packageid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: fk_usegroup_groupid; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY use_group + ADD CONSTRAINT fk_usegroup_groupid FOREIGN KEY (usegroupid) REFERENCES use_groups(usegroupid) ON DELETE CASCADE; + + +-- +-- Name: fk_uselocal_package; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY use_local + ADD CONSTRAINT fk_uselocal_package FOREIGN KEY (packageid) REFERENCES packages(packageid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: fk_userebuildemails_ebuild; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY user_ebuild_emails + ADD CONSTRAINT fk_userebuildemails_ebuild FOREIGN KEY (ebuildid) REFERENCES ebuilds(ebuildid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: fk_userebuildemails_user; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY user_ebuild_emails + ADD CONSTRAINT fk_userebuildemails_user FOREIGN KEY (userid) REFERENCES users(userid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: fk_userpackage_package; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY user_packages + ADD CONSTRAINT fk_userpackage_package FOREIGN KEY (packageid) REFERENCES packages(packageid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: fk_userpackage_user; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY user_packages + ADD CONSTRAINT fk_userpackage_user FOREIGN KEY (userid) REFERENCES users(userid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: fk_userpackages_package; Type: FK CONSTRAINT; Schema: gentoobrowse; Owner: gentoo +-- + +ALTER TABLE ONLY user_packages + ADD CONSTRAINT fk_userpackages_package FOREIGN KEY (packageid) REFERENCES packages(packageid) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: gentoobrowse; Type: ACL; Schema: -; Owner: gentoo +-- + +REVOKE ALL ON SCHEMA gentoobrowse FROM PUBLIC; +REVOKE ALL ON SCHEMA gentoobrowse FROM gentoo; +GRANT USAGE ON SCHEMA gentoobrowse TO apache; + + +-- +-- Name: bugs; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE bugs FROM PUBLIC; +REVOKE ALL ON TABLE bugs FROM gentoo; +GRANT ALL ON TABLE bugs TO gentoo; +GRANT SELECT ON TABLE bugs TO apache; + + +-- +-- Name: packages; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE packages FROM PUBLIC; +REVOKE ALL ON TABLE packages FROM gentoo; +GRANT ALL ON TABLE packages TO gentoo; +GRANT SELECT ON TABLE packages TO apache; + + +-- +-- Name: categories; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE categories FROM PUBLIC; +REVOKE ALL ON TABLE categories FROM gentoo; +GRANT ALL ON TABLE categories TO gentoo; +GRANT SELECT ON TABLE categories TO apache; + + +-- +-- Name: ebuild_archs; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE ebuild_archs FROM PUBLIC; +REVOKE ALL ON TABLE ebuild_archs FROM gentoo; +GRANT ALL ON TABLE ebuild_archs TO gentoo; +GRANT SELECT ON TABLE ebuild_archs TO apache; + + +-- +-- Name: ebuild_deps; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE ebuild_deps FROM PUBLIC; +REVOKE ALL ON TABLE ebuild_deps FROM gentoo; +GRANT ALL ON TABLE ebuild_deps TO gentoo; +GRANT SELECT ON TABLE ebuild_deps TO apache; + + +-- +-- Name: ebuild_masks; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE ebuild_masks FROM PUBLIC; +REVOKE ALL ON TABLE ebuild_masks FROM gentoo; +GRANT ALL ON TABLE ebuild_masks TO gentoo; +GRANT SELECT ON TABLE ebuild_masks TO apache; + + +-- +-- Name: ebuild_rdeps; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE ebuild_rdeps FROM PUBLIC; +REVOKE ALL ON TABLE ebuild_rdeps FROM gentoo; +GRANT ALL ON TABLE ebuild_rdeps TO gentoo; +GRANT SELECT ON TABLE ebuild_rdeps TO apache; + + +-- +-- Name: ebuild_uses; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE ebuild_uses FROM PUBLIC; +REVOKE ALL ON TABLE ebuild_uses FROM gentoo; +GRANT ALL ON TABLE ebuild_uses TO gentoo; +GRANT SELECT ON TABLE ebuild_uses TO apache; + + +-- +-- Name: ebuilds; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE ebuilds FROM PUBLIC; +REVOKE ALL ON TABLE ebuilds FROM gentoo; +GRANT ALL ON TABLE ebuilds TO gentoo; +GRANT SELECT ON TABLE ebuilds TO apache; + + +-- +-- Name: filecache; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE filecache FROM PUBLIC; +REVOKE ALL ON TABLE filecache FROM gentoo; +GRANT ALL ON TABLE filecache TO gentoo; +GRANT SELECT ON TABLE filecache TO apache; + + +-- +-- Name: files; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE files FROM PUBLIC; +REVOKE ALL ON TABLE files FROM gentoo; +GRANT ALL ON TABLE files TO gentoo; +GRANT SELECT ON TABLE files TO apache; + + +-- +-- Name: file_masks; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE file_masks FROM PUBLIC; +REVOKE ALL ON TABLE file_masks FROM gentoo; +GRANT ALL ON TABLE file_masks TO gentoo; +GRANT SELECT ON TABLE file_masks TO apache; + + +-- +-- Name: file_masks_withset; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE file_masks_withset FROM PUBLIC; +REVOKE ALL ON TABLE file_masks_withset FROM gentoo; +GRANT ALL ON TABLE file_masks_withset TO gentoo; +GRANT SELECT ON TABLE file_masks_withset TO apache; + + +-- +-- Name: filetypes; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE filetypes FROM PUBLIC; +REVOKE ALL ON TABLE filetypes FROM gentoo; +GRANT ALL ON TABLE filetypes TO gentoo; +GRANT SELECT ON TABLE filetypes TO apache; + + +-- +-- Name: masksets; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE masksets FROM PUBLIC; +REVOKE ALL ON TABLE masksets FROM gentoo; +GRANT ALL ON TABLE masksets TO gentoo; +GRANT SELECT ON TABLE masksets TO apache; + + +-- +-- Name: package_bugs; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE package_bugs FROM PUBLIC; +REVOKE ALL ON TABLE package_bugs FROM gentoo; +GRANT ALL ON TABLE package_bugs TO gentoo; +GRANT SELECT ON TABLE package_bugs TO apache; + + +-- +-- Name: package_changelogs; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE package_changelogs FROM PUBLIC; +REVOKE ALL ON TABLE package_changelogs FROM gentoo; +GRANT ALL ON TABLE package_changelogs TO gentoo; +GRANT SELECT ON TABLE package_changelogs TO apache; + + +-- +-- Name: package_urls; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE package_urls FROM PUBLIC; +REVOKE ALL ON TABLE package_urls FROM gentoo; +GRANT ALL ON TABLE package_urls TO gentoo; +GRANT SELECT ON TABLE package_urls TO apache; + + +-- +-- Name: use_global; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE use_global FROM PUBLIC; +REVOKE ALL ON TABLE use_global FROM gentoo; +GRANT ALL ON TABLE use_global TO gentoo; +GRANT SELECT ON TABLE use_global TO apache; + + +-- +-- Name: use_group; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE use_group FROM PUBLIC; +REVOKE ALL ON TABLE use_group FROM gentoo; +GRANT ALL ON TABLE use_group TO gentoo; +GRANT SELECT ON TABLE use_group TO apache; + + +-- +-- Name: use_groups; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE use_groups FROM PUBLIC; +REVOKE ALL ON TABLE use_groups FROM gentoo; +GRANT ALL ON TABLE use_groups TO gentoo; +GRANT SELECT ON TABLE use_groups TO apache; + + +-- +-- Name: use_local; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE use_local FROM PUBLIC; +REVOKE ALL ON TABLE use_local FROM gentoo; +GRANT ALL ON TABLE use_local TO gentoo; +GRANT SELECT ON TABLE use_local TO apache; + + +-- +-- Name: user_ebuild_emails; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE user_ebuild_emails FROM PUBLIC; +REVOKE ALL ON TABLE user_ebuild_emails FROM gentoo; +GRANT ALL ON TABLE user_ebuild_emails TO gentoo; +GRANT SELECT ON TABLE user_ebuild_emails TO apache; + + +-- +-- Name: user_packages; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE user_packages FROM PUBLIC; +REVOKE ALL ON TABLE user_packages FROM gentoo; +GRANT ALL ON TABLE user_packages TO gentoo; +GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE user_packages TO apache; + + +-- +-- Name: users; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON TABLE users FROM PUBLIC; +REVOKE ALL ON TABLE users FROM gentoo; +GRANT ALL ON TABLE users TO gentoo; +GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE users TO apache; + + +-- +-- Name: users_userid_seq; Type: ACL; Schema: gentoobrowse; Owner: gentoo +-- + +REVOKE ALL ON SEQUENCE users_userid_seq FROM PUBLIC; +REVOKE ALL ON SEQUENCE users_userid_seq FROM gentoo; +GRANT ALL ON SEQUENCE users_userid_seq TO gentoo; +GRANT ALL ON SEQUENCE users_userid_seq TO apache; + + +-- +-- PostgreSQL database dump complete +-- + diff --git a/gentoobrowse/views/search.xml b/gentoobrowse/views/search.xml index 347642a..063098d 100644 --- a/gentoobrowse/views/search.xml +++ b/gentoobrowse/views/search.xml @@ -5,14 +5,12 @@ <sql> select c.name as catname, p.name as pkgname, description <filter name="freeText">, - ts_rank((setweight(to_tsvector('english', p.name), 'A') || setweight(to_tsvector('english', p.description), 'B')), - plainto_tsquery('english', <param name="criteria" />)) as rank + ts_rank(packagefts(p), plainto_tsquery('english', <param name="criteria" />)) as rank </filter> from packages p, categories c where p.categoryid = c.categoryid <filter name="freeText"> - and (setweight(to_tsvector('english', p.name), 'A') || setweight(to_tsvector('english', p.description), 'B')) - @@ plainto_tsquery('english', <param name="criteria" />) + and packagefts(p) @@ plainto_tsquery('english', <param name="criteria" />) order by rank desc, p.name </filter> </sql> @@ -21,11 +19,11 @@ <sql> SELECT b.bugid, b.severity, b.status, b.summary, b.firstseen <filter name="freeText">, - ts_rank(to_tsvector('english', regexp_replace(summary, '-[0-9][^ ]*', '', 'g')), plainto_tsquery('english', <param name="criteria" />)) as rank + ts_rank(bugfts(b), plainto_tsquery('english', <param name="criteria" />)) as rank </filter> FROM bugs b <filter name="freeText"> - WHERE to_tsvector('english', summary) @@ plainto_tsquery('english', <param name="criteria" />) + WHERE bugfts(b) @@ plainto_tsquery('english', <param name="criteria" />) ORDER BY rank DESC, bugid DESC </filter> </sql> |