The 2019 CU21 has a couple known issues, and they’re fairly edge case:
- If you’re using SESSION_CONTEXT, you could get incorrect results with parallel plans. The fix in CU14 turns out to create access violation dump files. The resolution is to use trace flags 9432 to disable the CU14 fix, and 11042 to disable parallelism when using SESSION_CONTEXT. They’re working on a fix for a future CU.
- If you’re using Managed Instance Link and you’re using memory-optimized tables, FileStream, or multiple log files, the database may no longer sync. The fix for this is rather complex – best to hit the CU21 page for that one.
2019 CU21 fixes a lot of issues around In-Memory OLTP, plus a few interesting query ones:
- Fixes incorrect results for queries that filter on ROW_NUMBER and involve nullable columns.
- Fixes errors and access violations in the case of multiple occurrences of the same scalar subquery.
- Improves the cardinality estimation for AND predicates.
- Fixes inconsistent results caused by a parallel spool in a plan for INSERT, UPDATE, or DELETE queries.
- Improves change tracking cleanup queries if you use trace flags 8286 and 8287 to force a different query plan.
2022 CU5 also fixes a lot of In-Memory OLTP stuff, plus:
- Fixes memory leak when you run queries that use an equals (=) predicate on a clustered columnstore index.
- Fixes race conditions when parameter-sensitive plan optimization happens with Query Store turned on.
- Fixes incorrect results when you have indexes with a DESC sort order.