summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/tpl/vnpage_rg2
-rw-r--r--lib/ChangeLog4
-rw-r--r--lib/Multi/RG.pm6
-rwxr-xr-xutil/updates/update_1.22.pl28
-rw-r--r--util/updates/update_1.22.sh16
-rw-r--r--util/updates/update_1.22.sql5
6 files changed, 26 insertions, 35 deletions
diff --git a/data/tpl/vnpage_rg b/data/tpl/vnpage_rg
index 11790e42..deae6124 100644
--- a/data/tpl/vnpage_rg
+++ b/data/tpl/vnpage_rg
@@ -6,6 +6,6 @@
[[ } else { ]]
[[= $d{vn}{cmap} ]]
<p id="relations">
- <img src="[[= sprintf "%s/rg/%02d/%d.gif", $p{st}, $d{vn}{rgraph}%100, $d{vn}{rgraph} ]]" usemap="#rgraph" alt="Relation graph for -[[: $d{vn}{title} ]]" />
+ <img src="[[= sprintf "%s/rg/%02d/%d.png", $p{st}, $d{vn}{rgraph}%100, $d{vn}{rgraph} ]]" usemap="#rgraph" alt="Relation graph for -[[: $d{vn}{title} ]]" />
</p>
[[ } ]]
diff --git a/lib/ChangeLog b/lib/ChangeLog
index 7b97bb63..756f6a9a 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -14,6 +14,10 @@ TODO:
- Fixed bug with the infinite thumbnail generation message when the server
doesn't respond within one second.
- Rewrote VNDB::Util::DB::sqlprint to use server-side prepared statements
+ - Added two new foreign key constraints:
+ changes (causedby) -> changes (id)
+ threads (id, count) -> threads_posts (tid, num)
+ - Converted relation graphs to PNG
1.21 - 2008-08-16 (r90)
- Added !vn and !uptime commands to Multi::IRC
diff --git a/lib/Multi/RG.pm b/lib/Multi/RG.pm
index 8c45014a..37037a96 100644
--- a/lib/Multi/RG.pm
+++ b/lib/Multi/RG.pm
@@ -192,14 +192,14 @@ sub buildgraph {
$gid = $gid->fetchrow_arrayref->[0];
$_[HEAP]{gid} = [
$gid,
- sprintf('%s/%02d/%d.gif', $_[HEAP]{imgdir}, $gid % 100, $gid),
+ sprintf('%s/%02d/%d.png', $_[HEAP]{imgdir}, $gid % 100, $gid),
];
# roughly equivalent to:
- # cat layout.txt | dot -Tgif -o graph.gif -Tcmapx
+ # cat layout.txt | dot -Tpng -o graph.png -Tcmapx
$_[HEAP]{proc} = POE::Wheel::Run->new(
Program => $_[HEAP]{dot},
- ProgramArgs => [ '-Tgif', '-o', $_[HEAP]{gid}[1], '-Tcmapx' ],
+ ProgramArgs => [ '-Tpng', '-o', $_[HEAP]{gid}[1], '-Tcmapx' ],
StdioFilter => POE::Filter::Stream->new(),
StdinEvent => 'proc_stdin',
StdoutEvent => 'proc_stdout',
diff --git a/util/updates/update_1.22.pl b/util/updates/update_1.22.pl
deleted file mode 100755
index 465c8c40..00000000
--- a/util/updates/update_1.22.pl
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/perl
-
-
-# update_1.22.sql must be executed before this script
-
-
-use strict;
-use warnings;
-use DBI;
-
-BEGIN { require '/www/vndb/lib/global.pl' }
-
-my $sql = DBI->connect(@VNDB::DBLOGIN,
- { PrintError => 1, RaiseError => 1, AutoCommit => 0 });
-
-my $q = $sql->prepare('INSERT INTO relgraph (id, cmap) VALUES(?,?)');
-for (glob "/www/vndb/data/rg/*/*.cmap") {
- my $id = $1 if /([0-9]+)\.cmap$/;
- open my $F, '<', $_ or die $!;
- $q->execute($id, join "\n", <$F>);
- close $F;
-}
-
-$sql->do('ALTER TABLE vn ADD FOREIGN KEY (rgraph) REFERENCES relgraph (id) DEFERRABLE INITIALLY DEFERRED');
-$sql->commit;
-
-# it's now safe to delete /data/rg
-
diff --git a/util/updates/update_1.22.sh b/util/updates/update_1.22.sh
new file mode 100644
index 00000000..3fdbaea7
--- /dev/null
+++ b/util/updates/update_1.22.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+# update_1.22.sql must be executed before this script
+
+cd /www/vndb
+
+# delete all relation graphs (just the files)
+find static/rg -name '*.gif' -delete
+
+# delete all relation graph image maps (entire directory)
+rm -rf data/rg
+
+# regenerate all relation graphs
+util/multi.pl -c 'relgraph all'
+
+
diff --git a/util/updates/update_1.22.sql b/util/updates/update_1.22.sql
index e3729765..9a81b2c6 100644
--- a/util/updates/update_1.22.sql
+++ b/util/updates/update_1.22.sql
@@ -5,12 +5,11 @@ CREATE TABLE relgraph (
cmap text NOT NULL DEFAULT ''
) WITHOUT OIDS;
-SELECT SETVAL('relgraph_id_seq', NEXTVAL('relgraph_seq'));
DROP SEQUENCE relgraph_seq;
-
ALTER TABLE vn ALTER COLUMN rgraph DROP NOT NULL;
ALTER TABLE vn ALTER COLUMN rgraph SET DEFAULT NULL;
-UPDATE vn SET rgraph = NULL WHERE rgraph = 0;
+UPDATE vn SET rgraph = NULL;
+ALTER TABLE vn ADD FOREIGN KEY (rgraph) REFERENCES relgraph (id) DEFERRABLE INITIALLY DEFERRED;
-- add foreign table constraint to changes.causedby