summaryrefslogtreecommitdiff
path: root/src/postprocess/postgres.txt
blob: d1b46690cd4a8fadabcbf47713d81677c1eadf77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
CREATE TABLE telefonbuch (
    presence_flag bigint,
    reverse_flag bigint,
    biz_flag bigint,
    zip character varying(64)[] DEFAULT '{}',
    nachname character varying(256)[] DEFAULT '{}',
    vorname character varying(192)[] DEFAULT '{}',
    zusaetze character varying(512)[] DEFAULT '{}',
    strasse character varying(64)[] DEFAULT '{}',
    hausnummer character varying(32)[] DEFAULT '{}',
    verweise text[] DEFAULT '{}',
    ort character varying(64)[] DEFAULT '{}',
    vorwahl character varying(10)[] DEFAULT '{}',
    rufnummer character varying(32)[] DEFAULT '{}',
    web character varying(256)[] DEFAULT '{}',
    email character varying(256)[] DEFAULT '{}',
    coords character varying(32)[] DEFAULT '{}'
);

COPY Telefonbuch ( presence_flag, reverse_flag, biz_flag, zip, nachname, vorname, zusaetze, strasse, hausnummer, verweise, ort, vorwahl, rufnummer, web, email, coords ) FROM 'telefonbuch.txt' WITH NULL AS 'NULL';

CREATE MATERIALZED VIEW nachname_view AS SELECT id, nachname FROM telefonbuch CROSS JOIN UNNEST(nachname) WITH ORDINALITY u(name, name_id) WITH data;

CREATE INDEX idx_hausnummer ON public.telefonbuch USING btree (hausnummer);
CREATE INDEX idx_multilinegroup ON public.telefonbuch USING btree (multilinegroup);
CREATE INDEX idx_nachname ON public.telefonbuch USING btree (nachname);
CREATE INDEX idx_ort ON public.telefonbuch USING btree (ort);
CREATE INDEX idx_rufnummer ON public.telefonbuch USING btree (rufnummer);
CREATE INDEX idx_strasse ON public.telefonbuch USING btree (strasse);
CREATE INDEX idx_vorname ON public.telefonbuch USING btree (vorname);
CREATE INDEX idx_vorwahl ON public.telefonbuch USING btree (vorwahl);
CREATE INDEX idx_zip ON public.telefonbuch USING btree (zip);
CREATE INDEX idx_zusaetze ON public.telefonbuch USING btree (zusaetze);

CREATE INDEX trgm_idx_nachname ON public.telefonbuch USING gin (nachname gin_trgm_ops);
CREATE INDEX trgm_idx_rufnummer ON public.telefonbuch USING gin (rufnummer gin_trgm_ops);
CREATE INDEX trgm_idx_verweise ON public.telefonbuch USING gin (verweise gin_trgm_ops);
CREATE INDEX trgm_idx_vorname ON public.telefonbuch USING gin (vorname gin_trgm_ops);
CREATE INDEX trgm_idx_zusaetze ON public.telefonbuch USING gin (zusaetze gin_trgm_ops);

SELECT *, ST_AsText(coords) FROM Telefonbuch WHERE nachname = 'Engling';