Multiple references to VIEW or CTE containing an EMITS UDF return internal server error

Details

Detail name Value
Changelog Number 14664
Type Bug
Status Resolved
Affected Versions Exasol 7.1.1, Exasol 7.1.2, Exasol 7.1.3, Exasol 7.1.4, Exasol 7.1.5, Exasol 7.1.6, Exasol 7.1.7, Exasol 7.1.8, Exasol 7.1.9
Fix Versions Exasol 8.0.0, Exasol 7.1.10
Resolution Date 2022-04-20

Description

Queries may return an internal server error if the query references a view or CTE multiple times and the view or CTE contains an EMITS UDF.

Preparation

create or replace table t_json (json_key VARCHAR(1000), json_data VARCHAR(2000000));
insert into t_json values ('key1','[{"id":"ID1","a": 1},{"id":"ID2","a": 2}]');

create or replace view v_data as
    select 
	json_key,
	json_extract(
        json_data,
        '$#.id',
        '$#.a',
        '$.error()'
    ) emits (
       id VARCHAR(10),
       a DECIMAL(18,5),
       error_column VARCHAR(2000000)
    )
    from
        t_json
;

Example

Raising "Successfully reconnected after internal server error, transaction was rolled back"

select * from v_data
union all
select * from v_data;

Workaround

Materialize the views using (CREATE TABLE AS).

Fix

The query does not raise an internal server error, as expected.