Remove functions created just for unit testing

These functions are holdovers from pg_shard and were created for unit
testing c-level functions (like InsertShardPlacementRow) which our
regression tests already test quite effectively. Removing because it
makes refactoring the signatures of those c-level functions
unnecessarily difficult.

- create_healthy_local_shard_placement_row
- update_shard_placement_row_state
- delete_shard_placement_row
pull/1453/head
Brian Cloutier 2017-06-15 11:48:14 +03:00 committed by Marco Slot
parent 0b64bb1092
commit fe53fd4a8e
4 changed files with 0 additions and 159 deletions

View File

@ -48,9 +48,6 @@ PG_FUNCTION_INFO_V1(partition_column_id);
PG_FUNCTION_INFO_V1(partition_type);
PG_FUNCTION_INFO_V1(is_distributed_table);
PG_FUNCTION_INFO_V1(create_monolithic_shard_row);
PG_FUNCTION_INFO_V1(create_healthy_local_shard_placement_row);
PG_FUNCTION_INFO_V1(delete_shard_placement_row);
PG_FUNCTION_INFO_V1(update_shard_placement_row_state);
PG_FUNCTION_INFO_V1(acquire_shared_shard_lock);
@ -241,66 +238,6 @@ create_monolithic_shard_row(PG_FUNCTION_ARGS)
}
/*
* create_healthy_local_shard_placement_row inserts a row representing a
* finalized placement for localhost (on the default port) into the backing
* store.
*/
Datum
create_healthy_local_shard_placement_row(PG_FUNCTION_ARGS)
{
int64 shardId = PG_GETARG_INT64(0);
int64 shardLength = 0;
InsertShardPlacementRow(shardId, INVALID_PLACEMENT_ID, FILE_FINALIZED, shardLength,
"localhost", 5432);
PG_RETURN_VOID();
}
/*
* delete_shard_placement_row removes a shard placement with the specified ID.
*/
Datum
delete_shard_placement_row(PG_FUNCTION_ARGS)
{
int64 shardId = PG_GETARG_INT64(0);
text *hostName = PG_GETARG_TEXT_P(1);
int64 hostPort = PG_GETARG_INT64(2);
bool successful = true;
char *hostNameString = text_to_cstring(hostName);
DeleteShardPlacementRow(shardId, hostNameString, hostPort);
PG_RETURN_BOOL(successful);
}
/*
* update_shard_placement_row_state sets the state of the placement with the
* specified ID.
*/
Datum
update_shard_placement_row_state(PG_FUNCTION_ARGS)
{
int64 shardId = PG_GETARG_INT64(0);
text *hostName = PG_GETARG_TEXT_P(1);
int64 hostPort = PG_GETARG_INT64(2);
RelayFileState shardState = (RelayFileState) PG_GETARG_INT32(3);
bool successful = true;
char *hostNameString = text_to_cstring(hostName);
uint64 shardLength = 0;
uint64 placementId = INVALID_PLACEMENT_ID;
placementId = DeleteShardPlacementRow(shardId, hostNameString, hostPort);
InsertShardPlacementRow(shardId, placementId, shardState, shardLength,
hostNameString, hostPort);
PG_RETURN_BOOL(successful);
}
/*
* acquire_shared_shard_lock grabs a shared lock for the specified shard.
*/

View File

@ -53,9 +53,6 @@ extern Datum distributed_tables_exist(PG_FUNCTION_ARGS);
extern Datum column_name_to_column(PG_FUNCTION_ARGS);
extern Datum column_name_to_column_id(PG_FUNCTION_ARGS);
extern Datum create_monolithic_shard_row(PG_FUNCTION_ARGS);
extern Datum create_healthy_local_shard_placement_row(PG_FUNCTION_ARGS);
extern Datum delete_shard_placement_row(PG_FUNCTION_ARGS);
extern Datum update_shard_placement_row_state(PG_FUNCTION_ARGS);
extern Datum next_shard_id(PG_FUNCTION_ARGS);
extern Datum acquire_shared_shard_lock(PG_FUNCTION_ARGS);

View File

@ -34,18 +34,6 @@ CREATE FUNCTION create_monolithic_shard_row(regclass)
RETURNS bigint
AS 'citus'
LANGUAGE C STRICT;
CREATE FUNCTION create_healthy_local_shard_placement_row(bigint)
RETURNS void
AS 'citus'
LANGUAGE C STRICT;
CREATE FUNCTION delete_shard_placement_row(bigint, text, bigint)
RETURNS bool
AS 'citus'
LANGUAGE C STRICT;
CREATE FUNCTION update_shard_placement_row_state(bigint, text, bigint, int)
RETURNS bool
AS 'citus'
LANGUAGE C STRICT;
CREATE FUNCTION acquire_shared_shard_lock(bigint)
RETURNS void
AS 'citus'
@ -227,53 +215,6 @@ WHERE shardid = :new_shard_id;
t | -2147483648 | 2147483647
(1 row)
-- add a placement and manually inspect row
SELECT create_healthy_local_shard_placement_row(:new_shard_id);
create_healthy_local_shard_placement_row
------------------------------------------
(1 row)
SELECT shardstate, nodename, nodeport FROM pg_dist_shard_placement
WHERE shardid = :new_shard_id AND nodename = 'localhost' and nodeport = 5432;
shardstate | nodename | nodeport
------------+-----------+----------
1 | localhost | 5432
(1 row)
-- mark it as unhealthy and inspect
SELECT update_shard_placement_row_state(:new_shard_id, 'localhost', 5432, 3);
update_shard_placement_row_state
----------------------------------
t
(1 row)
SELECT shardstate FROM pg_dist_shard_placement
WHERE shardid = :new_shard_id AND nodename = 'localhost' and nodeport = 5432;
shardstate
------------
3
(1 row)
-- remove it and verify it is gone
SELECT delete_shard_placement_row(:new_shard_id, 'localhost', 5432);
delete_shard_placement_row
----------------------------
t
(1 row)
SELECT COUNT(*) FROM pg_dist_shard_placement
WHERE shardid = :new_shard_id AND nodename = 'localhost' and nodeport = 5432;
count
-------
0
(1 row)
-- deleting or updating a non-existent row should fail
SELECT delete_shard_placement_row(:new_shard_id, 'wrong_localhost', 5432);
ERROR: could not find valid entry for shard placement 540005 on node "wrong_localhost:5432"
SELECT update_shard_placement_row_state(:new_shard_id, 'localhost', 5432, 3);
ERROR: could not find valid entry for shard placement 540005 on node "localhost:5432"
-- now we'll even test our lock methods...
-- use transaction to bound how long we hold the lock
BEGIN;

View File

@ -46,21 +46,6 @@ CREATE FUNCTION create_monolithic_shard_row(regclass)
AS 'citus'
LANGUAGE C STRICT;
CREATE FUNCTION create_healthy_local_shard_placement_row(bigint)
RETURNS void
AS 'citus'
LANGUAGE C STRICT;
CREATE FUNCTION delete_shard_placement_row(bigint, text, bigint)
RETURNS bool
AS 'citus'
LANGUAGE C STRICT;
CREATE FUNCTION update_shard_placement_row_state(bigint, text, bigint, int)
RETURNS bool
AS 'citus'
LANGUAGE C STRICT;
CREATE FUNCTION acquire_shared_shard_lock(bigint)
RETURNS void
AS 'citus'
@ -168,25 +153,6 @@ SELECT create_monolithic_shard_row('customers') AS new_shard_id
SELECT shardstorage, shardminvalue, shardmaxvalue FROM pg_dist_shard
WHERE shardid = :new_shard_id;
-- add a placement and manually inspect row
SELECT create_healthy_local_shard_placement_row(:new_shard_id);
SELECT shardstate, nodename, nodeport FROM pg_dist_shard_placement
WHERE shardid = :new_shard_id AND nodename = 'localhost' and nodeport = 5432;
-- mark it as unhealthy and inspect
SELECT update_shard_placement_row_state(:new_shard_id, 'localhost', 5432, 3);
SELECT shardstate FROM pg_dist_shard_placement
WHERE shardid = :new_shard_id AND nodename = 'localhost' and nodeport = 5432;
-- remove it and verify it is gone
SELECT delete_shard_placement_row(:new_shard_id, 'localhost', 5432);
SELECT COUNT(*) FROM pg_dist_shard_placement
WHERE shardid = :new_shard_id AND nodename = 'localhost' and nodeport = 5432;
-- deleting or updating a non-existent row should fail
SELECT delete_shard_placement_row(:new_shard_id, 'wrong_localhost', 5432);
SELECT update_shard_placement_row_state(:new_shard_id, 'localhost', 5432, 3);
-- now we'll even test our lock methods...
-- use transaction to bound how long we hold the lock