Modify

Opened 6 years ago

Last modified 2 years ago

#9976 assigned defect

Internal error with Postgresql database.

Reported by: rzhidalgo@yahoo.com Owned by: Roberto Longobardi
Priority: normal Component: FaqPlugin
Severity: normal Keywords:
Cc: Trac Release: 0.12

Description (last modified by Ryan J Ollos)

Clicking on the FAQ top menu option generates an Internal Server Error. The trac.log displays:

ProgrammingError: column "wiki.text" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: SELECT name, text, max(version) FROM wiki WHERE name LIKE 'F...

Attachments (0)

Change History (5)

comment:1 Changed 6 years ago by rzhidalgo@yahoo.com

The solution is to modify a SQL statement in the macros.py file to be valid with Postgresql. Below is the new SQL statement (macros.py (line 246)):

current:

    sql = "SELECT name, text, max(version) FROM wiki WHERE name LIKE '%s%%' GROUP BY name ORDER BY name" % curpage

new:

    sql = "SELECT name, text, version FROM wiki WHERE name LIKE '%s%%' AND version = (select max(version) FROM wiki WHERE name LIKE '%s%%')" % (curpage, curpage)
Last edited 2 years ago by Ryan J Ollos (previous) (diff)

comment:2 Changed 6 years ago by Ryan J Ollos

Description: modified (diff)

comment:3 Changed 6 years ago by Roberto Longobardi

Rozhi, I like when people finds problems, and I like it even more when they also find the solutions ;-)

Thanks for sharing this one.

I will try the modified version with SQLite and eventually update the code in next release asap.

BTW, if you think af anything that may improve this plugin, feel free to open an enhancement request here on trac-hacks (or provide a patch ;-)).

Ciao, Roberto

comment:4 Changed 6 years ago by Roberto Longobardi

Status: newassigned

comment:5 Changed 2 years ago by Ryan J Ollos

Trac has a db.like() method for cross-database compatibility. More info at trac:TracDev/DatabaseApi#GuidelinesforSQLStatements.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as assigned The owner will remain Roberto Longobardi.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.