Improved memory footprint for analytic function on geometry type
Details
| Detail name | Value |
|---|---|
| Changelog Number | 12283 |
| Type | Bug |
| Status | Resolved |
| Affected Versions | Exasol 6.2.0, Exasol 7.0.0 |
| Fix Versions | Exasol 7.1.23, Exasol 8.23.0 |
| Resolution Date | 2023-09-11 |
Description
Analytical functions on geometry types may use too much memory, especially on systems with many nodes. This can cause out of memory errors.
Preparation:
create or replace table test.t (g geometry, id int);
insert into test.t values ('POINT(2 5)', 1);
Example:
select first_value(g) over (partition by ID) from test.t;
Workaround
Cast the geometry type to a string type in the query. The string can be casted back to a geometry type after the analytic function. For example:
select cast(first_value(cast (g as varchar(1000))) over (partition by ID) as geometry) from t;
Fix
Analytical functions handle the geometry type more efficiently with a reduced memory footprint.
The reduced memory footprint scales well with the number of nodes.