[development] touchy mysql ordering
Tao Starbow
starbow at citris-uc.org
Sat Feb 11 06:11:30 UTC 2006
Stop me if you've heard this one before.
I recently upgraded the server running my Drupal site, and the events
calendar stopped working for everyone except user=1. I tracked down the
problem to this (simplified) line of SQL:
SELECT n.nid, e.event_start FROM {event} e INNER JOIN {node} n ON n.nid
= e.nid
This returns all my events if the user=1, and zero if the user is anyone
else.
However, if I rewrite the SQL as:
SELECT n.nid, e.event_start FROM {node} n INNER JOIN {event} e ON n.nid
= e.nid
then it behaves as I would expect, returning all events regardless of
who the user is.
I did not have this problem on my old server, which was running mysql
4.0.20-max. The new server is running mysql 5.0.17.
I suspect whatever is causing this is also at the root of my
node_access_by_role issue (http://drupal.org/node/40623). I guess my
next move is to install the devel module and see if I can find a
difference between the sql actually being generated when user=1 vs user!=1.
ps. It was great meeting you all in Vancouver.
--
Tao Starbow
Web Architect, CITRIS
More information about the development
mailing list