I bet it uses the users_spammable view. On Oracle that view breaks and has to be recompiled any time you add a column to users (because the view is defined as "select * from users where..."). You might try the PostGres equivalent of "select object_name, object_type from user_objects where status = 'INVALID';" to see if your data dictionary shows any invalid views (or functions, etc). I would however expect that if this were the problem that there would be a database error logged to the server error log.