Project

General

Profile

Actions

Defect #19485

closed

Column 'address' in where clause may be ambiguous

Added by Andrey Sennikov almost 10 years ago. Updated over 9 years ago.

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

0%

Estimated time:
Resolution:
Fixed
Affected version:

Description

Hello.
i`ve got the following error after upgrading from 2.6.1 to 3.0.1

Mysql2::Error: Column 'address' in where clause is ambiguous:
 SELECT  DISTINCT `users`.* FROM `users` INNER JOIN `email_addresses` ON `email_addresses`.`user_id` = `users`.`id` WHERE `users`.`type` 
 IN ('User', 'AnonymousUser') AND (LOWER(address) IN ('myemail@mail.com'))  ORDER BY `users`.`id` ASC LIMIT 1

emails received by cronjob every minute.
rake redmine:email:receive_imap RAILS_ENV="production" host=imap.gmail.com port=993 username=email@email password=password ssl=true move_on_success=read project=public-project247 category=HelpDesk unknown_user=create no_permission_check=1 allow_override=tracker,priority,project,status,category,assigned_to

Please give advise for solving this issue

Environment:
Redmine version 3.0.1.stable
Ruby version 1.9.3-p194 (2012-04-20) [x86_64-linux]
Rails version 4.2.0
Environment production
Database adapter Mysql2
SCM:
Git 1.7.10.4
Filesystem
Redmine plugins:
redmine_agile 1.3.8
redmine_email_fetcher 0.3.0
redmine_issue_history 1.0.0
redmine_wysiwyg 1.0.0

plugins
Redmine Agile plugin (Light version)
redmine_issue_history
redmine_wysiwyg


Related issues

Has duplicate Redmine - Defect #19595: Broken "receiving emails"Closed

Actions
Has duplicate Redmine - Defect #19884: address column in WHERE clause is ambiguousClosed

Actions
Actions #1

Updated by Toshi MARUYAMA almost 10 years ago

  • Description updated (diff)
Actions #2

Updated by Rafał Lisowski over 9 years ago

are you sure that you don't have any other plugins?
In my logs sql look the same and is working:

SELECT  DISTINCT `users`.* FROM `users` 
  INNER JOIN `email_addresses` ON `email_addresses`.`user_id` = `users`.`id` 
  WHERE `users`.`type` IN ('User', 'AnonymousUser') AND (LOWER(address) IN ('l.ka@company.com'))  
  ORDER BY `users`.`id` ASC LIMIT 1

Actions #3

Updated by Toshi MARUYAMA over 9 years ago

  • Status changed from New to Needs feedback

I think your "users" table has "address" column created by plugin which you use or used.

Actions #4

Updated by Go MAEDA over 9 years ago

The same error is reported in #19595 and that issue has a workaround.

Actions #5

Updated by Toshi MARUYAMA over 9 years ago

Actions #6

Updated by Go MAEDA over 9 years ago

A workaround by Andrey Sennikov (#19595).

Index: app/models/user.rb
===================================================================
--- app/models/user.rb    (revision 14160)
+++ app/models/user.rb    (working copy)
@@ -130,7 +130,7 @@
   scope :having_mail, lambda {|arg|
     addresses = Array.wrap(arg).map {|a| a.to_s.downcase}
     if addresses.any?
-      joins(:email_addresses).where("LOWER(address) IN (?)", addresses).uniq
+      joins(:email_addresses).where("LOWER(email_addresses.address) IN (?)", addresses).uniq
     else
       none
     end
Actions #7

Updated by Toshi MARUYAMA over 9 years ago

  • Subject changed from error in imap fetch task after update to 3.0.1 to Column 'address' in where clause is ambiguous
Actions #8

Updated by Toshi MARUYAMA over 9 years ago

  • Has duplicate Defect #19884: address column in WHERE clause is ambiguous added
Actions #9

Updated by Toshi MARUYAMA over 9 years ago

  • Category changed from Email receiving to Database
Actions #10

Updated by Future Link Corporation pkgsrc team over 9 years ago

For us, it was the People plugin which caused this problem. In any case, less ambiguity in the SELECT statement wouldn't be a bad thing. Can this patch be integrated? It seems we fixed it in the same way.

Actions #11

Updated by Jean-Philippe Lang over 9 years ago

  • Target version set to 3.0.4
Actions #12

Updated by Jean-Philippe Lang over 9 years ago

  • Subject changed from Column 'address' in where clause is ambiguous to Column 'address' in where clause may be ambiguous
  • Category changed from Database to Code cleanup/refactoring
  • Status changed from Needs feedback to Closed
  • Assignee set to Jean-Philippe Lang
  • Resolution set to Fixed

Fixed in r14284.

Actions

Also available in: Atom PDF