postgresql7.1 select distinct(calendar_id) as calendar_id, calendar_name, ' '::varchar as checked_p from calendars where acs_permission__permission_p(calendar_id, :user_id, 'calendar_read') = 't' and acs_permission__permission_p(calendar_id, :user_id, 'calendar_show') = 't' and private_p = 'f' union select on_which_calendar as calendar_id, calendar_name, ' '::varchar as checked_p from cal_items, calendars where acs_permission__permission_p(cal_item_id, :user_id, 'cal_item_read') = 't' and calendars.private_p = 'f' and cal_items.on_which_calendar = calendars.calendar_id