Fix citus owned test function

velioglu/tmpfuncprop
Burak Velioglu 2022-02-14 13:56:07 +03:00
parent 38213e09ad
commit c24a23b2f7
No known key found for this signature in database
GPG Key ID: F6827E620F6549C6
2 changed files with 92 additions and 0 deletions

View File

@ -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.

View File

@ -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);