6.0.0-beta1
7/5/25

[#7750] SQL driver error on PERMS_ROOT with PostgreSQL
Summary SQL driver error on PERMS_ROOT with PostgreSQL
Queue Horde Framework Packages
Queue Version FRAMEWORK_3
Type Bug
State Resolved
Priority 2. Medium
Owners chuck (at) horde (dot) org
Requester marcus (at) riboflavin (dot) net
Created 12/03/2008 (6058 days ago)
Due
Updated 12/22/2008 (6039 days ago)
Assigned 12/08/2008 (6053 days ago)
Resolved 12/22/2008 (6039 days ago)
Github Issue Link
Github Pull Request
Milestone
Patch Yes

History
12/22/2008 03:51:49 AM Chuck Hagenbuch Comment #4
State ⇒ Resolved
Reply to this comment
Committed, thanks.
12/08/2008 02:46:38 AM Chuck Hagenbuch Comment #2
State ⇒ Assigned
Assigned to Chuck Hagenbuch
Reply to this comment
I still need to look at this.
12/03/2008 04:57:24 PM Marcus Ryan Comment #1
Priority ⇒ 2. Medium
New Attachment: patch Download
Patch ⇒ Yes
Milestone ⇒
Summary ⇒ SQL driver error on PERMS_ROOT with PostgreSQL
Type ⇒ Bug
State ⇒ Unconfirmed
Queue ⇒ Horde Framework Packages
Reply to this comment
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).

Saved Queries