summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2010-02-02 15:22:15 +0100
committerYorhel <git@yorhel.nl>2010-02-02 15:24:30 +0100
commit2f1c4ed1dff67005abe484df49a889487f54e8c2 (patch)
treee32d78012a55a0e5d7d0675aa012ec609872e2b1
parent7ba9ca68820875881c063eeb6d6f247266fe8f23 (diff)
SQL: Improved query in edit_commit()
This one's a lot faster.
-rw-r--r--util/sql/func.sql10
1 files changed, 4 insertions, 6 deletions
diff --git a/util/sql/func.sql b/util/sql/func.sql
index 1dcdd496..a0fe2c2f 100644
--- a/util/sql/func.sql
+++ b/util/sql/func.sql
@@ -168,12 +168,10 @@ BEGIN
r.rev := 1;
ELSE
SELECT c.rev+1 INTO r.rev FROM changes c
- LEFT JOIN vn_rev vr ON c.id = vr.id
- LEFT JOIN releases_rev rr ON c.id = rr.id
- LEFT JOIN producers_rev pr ON c.id = pr.id
- WHERE (t = 'v' AND vr.vid = i)
- OR (t = 'r' AND rr.rid = i)
- OR (t = 'p' AND pr.pid = i)
+ JOIN ( SELECT id FROM vn_rev WHERE t = 'v' AND vid = i
+ UNION SELECT id FROM releases_rev WHERE t = 'r' AND rid = i
+ UNION SELECT id FROM producers_rev WHERE t = 'p' AND pid = i
+ ) x(id) ON x.id = c.id
ORDER BY c.id DESC
LIMIT 1;
END IF;