Revert "Merge branch 'use-trunc-rounding' into rounding-fixes"
[gpstools.git] / postgres / update_things.sql
blob9a23ffd8e90b09924856bef44247d502c00deb99
1 -- update_things.sql
2 -- File ID: 4765dc0a-fafb-11dd-874c-000475e441b9
4 -- Round waypoints to six decimal digits -- {{{
5 \echo
6 \echo ================ Round waypoints to six decimal digits ================
8 UPDATE wayp SET coor = point(
9     round(coor[0]::numeric, 6),
10     round(coor[1]::numeric, 6)
12 -- }}}
13 -- Remove duplicates from wayp -- {{{
14 \echo
15 \echo ================ Remove duplicates from wayp ================
17 COPY (SELECT '======== Number of waypoints in wayp before cleanup: ' || count(*) from wayp) to STDOUT;
19 BEGIN ISOLATION LEVEL SERIALIZABLE;
20     CREATE TEMPORARY TABLE dupfri
21     ON COMMIT DROP
22     AS (
23         SELECT
24             DISTINCT ON (
25                 coor[0], coor[1],
26                 name,
27                 ele,
28                 type,
29                 time,
30                 cmt,
31                 descr,
32                 src,
33                 sym
34             ) *
35             FROM wayp
36     );
37     TRUNCATE wayp;
38     INSERT INTO wayp (
39         SELECT *
40             FROM dupfri
41             ORDER BY name
42     );
43 COMMIT;
45 COPY (SELECT '======== Number of waypoints in wayp after cleanup: ' || count(*) from wayp) to STDOUT;
46 -- }}}
48 -- Remove duplicates from events -- {{{
49 \echo
50 \echo ================ Remove duplicates from events ================
52 COPY (SELECT '======== Event count before cleanup: ' || count(*) from events) to STDOUT;
54 BEGIN ISOLATION LEVEL SERIALIZABLE;
55     CREATE TEMPORARY TABLE dupfri
56     ON COMMIT DROP
57     AS (
58         SELECT
59             DISTINCT ON (date, coor[0], coor[1], descr) *
60             FROM events
61     );
62     TRUNCATE events;
63     INSERT INTO events (
64         SELECT *
65             FROM dupfri
66             ORDER BY date
67     );
68 COMMIT;
70 COPY (SELECT '======== Event count after cleanup: ' || count(*) from events) to STDOUT;
71 -- }}}
73 -- Update picture coordinates -- {{{
74 \echo
75 \echo ================ Update picture coordinates ================
77 UPDATE pictures SET coor = findpos(date)
78     WHERE coor IS NULL;
79 -- }}}
80 -- Round picture coordinates -- {{{
81 \echo ================ Round picture coordinates ================
82 UPDATE pictures SET coor = point(
83     round(coor[0]::numeric, 6),
84     round(coor[1]::numeric, 6)
86 -- }}}
87 -- Remove duplicates from pictures -- {{{
88 \echo
89 \echo ================ Remove duplicates from pictures ================
91 COPY (SELECT '======== Picture count before cleanup: ' || count(*) from pictures) to STDOUT;
93 BEGIN ISOLATION LEVEL SERIALIZABLE;
94     CREATE TEMPORARY TABLE dupfri
95     ON COMMIT DROP
96     AS (
97         SELECT
98             DISTINCT ON (date, coor[0], coor[1], descr, filename, author) *
99             FROM pictures
100     );
101     TRUNCATE pictures;
102     INSERT INTO pictures (
103         SELECT *
104             FROM dupfri
105             ORDER BY date
106     );
107 COMMIT;
109 COPY (SELECT '======== Picture count after cleanup: ' || count(*) from pictures) to STDOUT;
110 -- }}}
112 -- Update coordinates for films -- {{{
113 \echo
114 \echo ================ Update coordinates for films ================
116 UPDATE film SET coor = findpos(date)
117     WHERE coor IS NULL;
118 -- }}}
119 -- Round film coordinates -- {{{
120 \echo ================ Round film coordinates ================
121 UPDATE film SET coor = point(
122     round(coor[0]::numeric, 6),
123     round(coor[1]::numeric, 6)
125 -- }}}
126 -- Remove duplicates from film -- {{{
127 \echo
128 \echo ================ Remove duplicates from film ================
130 COPY (SELECT '======== Film count before cleanup: ' || count(*) from film) to STDOUT;
132 BEGIN ISOLATION LEVEL SERIALIZABLE;
133     CREATE TEMPORARY TABLE dupfri
134     ON COMMIT DROP
135     AS (
136         SELECT
137             DISTINCT ON (date, coor[0], coor[1], descr, filename, author) *
138             FROM film
139     );
140     TRUNCATE film;
141     INSERT INTO film (
142         SELECT *
143             FROM dupfri
144             ORDER BY date
145     );
146 COMMIT;
148 COPY (SELECT '======== Film count after cleanup: ' || count(*) from film) to STDOUT;
149 -- }}}
151 -- Oppdater koordinater for lyd -- {{{
152 \echo
153 \echo ================ Update sound coordinates ================
155 UPDATE lyd SET coor = findpos(date)
156     WHERE coor IS NULL;
157 -- }}}
158 -- Update sound coordinates -- {{{
159 \echo ================ Update sound coordinates ================
160 UPDATE lyd SET coor = point(
161     round(coor[0]::numeric, 6),
162     round(coor[1]::numeric, 6)
164 -- }}}
165 -- Remove duplicates from sound -- {{{
166 \echo
167 \echo ================ Remove duplicates from sound ================
169 COPY (SELECT '======== Sound count before cleanup: ' || count(*) from lyd) to STDOUT;
171 BEGIN ISOLATION LEVEL SERIALIZABLE;
172     CREATE TEMPORARY TABLE dupfri
173     ON COMMIT DROP
174     AS (
175         SELECT
176             DISTINCT ON (date, coor[0], coor[1], descr, filename, author) *
177             FROM lyd
178     );
179     TRUNCATE lyd;
180     INSERT INTO lyd (
181         SELECT *
182             FROM dupfri
183             ORDER BY date
184     );
185 COMMIT;
187 COPY (SELECT '======== Sound count after cleanup: ' || count(*) from lyd) to STDOUT;
188 -- }}}
190 \i distupdate.sql