[COMMITTERS] pgsql: Fix handling of extended statistics during ALTER COLUMN TYPE. - Mailing list pgsql-committers

From Tom Lane
Subject [COMMITTERS] pgsql: Fix handling of extended statistics during ALTER COLUMN TYPE.
Date
Msg-id E1d9wHz-0005Ec-02@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix handling of extended statistics during ALTER COLUMN TYPE.

ALTER COLUMN TYPE on a column used by a statistics object fails since
commit 928c4de30, because the relevant switch in ATExecAlterColumnType
is unprepared for columns to have dependencies from OCLASS_STATISTIC_EXT
objects.

Although the existing types of extended statistics don't actually need us
to do any work for a column type change, it seems completely indefensible
that that assumption is hidden behind the failure of an unrelated module
to contain any code for the case.  Hence, create and call an API function
in statscmds.c where the assumption can be explained, and where we could
add code to deal with the problem when it inevitably becomes real.

Also, the reason this wasn't handled before, neither for extended stats
nor for the last half-dozen new OCLASS kinds :-(, is that the default:
in that switch suppresses compiler warnings, allowing people to miss the
need to consider it when adding an OCLASS.  We don't really need a default
because surely getObjectClass should only return valid values of the enum;
so remove it, and add the missed OCLASS entries where they should be.

Discussion: https://postgr.es/m/20170512221010.nglatgt5azzdxjlj@alvherre.pgsql

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/b5b0db19b895f033ada35bc7c337183be7356977

Modified Files
--------------
src/backend/commands/statscmds.c        | 28 ++++++++++++++++++++++++++++
src/backend/commands/tablecmds.c        | 24 +++++++++++++++++++++---
src/include/commands/defrem.h           |  3 +++
src/test/regress/expected/stats_ext.out | 25 +++++++++++++++++++++++++
src/test/regress/sql/stats_ext.sql      | 11 +++++++++++
5 files changed, 88 insertions(+), 3 deletions(-)


pgsql-committers by date:

Previous
From: Peter Eisentraut
Date:
Subject: [COMMITTERS] pgsql: Update config.guess and config.sub
Next
From: Tom Lane
Date:
Subject: [COMMITTERS] pgsql: Fix maintenance hazards caused by ill-considered use ofdefault: