Consider the following scenario:
You use a database with the compatibility level set to 130 in Microsoft SQL Server 2016.
You execute a query that accesses a column store index and a row store index or a heap, and includes a filter predicate (WHERE clause).
In this scenario, SQL Server will not be able to push the filter predicate closer to the data source operator (table or index scan or seek). This may cause suboptimal query performance.
In addition, if the query uses an expression (such as type conversion) where its correctness depends on filtered data (for example, a char table column is converted to int, but only a subset of values contain a valid int representation, and this subset is identified by the filter predicate), then the query may fail with a data conversion error that resembles one of the following:
Msg 245, Level 16, State 1, Line 20
Conversion failed when converting the varchar value '0.5' to data type int.
Msg 8114, Level 16, State 5, Line 34
Error converting data type varchar to bigint.
This issue is fixed in the following cumulative update for SQL Server:
Cumulative Update 2 for SQL Server 2016 SP1
Note You must enable query optimizer hotfixes in order for this fix to take effect.
You can enable the query optimizer hotfixes by using one of the following options: trace flag 4199, Database Scoped Configuration setting QUERY_OPTIMIZER_HOTFIXES=ON (available in SQL Server 2016 and later), or USE_HINT query option 'ENABLE_QUERY_OPTIMIZER_HOTFIXES' (available in SQL Server 2016 SP1 and later).
Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:
Latest cumulative update for SQL Server 2016
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
Learn about the terminologythat Microsoft uses to describe software updates.