172 views

Description

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:

SELECT *  
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.

Workaround

Disable the ServiceSQLDiskCaching by removing the path specified in the ODBC manager.

  1. In the ODBC Manager, navigate to Service Settings > SQL Engine Parameters - ServiceSQLDiskCachePath.
  2. 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

Seen In

There is no data to report.

Fixed In

ODBC 1.0.12

Associated Community Threads

There is no data to report.

Article Information

Last Updated:2017-04-20 06:28:36
Published:2017-04-06