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.