blob: e11a7f250e962a55dea789a28887d2340c23699e [file] [log] [blame]
LOAD '@abs_builddir@/query_info_hook_test/query_info_hook_test@DLSUFFIX@';
SET client_min_messages='warning';
SET optimizer=off;
-- Test Normal case
SELECT * FROM generate_series(1, 3);
WARNING: Query submit
WARNING: Query start
WARNING: Plan node initializing
WARNING: Plan node executing node_type: FUNCTIONSCAN
WARNING: Plan node finished
WARNING: Query done
generate_series
-----------------
1
2
3
(3 rows)
-- Test Error case: Error out in executor.
CREATE FUNCTION error_in_execution() RETURNS setof int VOLATILE LANGUAGE plpgsql AS $$
BEGIN
RAISE EXCEPTION 'error in function execution';
END;
$$;
SELECT * FROM error_in_execution();
WARNING: Query submit
WARNING: Query start
WARNING: Plan node initializing
WARNING: Plan node executing node_type: FUNCTIONSCAN
WARNING: Query Error
ERROR: error in function execution
CONTEXT: PL/pgSQL function error_in_execution() line 3 at RAISE
-- Test Error case: Error out in planner.
SELECT * FROM generate_series(1, 3/0);
ERROR: division by zero
-- Test query abort
select pg_cancel_backend(pg_backend_pid());
WARNING: Query submit
WARNING: Query start
WARNING: Plan node initializing
WARNING: Plan node executing node_type: RESULT
WARNING: Query Canceling
WARNING: Query Canceled
ERROR: canceling statement due to user request
-- Test alter table set distributed by
CREATE TABLE queryInfoHookTable1 (id int, name text) DISTRIBUTED BY(id);
ALTER TABLE queryInfoHookTable1 SET DISTRIBUTED BY (name);
WARNING: Query submit
WARNING: Query start
WARNING: Plan node initializing
WARNING: Plan node finished
WARNING: Plan node finished
WARNING: Query done
-- Test Hash node
CREATE TABLE tb_a(a int);
SELECT a FROM tb_a WHERE a IN (SELECT max(a) FROM tb_a);
WARNING: Query submit
WARNING: Query start
WARNING: Plan node initializing
WARNING: Plan node executing node_type: MOTION
WARNING: Plan node finished
WARNING: Plan node finished
WARNING: Plan node finished
WARNING: Plan node finished
WARNING: Plan node finished
WARNING: Plan node finished
WARNING: Plan node finished
WARNING: Plan node finished
WARNING: Plan node finished
WARNING: Query done
a
---
(0 rows)
DROP TABLE tb_a;
-- Test SPI
CREATE OR REPLACE FUNCTION spi_func() RETURNS setof record
LANGUAGE plpgsql AS $$
DECLARE
obj1 record;
BEGIN
FOR obj1 IN SELECT * FROM tb_b
LOOP
RETURN next obj1;
END LOOP;
RETURN;
END
$$;
SELECT * FROM spi_func() AS (a int) order by 1;
WARNING: Query submit
WARNING: Query start
WARNING: Plan node initializing
WARNING: Plan node executing node_type: SORT
WARNING: Plan node executing node_type: FUNCTIONSCAN
WARNING: SPI inner query submit
WARNING: SPI inner query start
WARNING: Plan node of SPI inner query initializing
WARNING: Plan node of SPI inner query executing node_type: MOTION
WARNING: Plan node of SPI inner query finished
WARNING: Plan node of SPI inner query finished
WARNING: Inner query done
WARNING: Plan node finished
WARNING: Plan node finished
WARNING: Query done
a
----
1
2
3
4
5
6
7
8
9
10
(10 rows)
-- Test function
SELECT CASE WHEN information_schema._pg_truetypmod(a.*, b.*) > 0 THEN 0 ELSE 0 END
FROM
(SELECT * FROM pg_catalog.pg_attribute LIMIT 1) a,
(SELECT * FROM pg_catalog.pg_type LIMIT 1) b
;
WARNING: Query submit
WARNING: Query start
WARNING: Plan node initializing
WARNING: Plan node executing node_type: NESTLOOP
WARNING: Plan node executing node_type: LIMIT
WARNING: Plan node executing node_type: SEQSCAN
WARNING: Plan node executing node_type: MATERIAL
WARNING: Plan node executing node_type: LIMIT
WARNING: Plan node executing node_type: SEQSCAN
WARNING: function inner query submit
WARNING: function inner query start
WARNING: Plan node of function inner query initializing
WARNING: Plan node of function inner query executing node_type: RESULT
WARNING: Plan node of function inner query finished
WARNING: Inner query done
WARNING: Plan node finished
WARNING: Plan node finished
WARNING: Plan node finished
WARNING: Plan node finished
WARNING: Plan node finished
WARNING: Plan node finished
WARNING: Query done
case
------
0
(1 row)