Defect #19485
closedColumn 'address' in where clause may be ambiguous
0%
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
Updated by Rafał Lisowski almost 10 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
Updated by Toshi MARUYAMA almost 10 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.
Updated by Go MAEDA almost 10 years ago
The same error is reported in #19595 and that issue has a workaround.
Updated by Toshi MARUYAMA almost 10 years ago
- Has duplicate Defect #19595: Broken "receiving emails" added
Updated by Go MAEDA almost 10 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
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
Updated by Toshi MARUYAMA over 9 years ago
- Has duplicate Defect #19884: address column in WHERE clause is ambiguous added
Updated by Toshi MARUYAMA over 9 years ago
- Category changed from Email receiving to Database
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.
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.