summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2009-08-08 16:41:34 +0200
committerYorhel <git@yorhel.nl>2009-08-08 16:41:34 +0200
commit1e2a5c75f0154a12af7d19929153c27c75d193b1 (patch)
treed3a949969ef8ecc8d3c06f70238c8e5fe439e65f
parentc90e590bdbe7933df8e8a0d83c82dddfa22afc37 (diff)
Converted threads_posts.date and edited to timestamptz
Everything still seems to be working fine so far.
-rw-r--r--lib/Multi/IRC.pm2
-rw-r--r--lib/VNDB/DB/Discussions.pm10
-rw-r--r--util/dump.sql4
-rw-r--r--util/updates/update_2.6.sql11
4 files changed, 19 insertions, 8 deletions
diff --git a/lib/Multi/IRC.pm b/lib/Multi/IRC.pm
index 2373178b..84f307d9 100644
--- a/lib/Multi/IRC.pm
+++ b/lib/Multi/IRC.pm
@@ -268,7 +268,7 @@ sub notify { # name, pid, payload
FROM threads_posts tp
JOIN threads t ON t.id = tp.tid
JOIN users u ON u.id = tp.uid
- WHERE tp.date > ?
+ WHERE tp.date > to_timestamp(?)
ORDER BY tp.date|
: q|SELECT
'g' AS type, t.id, t.name AS title, u.username
diff --git a/lib/VNDB/DB/Discussions.pm b/lib/VNDB/DB/Discussions.pm
index 5e371fbc..26beaaee 100644
--- a/lib/VNDB/DB/Discussions.pm
+++ b/lib/VNDB/DB/Discussions.pm
@@ -32,8 +32,8 @@ sub dbThreadGet {
my @select = (
qw|t.id t.title t.count t.locked t.hidden|,
- $o{what} =~ /firstpost/ ? ('tpf.uid AS fuid', 'tpf.date AS fdate', 'uf.username AS fusername') : (),
- $o{what} =~ /lastpost/ ? ('tpl.uid AS luid', 'tpl.date AS ldate', 'ul.username AS lusername') : (),
+ $o{what} =~ /firstpost/ ? ('tpf.uid AS fuid', q|EXTRACT('epoch' from tpf.date) AS fdate|, 'uf.username AS fusername') : (),
+ $o{what} =~ /lastpost/ ? ('tpl.uid AS luid', q|EXTRACT('epoch' from tpl.date) AS ldate|, 'ul.username AS lusername') : (),
);
my @join = (
@@ -170,7 +170,7 @@ sub dbPostGet {
$o{uid} ? (
'tp.uid = ?' => $o{uid} ) : (),
$o{mindate} ? (
- 'tp.date > ?' => $o{mindate} ) : (),
+ 'tp.date > to_timestamp(?)' => $o{mindate} ) : (),
$o{hide} ? (
'tp.hidden = FALSE' => 1 ) : (),
$o{hide} && $o{what} =~ /thread/ ? (
@@ -178,7 +178,7 @@ sub dbPostGet {
);
my @select = (
- qw|tp.num tp.date tp.edited tp.msg tp.hidden|,
+ qw|tp.num tp.msg tp.hidden|, q|extract('epoch' from tp.date) as date|, q|extract('epoch' from tp.edited) as edited|,
$o{what} =~ /user/ ? qw|tp.uid u.username| : (),
$o{what} =~ /thread/ ? (qw|tp.tid t.title|, 't.hidden AS thread_hidden') : (),
);
@@ -206,7 +206,7 @@ sub dbPostEdit {
my %set = (
'msg = ?' => $o{msg},
- 'edited = ?' => $o{lastmod},
+ 'edited = to_timestamp(?)' => $o{lastmod},
'hidden = ?' => $o{hidden}?1:0,
);
diff --git a/util/dump.sql b/util/dump.sql
index f103d14d..3667c3b5 100644
--- a/util/dump.sql
+++ b/util/dump.sql
@@ -233,8 +233,8 @@ CREATE TABLE threads_posts (
tid integer NOT NULL DEFAULT 0,
num smallint NOT NULL DEFAULT 0,
uid integer NOT NULL DEFAULT 0,
- date bigint NOT NULL DEFAULT DATE_PART('epoch', NOW()),
- edited bigint NOT NULL DEFAULT 0,
+ date timestamptz NOT NULL DEFAULT NOW(),
+ edited timestamptz NOT NULL,
msg text NOT NULL DEFAULT '',
hidden boolean NOT NULL DEFAULT FALSE,
PRIMARY KEY(tid, num)
diff --git a/util/updates/update_2.6.sql b/util/updates/update_2.6.sql
index 67482461..f3760d6a 100644
--- a/util/updates/update_2.6.sql
+++ b/util/updates/update_2.6.sql
@@ -59,6 +59,17 @@ ALTER TABLE wlists ALTER COLUMN added TYPE timestamptz USING to_timestamp(added)
ALTER TABLE wlists ALTER COLUMN added SET DEFAULT NOW();
+-- threads_posts.date -> timestamptz
+ALTER TABLE threads_posts ALTER COLUMN date DROP DEFAULT;
+ALTER TABLE threads_posts ALTER COLUMN date TYPE timestamptz USING to_timestamp(date);
+ALTER TABLE threads_posts ALTER COLUMN date SET DEFAULT NOW();
+
+-- threads_posts.edited -> timestamptz + allow NULL
+ALTER TABLE threads_posts ALTER COLUMN edited DROP NOT NULL;
+ALTER TABLE threads_posts ALTER COLUMN edited DROP DEFAULT;
+ALTER TABLE threads_posts ALTER COLUMN edited TYPE timestamptz USING CASE WHEN edited = 0 THEN NULL ELSE to_timestamp(edited) END;
+
+
-- screenshots.status (smallint) -> screenshots.processed (boolean)
ALTER TABLE screenshots RENAME COLUMN status TO processed;
ALTER TABLE screenshots ALTER COLUMN processed DROP DEFAULT;