Icon View Incident Report

Serious Serious
Reported By: Doug Lyman
Reported On: 7/27/2018
For: Version 2.28 Build 4
# 4673 Un-Optimized Case-Insensitive Row Value Constructor Expressions Not Compared Properly

The following two queries return different results for the rows where the Invoice column is 34.

Total Set:

SELECT ALL
"d"."record_id" AS "record_id",
"d"."BILL_NEVER" AS "BILL_NEVER",
"d"."BILL_INS" AS "BILL_INS",
"d"."PRACTICE" AS "PRACTICE",
"d"."CLIENT" AS "CLIENT",
"d"."PATIENT" AS "PATIENT",
"d"."invoice" AS "invoice"
FROM "Billing Detail" AS "d"
WHERE ("d"."PRACTICE", "d"."CLIENT") = ('Phil..beavercreekfhc.com',
'VANDE46411') AND ("d"."PATIENT" BETWEEN 'VANDE46411' AND 'VANDE46411ZZZ')

Subset of 1:

SELECT ALL
"d"."record_id" AS "record_id",
"d"."BILL_NEVER" AS "BILL_NEVER",
"d"."BILL_INS" AS "BILL_INS",
"d"."PRACTICE" AS "PRACTICE",
"d"."CLIENT" AS "CLIENT",
"d"."PATIENT" AS "PATIENT",
"d"."invoice" AS "invoice"
FROM "Billing Detail" AS "d"
WHERE ("d"."PRACTICE", "d"."CLIENT") = ('Phil..beavercreekfhc.com',
'VANDE46411') AND ("d"."PATIENT" BETWEEN 'VANDE46411' AND 'VANDE46411ZZZ') AND
("d"."INVOICE" BETWEEN 34 AND 34)



Comments Comments
The subset query was being re-written by the query optimizer and, in the process, the row value constructor expression was converted into an un-optimized expression, and this is where the issue occurred. The row value constructor comparisons in this case were not using the case-insensitivity of the comparison column's collation, resulting in less rows being returned than should have been returned.


Resolution Resolution
Fixed Problem on 7/28/2018 in version 2.28 build 5


Products Affected Products Affected
ElevateDB Additional Software and Utilities
ElevateDB DAC Client-Server
ElevateDB DAC Client-Server with Source
ElevateDB DAC Standard
ElevateDB DAC Standard with Source
ElevateDB DAC Trial
ElevateDB LCL Standard with Source
ElevateDB PHP Standard
ElevateDB PHP Standard with Source
ElevateDB PHP Trial
ElevateDB VCL Client-Server
ElevateDB VCL Client-Server with Source
ElevateDB VCL Standard
ElevateDB VCL Standard with Source
ElevateDB VCL Trial

Image