Advertisement
Guest User

Untitled

a guest
Jul 13th, 2012
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.   start_interval 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 , 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" , 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.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.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;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement