Breaking Changes between Lucee 7.0 and 7.1

edit

Breaking Changes between Lucee 7.0 and 7.1

This document outlines the breaking changes introduced when upgrading from Lucee 7.0 to Lucee 7.1.

Be aware of these changes when migrating your applications to ensure smooth compatibility.

Other Breaking Changes in Lucee Releases

QoQ SQL String Concatenation with NULL values

Previously, the HSQLDB-backed Query of Queries engine propagated NULL during string concatenation (like MySQL's CONCAT()) — 'foo' || NULL would return NULL. This caused rows with NULL values to be silently excluded from query results when using || or CONCAT() in WHERE clauses.

The native QoQ engine, which previously didn't support || or N-arg CONCAT() and fell back to HSQLDB.

Lucee 7.1 now treats NULL as an empty string during string concatenation in QoQ, matching Adobe ColdFusion behaviour, Oracle's || operator and SQL Server's CONCAT() function.

Examples using || operator:

-- Given a query with four rows: "", "123", NULL, "456"

SELECT name FROM qry WHERE CONCAT( ',', name, ',' ) NOT LIKE '%,123,%' -- or SELECT name FROM qry WHERE ',' || name || ',' NOT LIKE '%,123,%'
-- 7.0: returns 1 row (456) — ',' || NULL || ',' returns NULL, and NULL NOT LIKE '%..%' is NULL, not TRUE -- 7.1: returns 3 rows ("", NULL, "456") — NULL is treated as empty string

Both || and CONCAT() are functionally identical — they now treat NULL as an empty string in both the native and HSQLDB engines.

If your code relies on NULL propagation in QoQ string concatenation, you may need to update your queries.

LDEV-6154

See also