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.