The ODBC driver is outputting an incorrect number of records when using LEFT JOIN ON SELECT *query. This was tested against ODBC 1.0.10 / 1.0.11.
Steps to Reproduce
On a base instance, run the following query:
FROM cmdb AS C
LEFT JOIN sys_user AS U ON C.assigned_to = U.sys_id
WHERE C.install_status <> '4'
AND C.install_status <> '6'
AND C.install_status <> '7' ;
This should result in the number of rows selected to be 2654, but the result is 2396.
Disable the ServiceSQLDiskCaching by removing the path specified in the ODBC manager.
- In the ODBC Manager, navigate to Service Settings > SQL Engine Parameters - ServiceSQLDiskCachePath.
- Remove the ServiceSQLDiskCachePath by replacing the value with an empty string
The performance impact seen on a base instance is not altered drastically from the default, but a slightly slower execution time could result. For this reason, please test and analyze it on your instance.
Related Problem: PRB747962