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; |