You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hawq.apache.org by "Ruilong Huo (JIRA)" <ji...@apache.org> on 2016/02/18 11:00:27 UTC
[jira] [Resolved] (HAWQ-328) plsql loop three times exit
abnormality
[ https://issues.apache.org/jira/browse/HAWQ-328?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ruilong Huo resolved HAWQ-328.
------------------------------
Resolution: Fixed
This issue has been fixed. Refer to HAWQ-412 for details.
> plsql loop three times exit abnormality
> ---------------------------------------
>
> Key: HAWQ-328
> URL: https://issues.apache.org/jira/browse/HAWQ-328
> Project: Apache HAWQ
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.0.0-beta-incubating
> Reporter: longgeligelong
> Assignee: Ruilong Huo
> Priority: Blocker
> Fix For: 2.0.0
>
>
> plsql of hawq loop three times exit abnormality.
> Add print in code, Then I found when program looped third time, before running line 824 in src/backend/executor/execMain.c, the value of queryDesc->plannedstmt->resource->type is 1050. After running this line the value became a random number. But after running this line in the tirst two loop, the value is still 1050. Because queryDesc is not a actual parameter of prepareDispatchedCatalogRelation in line 824, I cannot continue to keep track of code.
> stdour and stderr as below :
> psql:test_plsql_loop.sql:66: NOTICE: for loop: quantity here is 1
> psql:test_plsql_loop.sql:66: NOTICE: FOR LOOP: ROW HERE IS (14929)
> psql:test_plsql_loop.sql:66: NOTICE: for loop: quantity here is 2
> psql:test_plsql_loop.sql:66: NOTICE: FOR LOOP: ROW HERE is (14929)
> psql:test_plsql_loop.sql:66: NOTICE: for loop: quantity here is 3
> psql:test_plsql_loop.sql:66: ERROR: could not serialize unrecognized node type: 38814640 (outfast.c:4742)
> CONTEXT: SQL statement "SELECT COUNT(1) FROM oiq_t_2"
> PL/pgSQL function "func2" line 11 at SQL statement
> plsql code as below:
> CREATE OR REPLACE FUNCTION funcloop() RETURNS text AS $func$
> DECLARE
> rowvar RECORD;
> BEGIN
> FOR i IN 1..10 LOOP
> RAISE NOTICE 'loop: quantity here is %', i;
> SELECT COUNT(1) INTO rowvar FROM oiq_t_2;
> RAISE NOTICE 'FOR LOOP: ROW HERE IS %', rowvar;
> END LOOP;
> return rowvar;
> END;
> $func$ LANGUAGE plpgsql;
> select funcloop();
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)