summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/tpl/hist2
-rw-r--r--util/updates/update_1.18.sql31
2 files changed, 32 insertions, 1 deletions
diff --git a/data/tpl/hist b/data/tpl/hist
index b578d1f5..1ff87bd9 100644
--- a/data/tpl/hist
+++ b/data/tpl/hist
@@ -78,7 +78,7 @@
[[ for (@{$d{hist}}) { my $t = (qw|v r p|)[$_->{type}]; ]]-
<tr>
- <td class="tc1_1"><a href="/[[= $t.$_->{iid}.'.'.$_->{rev} ]]">[[= $t.$_->{iid} ]]</td>
+ <td class="tc1_1"><a href="/[[= $t.$_->{iid}.'.'.$_->{rev} ]]">[[= $t.$_->{iid} ]]</a></td>
<td class="tc1_2"><a href="/[[= $t.$_->{iid}.'.'.$_->{rev} ]]">.[[= $_->{rev} == 1 ? '<b>'.$_->{rev}.'</b>' : $_->{rev} ]]</a></td>
<td class="tc2">[[= formatdate('%Y-%m-%d %R', $_->{added}, 'dh') ]]</td>
[[ if($d{type} ne 'u' || $d{act}) { ]]-
diff --git a/util/updates/update_1.18.sql b/util/updates/update_1.18.sql
new file mode 100644
index 00000000..b2d37d5a
--- /dev/null
+++ b/util/updates/update_1.18.sql
@@ -0,0 +1,31 @@
+
+-- prev -> rev
+ALTER TABLE changes ADD COLUMN rev integer NOT NULL DEFAULT 1;
+ALTER TABLE changes DROP COLUMN prev;
+
+DROP FUNCTION update_prev(text, text);
+
+CREATE OR REPLACE FUNCTION update_rev(tbl text, ids text) RETURNS void AS $$
+DECLARE
+ r RECORD;
+ r2 RECORD;
+ i integer;
+ t text;
+ e text;
+BEGIN
+ SELECT INTO t SUBSTRING(tbl, 1, 1);
+ e := '';
+ IF ids <> '' THEN
+ e := ' WHERE id IN('||ids||')';
+ END IF;
+ FOR r IN EXECUTE 'SELECT id FROM '||tbl||e LOOP
+ i := 1;
+ FOR r2 IN EXECUTE 'SELECT id FROM '||tbl||'_rev WHERE '||t||'id = '||r.id||' ORDER BY id ASC' LOOP
+ UPDATE changes SET rev = i WHERE id = r2.id;
+ i := i+1;
+ END LOOP;
+ END LOOP;
+END;
+$$ LANGUAGE plpgsql;
+SELECT update_rev('vn', ''), update_rev('releases', ''), update_rev('producers', '');
+