Database crash when a NULL string is compared with a Lua scalar script result
Details
| Detail name | Value |
|---|---|
| Changelog Number | 30053 |
| Type | Bug |
| Status | Resolved |
| Affected Versions | Exasol 8.1.0, Exasol 8.29.0, Exasol 7.1.30, Exasol 2025.1.0, Exasol 2025.2.0, Exasol 2026.1.0 |
| Fix Versions | Exasol 2025.1.15 |
| Resolution Date | 2026-08-13 |
Description
A query can crash when it compares a VARCHAR value containing NULL with a non-NULL VARCHAR result from a Lua scalar script, using = or !=.
This can occur in a direct query result or in conditional expressions used by aggregates such as COUNT and COUNT(DISTINCT).
Example
CREATE OR REPLACE LUA SCALAR SCRIPT SCRIPT1()
RETURNS VARCHAR(128) AS
function run(ctx)
return 'TEST'
end
/
;
CREATE TABLE T (
L1 VARCHAR(128) UTF8,
O1 VARCHAR(2000000) UTF8
);
INSERT INTO T
SELECT NULL, 'xxxxxxxxxx'
FROM VALUES BETWEEN 1 AND 100000 AS V(V);
-- Expected: returns 0
-- Observed: "internal server error"
SELECT COUNT(DISTINCT IF L1 != SCRIPT1() THEN O1 ENDIF)
FROM T;
Workaround
There is no general SQL workaround.
Fix
Valid queries now follow SQL NULL semantics and no longer crash.