From c24a23b2f781afb0e535007ab3ca54c6b5953272 Mon Sep 17 00:00:00 2001 From: Burak Velioglu Date: Mon, 14 Feb 2022 13:56:07 +0300 Subject: [PATCH] Fix citus owned test function --- .../expected/shard_move_deferred_delete.out | 42 ++++++++++++++++ .../sql/shard_move_deferred_delete.sql | 50 +++++++++++++++++++ 2 files changed, 92 insertions(+) diff --git a/src/test/regress/expected/shard_move_deferred_delete.out b/src/test/regress/expected/shard_move_deferred_delete.out index 179c689f2..d878c18a4 100644 --- a/src/test/regress/expected/shard_move_deferred_delete.out +++ b/src/test/regress/expected/shard_move_deferred_delete.out @@ -143,6 +143,7 @@ SELECT master_move_shard_placement(20000000, 'localhost', :worker_2_port, 'local (1 row) -- override the function for testing purpose +-- since it is extension owned function, propagate it to workers manually create or replace function pg_catalog.citus_local_disk_space_stats(OUT available_disk_size bigint, OUT total_disk_size bigint) as $BODY$ begin @@ -150,6 +151,26 @@ begin select 8500 into total_disk_size; end $BODY$ language plpgsql; +\c - - - :worker_1_port +SET citus.enable_metadata_sync TO OFF; +create or replace function pg_catalog.citus_local_disk_space_stats(OUT available_disk_size bigint, OUT total_disk_size bigint) +as $BODY$ +begin + select 20 into available_disk_size; + select 8500 into total_disk_size; +end +$BODY$ language plpgsql; +\c - - - :worker_2_port +SET citus.enable_metadata_sync TO OFF; +create or replace function pg_catalog.citus_local_disk_space_stats(OUT available_disk_size bigint, OUT total_disk_size bigint) +as $BODY$ +begin + select 20 into available_disk_size; + select 8500 into total_disk_size; +end +$BODY$ language plpgsql; +\c - - - :master_port +SET search_path TO shard_move_deferred_delete; SELECT citus_shard_cost_by_disk_size(20000001); citus_shard_cost_by_disk_size --------------------------------------------------------------------- @@ -180,6 +201,7 @@ $cmd$); (2 rows) -- override the function for testing purpose +-- since it is extension owned function, propagate it to workers manually create or replace function pg_catalog.citus_local_disk_space_stats(OUT available_disk_size bigint, OUT total_disk_size bigint) as $BODY$ begin @@ -187,6 +209,26 @@ begin select 8500 into total_disk_size; end $BODY$ language plpgsql; +\c - - - :worker_1_port +SET citus.enable_metadata_sync TO OFF; +create or replace function pg_catalog.citus_local_disk_space_stats(OUT available_disk_size bigint, OUT total_disk_size bigint) +as $BODY$ +begin + select 8300 into available_disk_size; + select 8500 into total_disk_size; +end +$BODY$ language plpgsql; +\c - - - :worker_2_port +SET citus.enable_metadata_sync TO OFF; +create or replace function pg_catalog.citus_local_disk_space_stats(OUT available_disk_size bigint, OUT total_disk_size bigint) +as $BODY$ +begin + select 8300 into available_disk_size; + select 8500 into total_disk_size; +end +$BODY$ language plpgsql; +\c - - - :master_port +SET search_path TO shard_move_deferred_delete; -- When there would not be enough free space left after the move, the move should fail SELECT master_move_shard_placement(20000001, 'localhost', :worker_2_port, 'localhost', :worker_1_port); ERROR: not enough empty space on node if the shard is moved, actual available space after move will be 108 bytes, desired available space after move is 850 bytes,estimated size increase on node after move is 8192 bytes. diff --git a/src/test/regress/sql/shard_move_deferred_delete.sql b/src/test/regress/sql/shard_move_deferred_delete.sql index 3aa52a8f6..9dc4f82e3 100644 --- a/src/test/regress/sql/shard_move_deferred_delete.sql +++ b/src/test/regress/sql/shard_move_deferred_delete.sql @@ -81,6 +81,7 @@ SELECT master_move_shard_placement(20000000, 'localhost', :worker_2_port, 'local -- override the function for testing purpose +-- since it is extension owned function, propagate it to workers manually create or replace function pg_catalog.citus_local_disk_space_stats(OUT available_disk_size bigint, OUT total_disk_size bigint) as $BODY$ begin @@ -89,6 +90,30 @@ begin end $BODY$ language plpgsql; +\c - - - :worker_1_port +SET citus.enable_metadata_sync TO OFF; +create or replace function pg_catalog.citus_local_disk_space_stats(OUT available_disk_size bigint, OUT total_disk_size bigint) +as $BODY$ +begin + select 20 into available_disk_size; + select 8500 into total_disk_size; +end +$BODY$ language plpgsql; + +\c - - - :worker_2_port +SET citus.enable_metadata_sync TO OFF; +create or replace function pg_catalog.citus_local_disk_space_stats(OUT available_disk_size bigint, OUT total_disk_size bigint) +as $BODY$ +begin + select 20 into available_disk_size; + select 8500 into total_disk_size; +end +$BODY$ language plpgsql; + +\c - - - :master_port + +SET search_path TO shard_move_deferred_delete; + SELECT citus_shard_cost_by_disk_size(20000001); -- When there's not enough space the move should fail @@ -106,6 +131,7 @@ SELECT run_command_on_workers($cmd$ $cmd$); -- override the function for testing purpose +-- since it is extension owned function, propagate it to workers manually create or replace function pg_catalog.citus_local_disk_space_stats(OUT available_disk_size bigint, OUT total_disk_size bigint) as $BODY$ begin @@ -114,6 +140,30 @@ begin end $BODY$ language plpgsql; +\c - - - :worker_1_port +SET citus.enable_metadata_sync TO OFF; +create or replace function pg_catalog.citus_local_disk_space_stats(OUT available_disk_size bigint, OUT total_disk_size bigint) +as $BODY$ +begin + select 8300 into available_disk_size; + select 8500 into total_disk_size; +end +$BODY$ language plpgsql; + +\c - - - :worker_2_port +SET citus.enable_metadata_sync TO OFF; +create or replace function pg_catalog.citus_local_disk_space_stats(OUT available_disk_size bigint, OUT total_disk_size bigint) +as $BODY$ +begin + select 8300 into available_disk_size; + select 8500 into total_disk_size; +end +$BODY$ language plpgsql; + +\c - - - :master_port + +SET search_path TO shard_move_deferred_delete; + -- When there would not be enough free space left after the move, the move should fail SELECT master_move_shard_placement(20000001, 'localhost', :worker_2_port, 'localhost', :worker_1_port);