diff options
-rw-r--r-- | data/tpl/hist | 2 | ||||
-rw-r--r-- | util/updates/update_1.18.sql | 31 |
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', ''); + |