Spam Karma 2.0 und MySQL 5.0.12

Wie ich gerade feststellen mußte, hat Spam Karma 2 den Umzug nicht wirklich heile überstanden. Auf den Administrationsseiten sprang mir eine dicke Fehlermeldung entgegegen.

Can’t fetch comments.
Query: SELECT `posts_table`.`post_title`, `spam_table`.`karma`, `spam_table`.`id` as `spam_id`,`spam_table`.`karma_cmts`, `comments_table`.* FROM `wp_comments` AS `comments_table`, `wp_posts` AS `posts_table` LEFT JOIN `wp_sk2_spams` AS `spam_table` ON `spam_table`.`comment_ID` = `comments_table`.`comment_ID` WHERE `comment_approved` != ‚1‘ AND `posts_table`.`ID` = `comments_table`.`comment_post_ID` ORDER BY `comments_table`.`comment_date_gmt` DESC LIMIT 30
SQL error: Unknown column ‚comments_table.comment_ID‘ in ‚on clause‘

Grund dieser Fehlermeldung ist eine Änderung in der neuen MySQL Version 5.0.12. Seit dieser Version werden natural joins und joins mit USING (inkl. den outer join Varianten) nach SQL:2003 Standard ausgeführt. Eine SQL Abfrage wie z.B.

SELECT t1.id,t2.id,t3.id FROM t1,t2 LEFT JOIN t3 ON (t3.id=t1.id)
WHERE t1.id=t2.id;

führt zu einem Unknown column ‚t1.id‘ in ‚on clause‘ Fehler. Diesen Fehler kann man nur umgehen, in dem man die Query umschreibt in:

SELECT t1.id,t2.id,t3.id FROM (t1,t2) LEFT JOIN t3 ON (t3.id=t1.id)
WHERE t1.id=t2.id;

bzw. mit natural join:

SELECT t1.id,t2.id,t3.id FROM t1,t2 NATURAL LEFT JOIN t3
WHERE t1.id=t2.id;

7 thoughts on “Spam Karma 2.0 und MySQL 5.0.12

  1. … und so als Nachtrag, was debuggt man da 2 Std. zu zweit rum? Ein Blick in die MySQL 5 Doku reicht doch aus… hat’s bei mir zumindest und das hat nicht mal 5 Minuten gedauert ..

    .. wie ich solche kommentare hasse … grummel …

  2. Erstens finde ich daß Bugreports in Mails gehören, insbesondere, wenn man *gemerkt* hat, daß die Trackbacks nicht funktionieren. Und tja, ganz ehrlich: die MySQL-Doku ist nicht unbedingt übersichtlich und ich zumindest bin nicht sonderlich gut in SQL, sodaß ich bei sowas eher den Fehler bei mir suche.

    Warum haßt du solche Kommentare? Ich habe dir eine rationale Frage gestellt und darauf hingewiesen, daß es mir Suche erspart hätte. Ich verlange ja nicht, daß du dem Autor einen Patch auf dem Silbertablett servierst. Zwei Zeilen Mail hätten ja gereicht.

  3. .. Mail .. ja wäre ne Möglichkeit gewesen ..

    Warum ich solche Kommentare hasse? Weil dein Kommentar sehr komisch rüber gekommen ist … na ja .. egal .. freut mich auf jeden Fall das du dein Problem lösen konntest …

  4. Okay, es kam vielleicht patziger rüber, als es gemeint war. Aber ich hatte halt ziemlich den Kaffee auf, weil MySQL alleine bei der Fehlersuche ja so „hilfreich“ ist. Mir we ja lieber, WordPress würde ein generisches DBAPI benutzen und man könnte nach Belieben MySQL oder Postgres oder … drunterpacken.

Comments are closed.