citus/src/test/regress/sql/subquery_prepared_statement...

87 lines
2.5 KiB
SQL

-- ===================================================================
-- test recursive planning functionality on prepared statements
-- ===================================================================
CREATE SCHEMA subquery_prepared_statements;
SET search_path TO subquery_prepared_statements, public;
CREATE TYPE subquery_prepared_statements.xy AS (x int, y int);
SET client_min_messages TO DEBUG1;
PREPARE subquery_prepare_without_param AS
SELECT
DISTINCT values_of_subquery
FROM
(SELECT
DISTINCT (users_table.user_id, events_table.event_type)::xy as values_of_subquery
FROM
users_table, events_table
WHERE
users_table.user_id = events_table.user_id AND
event_type IN (1,2,3,4)
ORDER BY 1 DESC LIMIT 5
) as foo
ORDER BY 1 DESC;
PREPARE subquery_prepare_param_on_partkey(int) AS
SELECT
DISTINCT values_of_subquery
FROM
(SELECT
DISTINCT (users_table.user_id, events_table.event_type)::xy as values_of_subquery
FROM
users_table, events_table
WHERE
users_table.user_id = events_table.user_id AND
(users_table.user_id = $1 OR users_table.user_id = 2) AND
event_type IN (1,2,3,4)
ORDER BY 1 DESC LIMIT 5
) as foo
ORDER BY 1 DESC;
PREPARE subquery_prepare_param_non_partkey(int) AS
SELECT
DISTINCT values_of_subquery
FROM
(SELECT
DISTINCT (users_table.user_id, events_table.event_type)::xy as values_of_subquery
FROM
users_table, events_table
WHERE
users_table.user_id = events_table.user_id AND
event_type = $1
ORDER BY 1 DESC LIMIT 5
) as foo
ORDER BY 1 DESC;
-- execute each test with 6 times
EXECUTE subquery_prepare_without_param;
EXECUTE subquery_prepare_without_param;
EXECUTE subquery_prepare_without_param;
EXECUTE subquery_prepare_without_param;
EXECUTE subquery_prepare_without_param;
EXECUTE subquery_prepare_without_param;
EXECUTE subquery_prepare_param_on_partkey(1);
EXECUTE subquery_prepare_param_on_partkey(1);
EXECUTE subquery_prepare_param_on_partkey(1);
EXECUTE subquery_prepare_param_on_partkey(1);
EXECUTE subquery_prepare_param_on_partkey(1);
EXECUTE subquery_prepare_param_on_partkey(1);
EXECUTE subquery_prepare_param_non_partkey(1);
EXECUTE subquery_prepare_param_non_partkey(1);
EXECUTE subquery_prepare_param_non_partkey(1);
EXECUTE subquery_prepare_param_non_partkey(1);
EXECUTE subquery_prepare_param_non_partkey(1);
EXECUTE subquery_prepare_param_non_partkey(1);
SET client_min_messages TO DEFAULT;
DROP SCHEMA subquery_prepared_statements CASCADE;
SET search_path TO public;