From 39c9efc15646b3eb36d4095c3657405894dc3ea4 Mon Sep 17 00:00:00 2001 From: Tomas Vondra Date: Thu, 30 May 2019 16:16:12 +0200 Subject: [PATCH] Make error logging in extended statistics more consistent Most errors reported in extended statistics are internal issues, and so should use elog(). The MCV list code was already following this rule, but the functional dependencies and ndistinct coefficients were using a mix of elog() and ereport(). Fix this by changing most places to elog(), with the exception of input functions. This is a mostly cosmetic change, it makes the life a little bit easier for translators, as elog() messages are not translated. So backpatch to PostgreSQL 10, where extended statistics were introduced. Author: Tomas Vondra Backpatch-through: 10 where extended statistics were added Discussion: https://postgr.es/m/20190503154404.GA7478@alvherre.pgsql --- src/backend/statistics/dependencies.c | 4 +--- src/backend/statistics/mvdistinct.c | 22 +++++++--------------- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/src/backend/statistics/dependencies.c b/src/backend/statistics/dependencies.c index 99975817de..bc4895f8fb 100644 --- a/src/backend/statistics/dependencies.c +++ b/src/backend/statistics/dependencies.c @@ -529,9 +529,7 @@ statext_dependencies_deserialize(bytea *data) dependencies->type, STATS_DEPS_TYPE_BASIC); if (dependencies->ndeps == 0) - ereport(ERROR, - (errcode(ERRCODE_DATA_CORRUPTED), - errmsg("invalid zero-length item array in MVDependencies"))); + elog(ERROR, "invalid zero-length item array in MVDependencies"); /* what minimum bytea size do we expect for those parameters */ min_expected_size = SizeOfDependencies + diff --git a/src/backend/statistics/mvdistinct.c b/src/backend/statistics/mvdistinct.c index 74ab62d91a..424a79056e 100644 --- a/src/backend/statistics/mvdistinct.c +++ b/src/backend/statistics/mvdistinct.c @@ -257,29 +257,21 @@ statext_ndistinct_deserialize(bytea *data) tmp += sizeof(uint32); if (ndist.magic != STATS_NDISTINCT_MAGIC) - ereport(ERROR, - (errcode(ERRCODE_DATA_CORRUPTED), - errmsg("invalid ndistinct magic %08x (expected %08x)", - ndist.magic, STATS_NDISTINCT_MAGIC))); + elog(ERROR, "invalid ndistinct magic %08x (expected %08x)", + ndist.magic, STATS_NDISTINCT_MAGIC); if (ndist.type != STATS_NDISTINCT_TYPE_BASIC) - ereport(ERROR, - (errcode(ERRCODE_DATA_CORRUPTED), - errmsg("invalid ndistinct type %d (expected %d)", - ndist.type, STATS_NDISTINCT_TYPE_BASIC))); + elog(ERROR, "invalid ndistinct type %d (expected %d)", + ndist.type, STATS_NDISTINCT_TYPE_BASIC); if (ndist.nitems == 0) - ereport(ERROR, - (errcode(ERRCODE_DATA_CORRUPTED), - errmsg("invalid zero-length item array in MVNDistinct"))); + elog(ERROR, "invalid zero-length item array in MVNDistinct"); /* what minimum bytea size do we expect for those parameters */ minimum_size = (SizeOfMVNDistinct + ndist.nitems * (SizeOfMVNDistinctItem + sizeof(AttrNumber) * 2)); if (VARSIZE_ANY_EXHDR(data) < minimum_size) - ereport(ERROR, - (errcode(ERRCODE_DATA_CORRUPTED), - errmsg("invalid MVNDistinct size %zd (expected at least %zd)", - VARSIZE_ANY_EXHDR(data), minimum_size))); + elog(ERROR, "invalid MVNDistinct size %zd (expected at least %zd)", + VARSIZE_ANY_EXHDR(data), minimum_size); /* * Allocate space for the ndistinct items (no space for each item's -- 2.40.0