DML using system table within a subquery may cause exception

Details

Detail name Value
Changelog Number 14604
Type Bug
Status Resolved
Affected Versions Exasol 7.1.7
Fix Versions Exasol 8.0.0, Exasol 7.1.12
Resolution Date 2022-04-20

Description

A DML statement may cause an exception "successfully reconnected after internal server error" if the following conditions are met

  • a DML statement is used
  • a subquery is used
  • the subquery contains a system table
  • autocommit is turned off (default is on)
  • snapshot mode is used in mode system tables (default is system tables)

Example Query:

UPDATE T SET status = null 
WHERE EXISTS (SELECT * FROM EXA_METADATA WHERE EXA_METADATA.PARAM_NAME = 'databaseName');

Workaround

Temporarily deactivate the snapshot mode for such queries.

For example:

ALTER SESSION SET SNAPSHOT_MODE = 'OFF';

UPDATE T SET status = null 
WHERE EXISTS (SELECT * FROM EXA_METADATA WHERE EXA_METADATA.PARAM_NAME = 'databaseName');

ALTER SESSION SET SNAPSHOT_MODE = 'SYSTEM TABLES';

Fix

No error is raised in such scenarios.