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;

  1. Und warum hast du dem Autor von Sk2 das nicht mitgeteilt? Dann hätten er und ich uns ca. zwei Stunden Debugging sparen können.

    • Evil.Bert
    • 16. Nov. 2005 10:35pm

    hab´s versucht, doch weder meine Trackbacks noch meine Kommentare sind zu der Zeit angenommen worden (wieso auch immer) …

    • Evil.Bert
    • 16. Nov. 2005 10:56pm

    … 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.

    • Evil.Bert
    • 17. Nov. 2005 3:39pm

    .. 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 …

  3. 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.

    • Niklas
    • 26. Nov. 2010 4:03pm

    Immer mit der Ruhe Jungs, im Grunde seid ihr euch doch einig! also kein Stress…

  1. 20. Okt. 2005
  2. 16. Nov. 2005
  3. 17. Nov. 2005
    TrackBack von: