You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hawq.apache.org by "Radar Lei (JIRA)" <ji...@apache.org> on 2017/07/03 09:11:00 UTC
[jira] [Commented] (HAWQ-1483) cache lookup failure
[ https://issues.apache.org/jira/browse/HAWQ-1483?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16072149#comment-16072149 ]
Radar Lei commented on HAWQ-1483:
---------------------------------
Verified this issue still exist on HAWQ 2.2.0.0-incubating version.
> cache lookup failure
> --------------------
>
> Key: HAWQ-1483
> URL: https://issues.apache.org/jira/browse/HAWQ-1483
> Project: Apache HAWQ
> Issue Type: Bug
> Reporter: Rahul Iyer
> Assignee: Radar Lei
>
> I'm getting a failure when performing a distinct count with another immutable aggregate. We found this issue when running MADlib on HAWQ 2.0.0. Please find below a simple repro.
> Setup:
> {code}
> CREATE TABLE example_data(
> id SERIAL,
> outlook text,
> temperature float8,
> humidity float8,
> windy text,
> class text) ;
> COPY example_data (outlook, temperature, humidity, windy, class) FROM stdin DELIMITER ',' NULL '?' ;
> sunny, 85, 85, false, Don't Play
> sunny, 80, 90, true, Don't Play
> overcast, 83, 78, false, Play
> rain, 70, 96, false, Play
> rain, 68, 80, false, Play
> rain, 65, 70, true, Don't Play
> overcast, 64, 65, true, Play
> sunny, 72, 95, false, Don't Play
> sunny, 69, 70, false, Play
> rain, 75, 80, false, Play
> sunny, 75, 70, true, Play
> overcast, 72, 90, true, Play
> overcast, 81, 75, false, Play
> rain, 71, 80, true, Don't Play
> \.
> create function grt_sfunc(agg_state point, el float8)
> returns point
> immutable
> language plpgsql
> as $$
> declare
> greatest_sum float8;
> current_sum float8;
> begin
> current_sum := agg_state[0] + el;
> if agg_state[1] < current_sum then
> greatest_sum := current_sum;
> else
> greatest_sum := agg_state[1];
> end if;
> return point(current_sum, greatest_sum);
> end;
> $$;
> create function grt_finalfunc(agg_state point)
> returns float8
> immutable
> strict
> language plpgsql
> as $$
> begin
> return agg_state[1];
> end;
> $$;
> create aggregate greatest_running_total (float8)
> (
> sfunc = grt_sfunc,
> stype = point,
> finalfunc = grt_finalfunc
> );
> {code}
> Error:
> {code}
> select count(distinct outlook), greatest_running_total(humidity::integer) from example_data;
> {code}
> {code}
> ERROR: cache lookup failed for function 0 (fmgr.c:223)
> {code}
> Execution goes through if I remove the {{distinct}} or if I add another column for the {{count(distinct)}}.
> {code:sql}
> select count(distinct outlook) as c1, count(distinct windy) as c2, greatest_running_total(humidity) from example_data;
> {code}
> {code}
> c1 | c2 | greatest_running_total
> ----+----+------------------------
> 3 | 2 |
> (1 row)
> {code}
> {code:sql}
> select count(outlook) as c1, greatest_running_total(humidity) from example_data;
> {code}
> {code}
> count | greatest_running_total
> -------+------------------------
> 14 |
> (1 row)
> {code}
> It's an older build - I don't have the resources at present to test this on the latest HAWQ.
> {code}
> select version();
> version
> -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.0.0 build 22126) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Apr 25 2016 09:52:54
> (1 row)
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)