Fix error message when trying to alter statistics on included column

From: Yugo Nagata <nagata(at)sraoss(dot)co(dot)jp>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Fix error message when trying to alter statistics on included column
Date: 2018-06-28 09:28:03
Message-ID: 20180628182803.e4632d5a.nagata@sraoss.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

According to the error message, it is not allowed to alter statistics on
included column because this is "non-expression column".

postgres=# create table test (i int, d int);
CREATE TABLE
postgres=# create index idx on test(i) include (d);
CREATE INDEX
postgres=# alter index idx alter column 2 set statistics 10;
ERROR: cannot alter statistics on non-expression column "d" of index "idx"
HINT: Alter statistics on table column instead.

However, I think this should be forbidded in that this is not a key column
but a included column. Even if we decide to support expressions in included
columns in future, it is meaningless to do this because any statistics on
included column is never used by the planner.

Attached is the patch to fix the error message. In this fix, column number
is checked first. After applying this, the message is changed as below;

postgres=# alter index idx alter column 2 set statistics 10;
ERROR: cannot alter statistics on included column "d" of index "idx"

Regards,

--
Yugo Nagata <nagata(at)sraoss(dot)co(dot)jp>

Attachment Content-Type Size
set_statistics_error_message.patch text/x-diff 1.5 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Moser 2018-06-28 09:37:40 Re: Unexpected behavior of DROP VIEW/TABLE IF EXISTS
Previous Message Amit Langote 2018-06-28 08:59:11 Re: partition tree inspection functions