aboutsummaryrefslogtreecommitdiff
path: root/src/main/sql/dbdelta/1-person_badge-add-timestamps.sql
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2013-01-05 17:24:07 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2013-01-05 17:24:07 +0100
commit24036ef94687300e98c742cfc268a2b5e9e87a88 (patch)
treefb6be2434919717b18234c0820d39d174c02a969 /src/main/sql/dbdelta/1-person_badge-add-timestamps.sql
parent7880fd60bb6ba5237d269a1b840a412c4438dd39 (diff)
downloadesper-testing-24036ef94687300e98c742cfc268a2b5e9e87a88.tar.gz
esper-testing-24036ef94687300e98c742cfc268a2b5e9e87a88.tar.bz2
esper-testing-24036ef94687300e98c742cfc268a2b5e9e87a88.tar.xz
esper-testing-24036ef94687300e98c742cfc268a2b5e9e87a88.zip
o Trying out dbdeploy.
Diffstat (limited to 'src/main/sql/dbdelta/1-person_badge-add-timestamps.sql')
-rw-r--r--src/main/sql/dbdelta/1-person_badge-add-timestamps.sql21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main/sql/dbdelta/1-person_badge-add-timestamps.sql b/src/main/sql/dbdelta/1-person_badge-add-timestamps.sql
new file mode 100644
index 0000000..5b53145
--- /dev/null
+++ b/src/main/sql/dbdelta/1-person_badge-add-timestamps.sql
@@ -0,0 +1,21 @@
+ALTER TABLE person_badge ADD timestamps TIMESTAMP[];
+
+DO $$
+DECLARE r RECORD;
+DECLARE ts TIMESTAMP[];
+BEGIN
+ FOR r IN SELECT uuid, count FROM person_badge
+ LOOP
+ SELECT array_agg(x) FROM (SELECT current_timestamp FROM generate_series(1, r.count)) AS x INTO ts;
+ UPDATE person_badge SET timestamps=ts WHERE uuid=r.uuid;
+ END LOOP;
+END$$;
+
+ALTER TABLE person_badge DROP count;
+
+--//@UNDO
+
+ALTER TABLE person_badge ADD count INT;
+UPDATE person_badge SET count=array_length(timestamps, 1);
+ALTER TABLE person_badge ALTER count SET NOT NULL;
+ALTER TABLE person_badge DROP timestamps;