From 011c95d1fba63c34960a55cde2a0fd0285c3cb22 Mon Sep 17 00:00:00 2001 From: arushi-firebolt <146018150+arushi-firebolt@users.noreply.github.com> Date: Wed, 6 Mar 2024 00:10:32 -0800 Subject: [PATCH] Adding FR-30843 --- docs/general-reference/release-notes/release-notes.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/general-reference/release-notes/release-notes.md b/docs/general-reference/release-notes/release-notes.md index 800292d..1e59360 100644 --- a/docs/general-reference/release-notes/release-notes.md +++ b/docs/general-reference/release-notes/release-notes.md @@ -55,6 +55,12 @@ This is a breaking change. Firebolt can now process inner and outer joins that exceed the available main memory of the engine by spilling to the the SSD cache when needed. This happens transparently to the user. A query that made use of this capability will populate the `spilled_bytes` column in `information_schema.query_history`. +**Nullable Tuples Query Speed** + +Fixed a correctness issue when using anti joins with nullable tuples. Firebolt now returns correct results for such queries. However, this can lead to less efficient query plans, causing queries with anti joins on tuples to become slower. If the tuples are not nullable, the plans remain the same as before. + +If you know that the values cannot be null when performing an anti join on nullable tuples, you can wrap all nullable columns involved in the NOT IN comparison with COALESCE to make them non-nullable, using some default value for the null case. This ensures that Firebolt can still choose an efficient plan while retaining correctness. + ### Resolved issues * Fixed a bug where floating point values `-0.0` and `+0.0`, as well as `-nan` and `+nan` were not considered equal in distributed queries.