Advertisement
nseleznev

Untitled

Nov 17th, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- 0. Measurement
  2. -- ticon3
  3. CREATE TABLE measurement_ru AS
  4.   SELECT * FROM measurement_tmp
  5.   WHERE is_us=false;
  6.  
  7. -- ticon3, но с косяком из-за чанков, см. диаграмму я устал объяснять
  8. INSERT INTO measurement_ru
  9.   SELECT * FROM measurement
  10.   WHERE is_mapped IS NULL AND is_us=false;
  11.  
  12. -- I. удаляем дубликаты ss
  13. DELETE FROM segment_settings
  14. WHERE sid IN (
  15.   SELECT sid
  16.   FROM segment s
  17.     INNER JOIN (
  18.                  SELECT
  19.                    new_segment_id,
  20.                    max(avs) AS avs
  21.                  FROM segment
  22.                  WHERE new_segment_id IS NOT NULL AND new_segment_id != 0
  23.                  GROUP BY new_segment_id
  24.                  HAVING count > 1) ssWithDuplicate
  25.       ON (s.new_segment_id = ssWithDuplicate.new_segment_id)
  26.   WHERE s.avs < ssWithDuplicate.avs) AND id > 1250201;
  27.  
  28. -- II. потом маппим оставшиеся сеттинги, только руские
  29. -- из ticon2
  30.  CREATE TABLE segment_settings_ru AS
  31.   SELECT
  32.     id,
  33.     s.new_segment_id AS sid,
  34.     lanes,
  35.     lane_width,
  36.     area_type,
  37.     bus_stops,
  38.     parking_maneuvers,
  39.     slope,
  40.     trucks,
  41.     ss.status,
  42.     light_table,
  43.     has_stop,
  44.     has_yield,
  45.     a_tags,
  46.     coef,
  47.     m_tags,
  48.     old_sid
  49.   FROM segment_settings ss INNER JOIN segment s
  50.       ON (s.sid = ss.sid)
  51.   WHERE s.new_segment_id IS NOT NULL AND s.new_segment_id <> 0
  52.     AND s.tz NOT IN ('US/Pacific', 'US/Central', 'America/New_York');
  53.  
  54. -- из ticon3
  55.  INSERT INTO segment_settings_ru
  56.   SELECT
  57.     id,
  58.     ss.sid,
  59.     lanes,
  60.     lane_width,
  61.     area_type,
  62.     bus_stops,
  63.     parking_maneuvers,
  64.     slope,
  65.     trucks,
  66.     ss.status,
  67.     light_table,
  68.     has_stop,
  69.     has_yield,
  70.     a_tags,
  71.     coef,
  72.     m_tags,
  73.     old_sid
  74.   FROM segment_settings ss INNER JOIN segment s
  75.       ON (s.sid = ss.sid)
  76.   WHERE s.new_segment_id IS NULL
  77.     AND tz NOT IN ('US/Pacific', 'US/Central', 'America/New_York');
  78.  
  79. TRUNCATE segment_settings;
  80. INSERT INTO segment_settings (SELECT * FROM segment_settings_ru ORDER BY id ASC) ON CONFLICT DO NOTHING;
  81.  
  82. -- III. потом грохаем старые сегменты и не русские
  83. CREATE TABLE segment_ru AS
  84.   SELECT * FROM segment
  85.   WHERE new_segment_id IS NULL
  86.     AND tz NOT IN ('US/Pacific', 'US/Central', 'America/New_York');
  87.  
  88. TRUNCATE path_segment;
  89. TRUNCATE segment;
  90. INSERT INTO segment SELECT * FROM segment_ru;
  91.  
  92.  
  93. -- IV. удалим лишние эрии и джобы
  94. DELETE FROM job WHERE area_id=ANY(ARRAY(
  95.     SELECT id FROM area WHERE time_zone IN ('US/Pacific', 'US/Central', 'America/New_York')
  96. ));
  97. DELETE FROM area WHERE time_zone IN ('US/Pacific', 'US/Central', 'America/New_York');
  98.  
  99.  
  100. -- V. DROP measurement, measurement_tmp; переименовать _ru
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement