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.