diff options
author | Yorhel <git@yorhel.nl> | 2010-02-02 15:22:15 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2010-02-02 15:24:30 +0100 |
commit | 2f1c4ed1dff67005abe484df49a889487f54e8c2 (patch) | |
tree | e32d78012a55a0e5d7d0675aa012ec609872e2b1 /util | |
parent | 7ba9ca68820875881c063eeb6d6f247266fe8f23 (diff) |
SQL: Improved query in edit_commit()
This one's a lot faster.
Diffstat (limited to 'util')
-rw-r--r-- | util/sql/func.sql | 10 |
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; |