Skip to content
Snippets Groups Projects
Unverified Commit 5cf8bf83 authored by metamben's avatar metamben Committed by GitHub
Browse files

Preserve false as default value in case clauses (#24274)

This change makes sure that false as the default value in a case statement is not ignored.
parent 5ca09b8f
No related branches found
No related tags found
No related merge requests found
......@@ -518,7 +518,7 @@
(defmethod ->honeysql [:sql :case]
[driver [_ cases options]]
(->> (concat cases
(when (:default options)
(when (some? (:default options))
[[:else (:default options)]]))
(apply concat)
(mapv (partial ->honeysql driver))
......
......@@ -67,6 +67,19 @@
mbql->native
sql.qp-test-util/sql->sql-map))))
(deftest case-test
(testing "Test that boolean case defaults are kept (#24100)"
(is (= [[1 1 true]
[2 0 false]]
(mt/rows
(mt/run-mbql-query venues
{:source-table $$venues
:order-by [[:asc $id]]
:expressions {"First int" [:case [[[:= $id 1] 1]] {:default 0}]
"First bool" [:case [[[:= $id 1] true]] {:default false}]}
:fields [$id [:expression "First int" nil] [:expression "First bool" nil]]
:limit 2}))))))
(deftest join-test
(testing "Test that correct identifiers are used for joins"
(is (= '{:select [VENUES.ID AS ID
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment