Using the boolean value true as prepared parameter causes wrong results

Details

Detail name Value
Changelog Number 29579
Type Bug
Status Resolved
Affected Versions Exasol 2025.1.10
Fix Versions Exasol 2026.1.0, Exasol 2025.1.11
Resolution Date 2026-05-15

Description

Using the value “true” as boolean type inside a prepared parameter causes wrong results.
Example:

CREATE OR REPLACE TABLE b (b1 BOOL);
INSERT INTO b VALUES (true), (false);

-- Using prepared parameter with type Boolean: (true):
-- Expected: 1 row, values (true)
-- Observed: 1 row, values (false)
SELECT * FROM b WHERE b1 = ?;

Workaround

Use a prepared parameter of type CHAR/VARCHAR.

CREATE OR REPLACE TABLE b (b1 BOOL);
INSERT INTO b VALUES (true), (false);

-- Using prepared parameter with type VARCHAR: ('true'):
-- Observed: 1 row, values (true)
SELECT * FROM b WHERE b1 = cast(? AS BOOL);

Fix

The queries return the correct results.