[Tickets #7750] SQL driver error on PERMS_ROOT with PostgreSQL

bugs at horde.org bugs at horde.org
Wed Dec 3 16:57:25 UTC 2008


DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.

Ticket URL: http://bugs.horde.org/ticket/7750
------------------------------------------------------------------------------
  Ticket             | 7750
  Created By         | Marcus Ryan <marcus at riboflavin.net>
  Summary            | SQL driver error on PERMS_ROOT with PostgreSQL
  Queue              | Horde Framework Packages
  Version            | FRAMEWORK_3
  Type               | Bug
  State              | Unconfirmed
  Priority           | 2. Medium
  Milestone          |
  Patch              | 1
  Owners             |
+New Attachment     | patch
------------------------------------------------------------------------------


Marcus Ryan <marcus at riboflavin.net> (2008-12-03 11:57) wrote:

When trying to create a root permission for an application a call is  
made to the sql driver (Horde/Perms/sql.php) getPermissionId method.   
The call to the database is made as 'SELECT perm_id FROM horde_perms  
WHERE perm_name = ?', but at least with postgresql when the name id  
for PERMS_ROOT (-1) is passed, it's interpreted as a number, not a  
string, and postgresql complains:

Dec  3 10:25:55 dsl postgres[43453]: [5-3] STATEMENT:  SELECT perm_id  
FROM horde_perms WHERE perm_name = -1
Dec  3 10:26:10 dsl postgres[42457]: [5-1] ERROR:  operator does not  
exist: character varying = integer at character 49
Dec  3 10:26:10 dsl postgres[42457]: [5-2] HINT:  No operator matches  
the given name and argument type(s). You might need to add explicit  
type casts.

It seems reasonable to shortcut this (both for this bug and  
performance in general) to say if name == PERMS_ROOT return an id of  
PERMS_ROOT (works on my install anyway).





More information about the bugs mailing list