FIX: Rare incorrect result occurs when you run parallel query in SQL Server 2012 or SQL Server 2014

Applies to: SQL Server 2012 DeveloperSQL Server 2012 EnterpriseSQL Server 2012 Standard More

Symptoms


Assume that you have a nonclustered columnstore index in Microsoft SQL Server 2012 or SQL Server 2014. You run a query in parallel mode to use the columnstore feature, and the query joins the index on multiple joining columns with the probe side results computed in complex expression. In this situation, an incorrect result set may occur.

Cause


When expressions are optimized on the probe side of hash join, SQL Server assumes a specific order in hash join columns. This order may become broken during query optimization, and may cause a hash join mismatch.

Resolution


The issue was first fixed in the following cumulative update of SQL Server:

Workaround


To work around this issue, use one of the following methods:
  • Use MAXDOP=1 query hint when you execute the query.
  • Upgrade to SQL Server 2014.

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.