View difference between Paste ID: 0YNG8jSC and PxCHwMgW
SHOW: | | - or go back to the newest paste.
1
-- row count 217709
2
CREATE TABLE edge_flat
3
(
4
  org_id character varying(32) NOT NULL,
5
  start_id character varying(50) NOT NULL,
6
  end_id character varying(50) NOT NULL,
7-
  depart interval NOT NULL,
7+
  start_interval interval NOT NULL,
8-
  arrive interval NOT NULL,
8+
  end_interval interval NOT NULL,
9
  edge_id character varying(64) NOT NULL,
10
  edge_pos integer NOT NULL,
11
  url_part character varying(255) NOT NULL,
12
  created timestamp without time zone,
13
  dsp integer NOT NULL,
14
  asp integer NOT NULL,
15
  da boolean NOT NULL,
16
  aa boolean NOT NULL,
17
  dr boolean,
18
  ar boolean,
19
  disabled boolean,
20
  edge_active boolean NOT NULL DEFAULT true,
21-
  CONSTRAINT edge_flat_pkey PRIMARY KEY (org_id , start_id , end_id , depart , arrive , edge_id , edge_pos , url_part ),
21+
  CONSTRAINT edge_flat_pkey PRIMARY KEY (org_id , start_id , end_id , start_interval , end_interval , edge_id , edge_pos , url_part ),
22
  CONSTRAINT edge_flat_org_id_fk FOREIGN KEY (org_id)
23
      REFERENCES organisation (org_id) MATCH SIMPLE
24
      ON UPDATE CASCADE ON DELETE NO ACTION,
25
  CONSTRAINT edge_flat_end_id_fk FOREIGN KEY (end_id)
26
      REFERENCES node (node_id) MATCH SIMPLE
27
      ON UPDATE CASCADE ON DELETE NO ACTION,
28
  CONSTRAINT edge_flat_start_id_fk FOREIGN KEY (start_id)
29
      REFERENCES node (node_id) MATCH SIMPLE
30
      ON UPDATE CASCADE ON DELETE NO ACTION,
31
  CONSTRAINT edge_flat_webnode_fkey FOREIGN KEY (org_id, url_part)
32
      REFERENCES webnode (org_id, url_part) MATCH SIMPLE
33
      ON UPDATE CASCADE ON DELETE NO ACTION
34
)
35
WITH (
36
  OIDS=FALSE
37
);
38
39
CREATE INDEX ix_atob
40
  ON edge_flat
41
  USING btree
42
  (start_id COLLATE pg_catalog."default" , end_id COLLATE pg_catalog."default" );
43
44
CREATE INDEX ix_edge_key
45
  ON edge_flat
46
  USING btree
47-
  (start_id COLLATE pg_catalog."default" , end_id COLLATE pg_catalog."default" , depart , arrive , org_id COLLATE pg_catalog."default" );
47+
  (start_id COLLATE pg_catalog."default" , end_id COLLATE pg_catalog."default" , start_interval , end_interval , org_id COLLATE pg_catalog."default" );
48
49
CREATE INDEX ix_edge_flat_edge_org_id
50
  ON edge_flat
51
  USING btree
52
  (org_id COLLATE pg_catalog."default" );
53
54
CREATE INDEX ix_edge_flat_edge_end_id
55
  ON edge_flat
56
  USING btree
57
  (end_id COLLATE pg_catalog."default" );
58
59
CREATE INDEX ix_edge_flat_edge_start_id
60
  ON edge_flat
61
  USING btree
62
  (start_id COLLATE pg_catalog."default" );
63
64
CREATE INDEX ix_edge_flat_edge_id_url_part
65
  ON edge_flat
66
  USING btree
67
  (edge_id COLLATE pg_catalog."default" , edge_pos , url_part COLLATE pg_catalog."default" );
68
69
70
-- row count 10452
71
CREATE TABLE stop
72
(
73
  node_id character varying(50) NOT NULL,
74
  org_id character varying(32) NOT NULL,
75
  edge_id character varying(64) NOT NULL,
76
  description character varying(522),
77
  stop_pos integer NOT NULL,
78
  user_description character varying(522),
79
  created timestamp without time zone NOT NULL,
80
  created_by character varying(255),
81
  edited_by character varying(255),
82
  updated timestamp without time zone NOT NULL,
83
  geom geometry,
84
  geom_approx boolean,
85
  CONSTRAINT stop_pkey PRIMARY KEY (node_id , org_id , edge_id , stop_pos , updated ),
86
  CONSTRAINT stop_org_id_fk FOREIGN KEY (org_id)
87
      REFERENCES organisation (org_id) MATCH SIMPLE
88
      ON UPDATE NO ACTION ON DELETE NO ACTION,
89
  CONSTRAINT stop_node_id_fk FOREIGN KEY (node_id)
90
      REFERENCES node (node_id) MATCH SIMPLE
91
      ON UPDATE CASCADE ON DELETE NO ACTION
92
)
93
WITH (
94
  OIDS=FALSE
95
);
96
97
CREATE INDEX ix_stop_org_id
98
  ON stop
99
  USING btree
100
  (org_id COLLATE pg_catalog."default" );
101
102
CREATE INDEX ix_stop_node_id
103
  ON stop
104
  USING btree
105
  (node_id COLLATE pg_catalog."default" );
106
107
CREATE OR REPLACE VIEW edge_geom AS 
108-
 SELECT edge_flat.org_id, edge_flat.start_id, edge_flat.depart, bool_and(edge_flat.da) AS da, bool_or(edge_flat.dr) AS dr, max(origin_stop.user_description::text) AS origin_desc, max(origin_stop.geom::text) AS origin_geom, bool_or(origin_stop.geom_approx) AS origin_geom_approx, edge_flat.end_id, edge_flat.arrive, bool_and(edge_flat.aa) AS aa, bool_or(edge_flat.ar) AS ar, max(dest_stop.user_description::text) AS dest_desc, max(dest_stop.geom::text) AS dest_geom, bool_or(dest_stop.geom_approx) AS dest_geom_approx, max(edge_flat.url_part::text) AS url_parts, max(edge_flat.url_part::text) AS url_part, min(edge_flat.created) AS created
108+
 SELECT edge_flat.org_id, edge_flat.start_id, edge_flat.start_interval, bool_and(edge_flat.da) AS da, bool_or(edge_flat.dr) AS dr, max(origin_stop.user_description::text) AS origin_desc, max(origin_stop.geom::text) AS origin_geom, bool_or(origin_stop.geom_approx) AS origin_geom_approx, edge_flat.end_id, edge_flat.end_interval, bool_and(edge_flat.aa) AS aa, bool_or(edge_flat.ar) AS ar, max(dest_stop.user_description::text) AS dest_desc, max(dest_stop.geom::text) AS dest_geom, bool_or(dest_stop.geom_approx) AS dest_geom_approx, max(edge_flat.url_part::text) AS url_parts, max(edge_flat.url_part::text) AS url_part, min(edge_flat.created) AS created
109
   FROM edge_flat
110
   LEFT JOIN edited_stop_2 origin_stop ON origin_stop.node_id::text = edge_flat.start_id::text AND origin_stop.org_id::text = edge_flat.org_id::text AND origin_stop.edge_id::text = edge_flat.edge_id::text AND edge_flat.dsp = origin_stop.stop_pos
111
   LEFT JOIN edited_stop_2 dest_stop ON dest_stop.node_id::text = edge_flat.end_id::text AND dest_stop.org_id::text = edge_flat.org_id::text AND dest_stop.edge_id::text = edge_flat.edge_id::text AND edge_flat.asp = dest_stop.stop_pos
112
  WHERE edge_flat.disabled IS NULL AND edge_flat.edge_active
113-
  GROUP BY edge_flat.org_id, edge_flat.start_id, edge_flat.end_id, edge_flat.depart, edge_flat.arrive, origin_stop.user_description, dest_stop.user_description;
113+
  GROUP BY edge_flat.org_id, edge_flat.start_id, edge_flat.end_id, edge_flat.start_interval, edge_flat.end_interval, origin_stop.user_description, dest_stop.user_description;
114
115
CREATE OR REPLACE VIEW edited_stop_2 AS 
116
 SELECT stop.node_id, stop.org_id, stop.edge_id, stop.description, stop.geom, stop.geom_approx, stop.stop_pos, stop.user_description, stop.updated, stop.created_by AS updated_by
117
   FROM stop
118
NATURAL JOIN ( SELECT stop.node_id, stop.org_id, stop.edge_id, stop.stop_pos, max(stop.updated) AS updated
119
           FROM stop
120
          GROUP BY stop.node_id, stop.org_id, stop.edge_id, stop.stop_pos) recent_stop;