id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc,branch,changelog,apichanges,internalchanges 6319,Literal '%' gets duplicated in report with $VARIABLE replacement,ryank@…,Matthew Good,"I'm using the reporting engine to generate some summaries for milestones and I'm generating a percentage and wanted to concat a '%' character to my percentage. Fairly Standard. This works fine until I use a parameter to the report to customize it, at which point the '%' gets duplicated. No doubt this is an attempt somewhere to escape the % sign while processing the query for the report. Here's an example to reproduce this, using some minor modifications the standard 'Active Tickets by Milestone' report. {{{ SELECT p.value AS __color__, concat('Milestone % ', milestone) AS __group__, id AS ticket, summary, component, version as _version, t.type AS _type, owner, status, j.value as 'planned end date', k.value as 'hours left', time AS _created, changetime AS _changetime, description AS _description, reporter AS _reporter FROM ticket t LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority' LEFT JOIN ticket_custom k on t.id = k.ticket and k.name = 'hours_left' LEFT JOIN ticket_custom j on t.id = j.ticket and j.name = 'planned_end_date' WHERE status <> 'closed' and milestone = '$MILESTONE' ORDER BY (milestone IS NULL),milestone, p.value, t.type, time }}} Then run this report with '''?MILESTONE=''''''' and notice that the header will now contain two '%' charecters. Removing the $MILESTONE from the query will display the '%' correctly. I looked through report.py quickly, but I'm not too familiar with it and didn't see anything glaring. Currently running r6121",defect,closed,normal,,report system,devel,normal,worksforme,verify,,,,,