Project

General

Profile

Actions

Defect #6413

closed

Error in SQL

Added by Juan G over 13 years ago. Updated over 13 years ago.

Status:
Closed
Priority:
Normal
Category:
Code cleanup/refactoring
Target version:
Start date:
2010-09-16
Due date:
% Done:

100%

Estimated time:
Resolution:
Fixed
Affected version:

Description

Hi all!

I am using redmine and having an SQL error when trying to get the issues resume inside a project.

Environment:

Ruby 1.8.7 pathlevel 249)
Rails 2.3.5
Oracle (yes, I know it's not supported but the solution below seems so easy and won't cause regression I think)

The error is in the SQL executed in the file app/models/issue.rb, line 828:
Where now is
def self.count_and_group_by(options)
    project = options.delete(:project)
    select_field = options.delete(:field)
    joins = options.delete(:joins)

    where = "i.#{select_field}=j.id" 

    ActiveRecord::Base.connection.select_all("select    s.id as status_id, 
                                                s.is_closed as closed, 
                                                j.id as #{select_field},
                                                count(i.id) as total 
                                              from 
                                                  #{Issue.table_name} i, #{IssueStatus.table_name} s, #{joins} as j
                                              where 
                                                i.status_id=s.id 
                                                and #{where}
                                                and i.project_id=#{project.id}
                                              group by s.id, s.is_closed, j.id")
  end

it should be
def self.count_and_group_by(options)
    project = options.delete(:project)
    select_field = options.delete(:field)
    joins = options.delete(:joins)

    where = "i.#{select_field}=j.id" 

    ActiveRecord::Base.connection.select_all("select    s.id as status_id, 
                                                s.is_closed as closed, 
                                                j.id as #{select_field},
                                                count(i.id) as total 
                                              from 
                                                  #{Issue.table_name} i, #{IssueStatus.table_name} s, #{joins}  j
                                              where 
                                                i.status_id=s.id 
                                                and #{where}
                                                and i.project_id=#{project.id}
                                              group by s.id, s.is_closed, j.id")
  end

The "as j" in the SQL query is wrong and causes SQL error. Deleting "as" makes it working ok.

Actions

Also available in: Atom PDF