From be647ad944a7758ab53dc65ca8eee727d74c34c6 Mon Sep 17 00:00:00 2001 From: Hadi Moshayedi Date: Wed, 22 Jan 2020 11:12:16 -0800 Subject: [PATCH] Output filenames in ensure_no_intermediate_data_leak This can helpful in guiding us where to look when this test fails. For example, if the result file has repartitioned_results_ prefix, then we need to look into repartitioned insert/select. Otherwise it is probably a CTE or a subquery. --- .../ensure_no_intermediate_data_leak.out | 21 +++++++++++++++---- .../sql/ensure_no_intermediate_data_leak.sql | 19 +++++++++++++++-- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/src/test/regress/expected/ensure_no_intermediate_data_leak.out b/src/test/regress/expected/ensure_no_intermediate_data_leak.out index 3267501db..1b5aa7e22 100644 --- a/src/test/regress/expected/ensure_no_intermediate_data_leak.out +++ b/src/test/regress/expected/ensure_no_intermediate_data_leak.out @@ -5,12 +5,25 @@ -- AND ON THE WORKERS. HOWEVER, WE HAVE SOME ISSUES AROUND -- WINDOWS SUPPORT SO WE DISABLE THIS TEST ON WINDOWS --------------------------------------------------------------------- -SELECT pg_ls_dir('base/pgsql_job_cache') WHERE citus_version() NOT ILIKE '%windows%'; - pg_ls_dir +WITH xact_dirs AS ( + SELECT pg_ls_dir('base/pgsql_job_cache') dir WHERE citus_version() NOT ILIKE '%windows%' +), result_files AS ( + SELECT dir, pg_ls_dir('base/pgsql_job_cache/' || dir) result_file FROM xact_dirs +) +SELECT array_agg((xact_dirs.dir, result_files.result_file)) FROM xact_dirs LEFT OUTER JOIN result_files ON xact_dirs.dir = result_files.dir; + array_agg --------------------------------------------------------------------- -(0 rows) -SELECT * FROM run_command_on_workers($$SELECT pg_ls_dir('base/pgsql_job_cache') r WHERE citus_version() NOT ILIKE '%windows%'$$) WHERE result <> ''; +(1 row) + +SELECT * FROM run_command_on_workers($$ + WITH xact_dirs AS ( + SELECT pg_ls_dir('base/pgsql_job_cache') dir WHERE citus_version() NOT ILIKE '%windows%' + ), result_files AS ( + SELECT dir, pg_ls_dir('base/pgsql_job_cache/' || dir) result_file FROM xact_dirs + ) + SELECT array_agg((xact_dirs.dir, result_files.result_file)) FROM xact_dirs LEFT OUTER JOIN result_files ON xact_dirs.dir = result_files.dir; +$$) WHERE result <> ''; nodename | nodeport | success | result --------------------------------------------------------------------- (0 rows) diff --git a/src/test/regress/sql/ensure_no_intermediate_data_leak.sql b/src/test/regress/sql/ensure_no_intermediate_data_leak.sql index b265a46de..0f0b5bc18 100644 --- a/src/test/regress/sql/ensure_no_intermediate_data_leak.sql +++ b/src/test/regress/sql/ensure_no_intermediate_data_leak.sql @@ -7,5 +7,20 @@ -- WINDOWS SUPPORT SO WE DISABLE THIS TEST ON WINDOWS ------ -SELECT pg_ls_dir('base/pgsql_job_cache') WHERE citus_version() NOT ILIKE '%windows%'; -SELECT * FROM run_command_on_workers($$SELECT pg_ls_dir('base/pgsql_job_cache') r WHERE citus_version() NOT ILIKE '%windows%'$$) WHERE result <> ''; +WITH xact_dirs AS ( + SELECT pg_ls_dir('base/pgsql_job_cache') dir WHERE citus_version() NOT ILIKE '%windows%' +), result_files AS ( + SELECT dir, pg_ls_dir('base/pgsql_job_cache/' || dir) result_file FROM xact_dirs +) +SELECT array_agg((xact_dirs.dir, result_files.result_file)) FROM xact_dirs LEFT OUTER JOIN result_files ON xact_dirs.dir = result_files.dir; + + +SELECT * FROM run_command_on_workers($$ + WITH xact_dirs AS ( + SELECT pg_ls_dir('base/pgsql_job_cache') dir WHERE citus_version() NOT ILIKE '%windows%' + ), result_files AS ( + SELECT dir, pg_ls_dir('base/pgsql_job_cache/' || dir) result_file FROM xact_dirs + ) + SELECT array_agg((xact_dirs.dir, result_files.result_file)) FROM xact_dirs LEFT OUTER JOIN result_files ON xact_dirs.dir = result_files.dir; +$$) WHERE result <> ''; +