Mixing SQL92 joins and PLUS notation for outer-joins crashes the database
Details
| Detail name | Value |
|---|---|
| Changelog Number | 5736 |
| Type | Bug |
| Status | Open |
| Affected Versions | EXASOL 6.0.0, EXASolution 5.0.0, Exasol 6.1.0, Exasol 6.2.0, Exasol 7.0.0, Exasol 7.1.0, Exasol 8.0.0, Exasol 8.29.0, Exasol 2025.1.0, Exasol 2025.2.0 |
Certain queries containing ORACLE + notation will cause the database to crash. More specifically, this occurs whenever the query contains more than one LEFT (OUTER) JOIN (but not a single LEFT JOIN!).
The Following DDL:
CREATE TABLE countries
(
id NUMBER(3),
name VARCHAR2(70)
);
CREATE TABLE cities
(
name VARCHAR2(70),
country_id NUMBER(3)
);
INSERT INTO countries VALUES (1, 'France');
INSERT INTO cities VALUES ('Paris', 1);
INSERT INTO cities VALUES ('London', 2);
together with the following simple query will produce the crash:
SELECT c.name, countries.name
FROM cities c
LEFT JOIN countries
ON c.country_id = countries.id
LEFT JOIN cities c2
ON c2.country_id = c.country_id
WHERE c.name(+) IN('Paris');
Workaround:
Please do not mix SQL92 with ORACLE + notation as this is not supported. A fix is planned for the future, such that when such SQL statements occur, the database will not crash but rather return an error message.