Mixing LOCAL, GROUP BY and analytic functions can lead to an error

Details

Detail name Value
Changelog Number 3803
Type Bug
Status Resolved
Affected Versions EXASolution 5.0.0
Fix Versions EXASOL 6.0.0, EXASolution 5.0.19
Resolution Date 2017-03-16

The combination of LOCAL, GROUP BY and analytic functions can cause an internal server error.

Example 1:

CREATE SCHEMA S;
CREATE OR REPLACE TABLE V (
    C0            INT,
    C4            DATE
);

INSERT INTO S.V VALUES (2,'2016-11-01');

SELECT  C0,
        COUNT( C0 ) AS VAL_ALL,
        LOCAL.VAL_ALL=1 AND LOCAL.VAL_ALL=1

        ,
        SUM(c0) OVER (PARTITION BY 1)=0 x FROM S.V group by 1;

SELECT  C0,
        COUNT( C0 ) AS VAL_ALL,
        LOCAL.VAL_ALL=1 AND LOCAL.VAL_ALL >= 1 AND SUM( COUNT(*) ) OVER (PARTITION BY C0) =0 x
FROM S.V GROUP BY 1;	

Example 2:

CREATE SCHEMA TEST;

CREATE OR REPLACE TABLE T0 (C0 int, C1 TIMESTAMP); INSERT INTO T0 VALUES (1,FROM_POSIX_TIME(2)); INSERT INTO T0 VALUES (2,FROM_POSIX_TIME(1));

SELECT
	MAX(T0.C1) AS C2,
	NVL(
		SECONDS_BETWEEN(
			LEAD(LOCAL.C2, 1) OVER(ORDER BY FALSE),
			LOCAL.C2
		),
		0
	)
FROM
	T0
GROUP BY
	T0.C0,
	T0.C1;

Workaround:
Rewrite the query to either avoid local, the analytic function or the group by within the same query.