I am using postgresql. Admittedly, I'm not certain if this is a subscriptions issue, or a core issue.
If I navigate to my subscription tab (/user/1/subscriptions/node), and click on pages/threads, I get the following:
PDOException: SQLSTATE[42883]: Undefined function: 7 ERROR: function if(boolean, integer, integer) does not exist at character 464 HINT: No function matches the given name and argument types. You might need to add explicit type casts.: SELECT n.nid AS nid, n.uid AS uid, n.title AS title, n.status AS status, n.changed AS changed, s.send_interval AS send_interval, s.author_uid AS author_uid, s.send_comments AS send_comments, s.send_updates AS send_updates, ncs.last_comment_timestamp AS last_comment_timestamp, IF(s.send_comments + s.send_updates = 0, n.created, IF(s.send_comments + s.send_updates = 2, IF(n.changed > ncs.last_comment_timestamp, n.changed, ncs.last_comment_timestamp), IF(s.send_comments = 1, ncs.last_comment_timestamp, n.changed))) AS latest_activity FROM {node} n INNER JOIN {subscriptions} s ON CAST(n.nid AS VARCHAR) = s.value LEFT OUTER JOIN {node_comment_statistics} ncs ON n.nid = ncs.nid WHERE (s.module = :db_condition_placeholder_0) AND (s.field = :db_condition_placeholder_1) AND (s.recipient_uid = :db_condition_placeholder_2) ORDER BY latest_activity desc LIMIT 50 OFFSET 0; Array ( [:db_condition_placeholder_0] => node [:db_condition_placeholder_1] => nid [:db_condition_placeholder_2] => 1 ) in PagerDefault->execute() (line 79 of /mydrupalpath/includes/pager.inc).
I don't believe it is related, but mention it here in case it is helpful. In the d6 version of subscriptions, I could go to "/user/5044/subscriptions/" to view that person's subscriptions. When I try this in d7 (and I have all the relevant permissions set), I get an access denied error.
Comments
Comment #1
salvisWow, seems like you are the first pgsql user who comes this way!
I've updated the -dev version (give it up to 12h to be repackaged).
Please let us know how it goes.
Comment #2
seattlehimay commentedThat error has gone away, and now I get a type mismatch error in its place:
PDOException: SQLSTATE[42883]: Undefined function: 7 ERROR: operator does not exist: integer = character varying HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.: SELECT c.* FROM {comment} c WHERE (c.nid IN (SELECT s.value AS value FROM {subscriptions} s WHERE (s.module = :db_condition_placeholder_0) AND (s.field = :db_condition_placeholder_1) AND (s.recipient_uid = :db_condition_placeholder_2) )) AND (c.uid = :db_condition_placeholder_3) GROUP BY c.nid; Array ( [:db_condition_placeholder_0] => node [:db_condition_placeholder_1] => nid [:db_condition_placeholder_2] => 1 [:db_condition_placeholder_3] => 1 ) in _subscriptions_content_node_form() (line 177 of /mysitepath/modules/subscriptions/subscriptions_content.admin.inc).Thank you for your work on this!!
Comment #3
salvisThanks, marking fixed.
Please open a new issue for the new error. The issue numbers are reflected in the commit comments and we've used this one up.
I'm afraid there may be many more of these PostgreSQL issues because they don't come to light until someone actually tries to run under pgsql. I will try to work around the pgsql quirks as you report them, but we may have a way to go...