From 58cf15ceca4e70760514f2e584dcdddd1ad9368f Mon Sep 17 00:00:00 2001 From: Brian Cloutier Date: Thu, 12 Oct 2017 17:29:49 -0700 Subject: [PATCH] DistributedTableSize doesn't emit oid when erring out --- src/backend/distributed/master/master_metadata_utility.c | 9 +++++++-- src/test/regress/expected/isolation_drop_vs_all.out | 2 +- src/test/regress/expected/isolation_drop_vs_all_0.out | 2 +- src/test/regress/expected/multi_size_queries.out | 6 +++--- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/backend/distributed/master/master_metadata_utility.c b/src/backend/distributed/master/master_metadata_utility.c index ccbb35bcc..8b213b269 100644 --- a/src/backend/distributed/master/master_metadata_utility.c +++ b/src/backend/distributed/master/master_metadata_utility.c @@ -169,8 +169,13 @@ DistributedTableSize(Oid relationId, char *sizeQuery) " blocks which contain multi-shard data modifications"))); } - /* try to open relation, will error out if the relation does not exist */ - relation = relation_open(relationId, AccessShareLock); + relation = try_relation_open(relationId, AccessShareLock); + + if (relation == NULL) + { + ereport(ERROR, + (errmsg("could not compute table size: relation does not exist"))); + } ErrorIfNotSuitableToGetSize(relationId); diff --git a/src/test/regress/expected/isolation_drop_vs_all.out b/src/test/regress/expected/isolation_drop_vs_all.out index b75ce5646..776a8717d 100644 --- a/src/test/regress/expected/isolation_drop_vs_all.out +++ b/src/test/regress/expected/isolation_drop_vs_all.out @@ -174,7 +174,7 @@ step s1-drop: DROP TABLE drop_hash; step s2-table-size: SELECT citus_total_relation_size('drop_hash'); step s1-commit: COMMIT; step s2-table-size: <... completed> -error in steps s1-commit s2-table-size: ERROR: could not open relation with OID 23227 +error in steps s1-commit s2-table-size: ERROR: could not compute table size: relation does not exist step s2-commit: COMMIT; step s1-select-count: SELECT COUNT(*) FROM drop_hash; ERROR: relation "drop_hash" does not exist diff --git a/src/test/regress/expected/isolation_drop_vs_all_0.out b/src/test/regress/expected/isolation_drop_vs_all_0.out index e7cff5ebf..5a5af11bc 100644 --- a/src/test/regress/expected/isolation_drop_vs_all_0.out +++ b/src/test/regress/expected/isolation_drop_vs_all_0.out @@ -174,7 +174,7 @@ step s1-drop: DROP TABLE drop_hash; step s2-table-size: SELECT citus_total_relation_size('drop_hash'); step s1-commit: COMMIT; step s2-table-size: <... completed> -error in steps s1-commit s2-table-size: ERROR: could not open relation with OID 22183 +error in steps s1-commit s2-table-size: ERROR: could not compute table size: relation does not exist step s2-commit: COMMIT; step s1-select-count: SELECT COUNT(*) FROM drop_hash; ERROR: relation "drop_hash" does not exist diff --git a/src/test/regress/expected/multi_size_queries.out b/src/test/regress/expected/multi_size_queries.out index 758819434..eb2f8b080 100644 --- a/src/test/regress/expected/multi_size_queries.out +++ b/src/test/regress/expected/multi_size_queries.out @@ -8,11 +8,11 @@ ALTER SEQUENCE pg_catalog.pg_dist_shardid_seq RESTART 1390000; ALTER SEQUENCE pg_catalog.pg_dist_jobid_seq RESTART 1390000; -- Tests with invalid relation IDs SELECT citus_table_size(1); -ERROR: could not open relation with OID 1 +ERROR: could not compute table size: relation does not exist SELECT citus_relation_size(1); -ERROR: could not open relation with OID 1 +ERROR: could not compute table size: relation does not exist SELECT citus_total_relation_size(1); -ERROR: could not open relation with OID 1 +ERROR: could not compute table size: relation does not exist -- Tests with non-distributed table CREATE TABLE non_distributed_table (x int); SELECT citus_table_size('non_distributed_table');