[Patch] Support for MySQL
|Reported by:||Owned by:||Steffen Hoffmann|
|Severity:||critical||Keywords:||SQL specific syntax|
sqlite syntax and mysql syntax are different, causing ticket.py to fail its query silently. in sqlite:
SELECT "aaa"||"bbb"; => "aaabbb"
SELECT "aaa"||"bbb"; => 0
this impacts the line that in ticket.py which is trying to concatenate the COALESCE'd fields.
changing it to the following allows use of your MySQL-backed trac to work with tags:
sql = "SELECT * FROM (SELECT id, %s, CONCAT(%s) AS fields FROM ticket%s) s" % ( ','.join(self.fields), ", ' ',".join(["COALESCE(%s, '')" % f for f in self.fields]), ignore)
this is a drive-by patch, i'm not a huge python hacker or trac hacker, just upgraded our trac and need tags to work and so hacked this in after sorting through the madness of pythn eggs. it wasn't instantly apparent how to detect the DB provider so i didn't know how to support both sqlite and mysql here.
Change History (5)
comment:1 Changed 7 years ago by
|Summary:||ticet tags fail silently on MySQL without this patch → [Patch] Support for MySQL|
comment:3 Changed 6 years ago by
|Keywords:||SQL specific syntax added|
|Owner:||changed from Alec Thomas to Steffen Hoffmann|
|Status:||new → assigned|