Details
-
Type: Bug
-
Status: Done/Fixed
-
Priority: Trivial
-
Resolution: Fixed/Completed
-
Affects Version/s: 3.3.0, 3.3.1, 3.3.2
-
Fix Version/s: 3.3.3
-
Component/s: None
-
Labels:None
Description
For e.g: when first name is absent in params for a fuzzy rule - first_last+email, queries would be generated as:
Array
(
[0] => SELECT id id, 5 weight FROM civicrm_contact WHERE first_name = 'NULL'
[1] => SELECT id id, 7 weight FROM civicrm_contact WHERE last_name = 'Adams'
[2] => SELECT contact_id id, 10 weight FROM civicrm_email WHERE email = 'adamsmelinda@npo.co.in'
)
Which would work with old union algorithm but not with the new one. And therefore would not give the correct results.
With new algorithm the queries should be generated as :
Array
(
[0] => SELECT id id, 7 weight FROM civicrm_contact WHERE last_name = 'Adams'
[1] => SELECT contact_id id, 10 weight FROM civicrm_email WHERE email = 'adamsmelinda@npo.co.in'
)
With "find dupes" also there is issue for weights of nature:
10,7,5 with Threshold 17 ( A threshold of 20 / 10 should work fine ).
weights of following nature should work fine:
10,10,10 with threshold 30 / 20 / 10
5,5,5,5 with threshold 10
...
Steps to reproduce
================
update default Individual Fuzzy rule slightly so that Threshold = 17 instead of 20. This SHOULD mean that if Last Name and Email match, we have a dupe. Create two contacts:
Jack Black, jblack@foo.org
Jackson Black, jblack@foo.org
The "save individual" form won't pick up the dupe suspect.
Running "Use Rule" from dedupefind, won't find the pair either.