Advertisement
Guest User

Untitled

a guest
Dec 13th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 KB | None | 0 0
  1. select * from pg_stat_activity where datname='puzzle_debug' and state!='idle'
  2. truncate webgl.segment_temp
  3.  
  4. ALTER TABLE webgl.segment_gen ADD geomsimp GEOMETRY;
  5. UPDATE webgl.segment_gen SET geomsimp = topogeometry::geometry;
  6. INSERT INTO webgl.segment_temp (segment_id, geometry)
  7. (SELECT id, COALESCE(geomsimp, geometry) AS geometry FROM webgl.segment_gen)
  8.  
  9. with latest as (
  10. select
  11. s.stable_id as stable_segment_id,
  12. ws.*
  13. from
  14. webgl.segment ws
  15. join
  16. segment s
  17. on
  18. s.id = ws.segment_id and s.id = get_latest_segment_id_not_equal_version(s.stable_id, 10000000000, 'production')
  19. where
  20. ws.deleted = false
  21. ),
  22. new as (
  23. select
  24. wst.*,
  25. s.stable_id as stable_segment_id
  26. from
  27. webgl.segment_temp wst
  28. join
  29. segment s
  30. on
  31. s.id = wst.segment_id
  32. ),
  33. updated as (
  34. select
  35. new.*,
  36. st_astext(new.geometry) as new_geometry,
  37. st_astext(latest.geometry) as old_geometry,
  38. latest.segment_id is not null as latest_present,
  39. ST_Equals(new.geometry, latest.geometry) as geometry_equals,
  40. new.warning_type = latest.warning_type as we,
  41. new.package_info = latest.package_info as pe,
  42. new.intersected_region_names = latest.intersected_region_names as irne
  43. from
  44. new
  45. left join
  46. latest
  47. on
  48. new.stable_segment_id = latest.stable_segment_id
  49. where
  50. latest.segment_id is null or (
  51. not ST_Equals(new.geometry, latest.geometry)
  52. or new.package_info <> latest.package_info
  53. or new.warning_type <> latest.warning_type
  54. or new.intersected_region_names <> latest.intersected_region_names)
  55. ),
  56. removed as (
  57. select
  58. latest.*
  59. from
  60. latest
  61. left join
  62. new
  63. on
  64. new.stable_segment_id = latest.stable_segment_id
  65. where
  66. new.segment_id is null
  67. )
  68. select latest_present, new_geometry, old_geometry, geometry_equals, we, pe, irne from updated limit 10
  69. --select segment_id, geometry, package_info, warning_type, intersected_region_names, version, false from updated
  70. -- UNION
  71. select segment_id, geometry, package_info, warning_type, intersected_region_names, 1000000000000, true from removed
  72.  
  73.  
  74.  
  75.  
  76. insert into webgl.segment(segment_id, geometry, package_info, warning_type, intersected_region_names, version, deleted) (
  77. select segment_id, geometry, package_info, warning_type, intersected_region_names, version, false from completelyNew
  78. UNION
  79. select segment_id, geometry, package_info, warning_type, intersected_region_names, 1000000000000, true from notPresentInLastVersion
  80. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement