CREATE DATABASE groupapp;
ALTER DATABASE groupapp OWNER TO uaws;
\c groupapp;
CREATE SEQUENCE public.changeseq
as bigint
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public.changeseq OWNER TO uaws;
CREATE SEQUENCE public.groupchilds_id_seq
as bigint
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public.groupchilds_id_seq OWNER TO uaws;
CREATE TABLE public.groupchilds (
id bigint DEFAULT nextval('public.groupchilds_id_seq'::regclass) NOT NULL,
dn character varying(255) NOT NULL,
whenchanged character varying(30),
parentid bigint NOT NULL,
domain character varying(255)
);
ALTER TABLE public.groupchilds OWNER TO uaws;
CREATE TABLE public.groups (
id bigint NOT NULL,
name character varying(255) NOT NULL,
dn character varying(255),
status character varying(15) NOT NULL,
lastrequesttime timestamp without time zone NOT NULL,
updatedtime timestamp without time zone,
createdtime timestamp without time zone,
deletedtime timestamp without time zone,
whenchanged character varying(30),
domain character varying(255)
)
WITH (autovacuum_vacuum_threshold='1000', autovacuum_freeze_min_age='10000000', autovacuum_enabled='true', autovacuum_vacuum_scale_factor='0.02', autovacuum_analyze_scale_factor='0.01');
ALTER TABLE public.groups OWNER TO uaws;
CREATE SEQUENCE public.groups_id_seq
as bigint
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public.groups_id_seq OWNER TO uaws;
ALTER SEQUENCE public.groups_id_seq OWNED BY public.groups.id;
CREATE TABLE public.users (
id bigint NOT NULL,
username character varying(255) NOT NULL,
samaccountname character varying(255) NOT NULL,
groupid bigint,
status character varying(15) NOT NULL,
updatedtime timestamp without time zone,
createdtime timestamp without time zone,
deletedtime timestamp without time zone,
changeseq bigint DEFAULT nextval('public.changeseq'::regclass) NOT NULL,
domain character varying(255),
whenchanged character varying(30)
)
WITH (autovacuum_freeze_min_age='10000000', autovacuum_enabled='true', autovacuum_vacuum_scale_factor='0.01', autovacuum_analyze_scale_factor='0.005', autovacuum_vacuum_threshold='5000', autovacuum_analyze_threshold='5000', autovacuum_vacuum_cost_limit='2000');
ALTER TABLE public.users OWNER TO uaws;
CREATE SEQUENCE public.users_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public.users_id_seq OWNER TO uaws;
ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id;
ALTER TABLE ONLY public.groups ALTER COLUMN id SET DEFAULT nextval('public.groups_id_seq'::regclass);
ALTER TABLE ONLY public.users ALTER COLUMN id SET DEFAULT nextval('public.users_id_seq'::regclass);
ALTER TABLE ONLY public.groupchilds
ADD CONSTRAINT groupchilds_pkey PRIMARY KEY (id);
ALTER TABLE ONLY public.groups
ADD CONSTRAINT groups_pkey PRIMARY KEY (id);
ALTER TABLE ONLY public.users
ADD CONSTRAINT test_constraint_1 UNIQUE (groupid, username);
ALTER TABLE ONLY public.users
ADD CONSTRAINT users_pkey PRIMARY KEY (id);
CREATE UNIQUE INDEX groupchilds_dn_parent ON public.groupchilds USING btree (dn, parentid);
CREATE INDEX idx_groups_name ON public.groups USING btree (name);
CREATE INDEX idx_users_deletedtime_deleted ON public.users USING btree (deletedtime) WHERE ((status)::text = 'deleted'::text);
CREATE INDEX idx_users_group_change_status ON public.users USING btree (groupid, changeseq DESC, status) INCLUDE (samaccountname, status);
CREATE INDEX users_actual_changeseq_desc ON public.users USING btree (changeseq DESC) INCLUDE (groupid, samaccountname) WHERE ((status)::text = 'actual'::text);
CREATE INDEX users_actual_changeseq_group_idx ON public.users USING btree (changeseq DESC, groupid) INCLUDE (samaccountname) WHERE ((status)::text = 'actual'::text);
CREATE INDEX users_actual_gid_changeseq_desc ON public.users USING btree (groupid, changeseq DESC) INCLUDE (samaccountname) WHERE ((status)::text = 'actual'::text);
CREATE INDEX users_domain_whenchanged_desc ON public.users USING btree (domain, whenchanged DESC);