mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
pgstatindex, pageinspect: handle partitioned indexes
Commit 8b08f7d482
failed to update these modules to at least give
non-broken error messages for partitioned indexes. Add appropriate
error support to them.
Peter G. was complaining about a problem of unfriendly error messages;
while we haven't fixed that yet, subsequent discussion let to discovery
of these unhandled cases.
Author: Michaël Paquier
Reported-by: Peter Geoghegan
Discussion: https://postgr.es/m/CAH2-WzkOKptQiE51Bh4_xeEHhaBwHkZkGtKizrFMgEkfUuRRQg@mail.gmail.com
This commit is contained in:
@ -152,9 +152,12 @@ select pgstatginindex('test_hashidx');
|
||||
ERROR: relation "test_hashidx" is not a GIN index
|
||||
-- check that using any of these functions with unsupported relations will fail
|
||||
create table test_partitioned (a int) partition by range (a);
|
||||
create index test_partitioned_index on test_partitioned(a);
|
||||
-- these should all fail
|
||||
select pgstattuple('test_partitioned');
|
||||
ERROR: "test_partitioned" (partitioned table) is not supported
|
||||
select pgstattuple('test_partitioned_index');
|
||||
ERROR: "test_partitioned_index" (partitioned index) is not supported
|
||||
select pgstattuple_approx('test_partitioned');
|
||||
ERROR: "test_partitioned" is not a table or materialized view
|
||||
select pg_relpages('test_partitioned');
|
||||
|
@ -604,7 +604,6 @@ pgstathashindex(PG_FUNCTION_ARGS)
|
||||
errmsg("relation \"%s\" is not a hash index",
|
||||
RelationGetRelationName(rel))));
|
||||
|
||||
|
||||
/*
|
||||
* Reject attempts to read non-local temporary relations; we would be
|
||||
* likely to get wrong data since we have no visibility into the owning
|
||||
|
@ -296,6 +296,9 @@ pgstat_relation(Relation rel, FunctionCallInfo fcinfo)
|
||||
case RELKIND_PARTITIONED_TABLE:
|
||||
err = "partitioned table";
|
||||
break;
|
||||
case RELKIND_PARTITIONED_INDEX:
|
||||
err = "partitioned index";
|
||||
break;
|
||||
default:
|
||||
err = "unknown";
|
||||
break;
|
||||
|
@ -64,8 +64,10 @@ select pgstatginindex('test_hashidx');
|
||||
|
||||
-- check that using any of these functions with unsupported relations will fail
|
||||
create table test_partitioned (a int) partition by range (a);
|
||||
create index test_partitioned_index on test_partitioned(a);
|
||||
-- these should all fail
|
||||
select pgstattuple('test_partitioned');
|
||||
select pgstattuple('test_partitioned_index');
|
||||
select pgstattuple_approx('test_partitioned');
|
||||
select pg_relpages('test_partitioned');
|
||||
select pgstatindex('test_partitioned');
|
||||
|
Reference in New Issue
Block a user