| From: | Alexander Korotkov <a(dot)korotkov(at)postgrespro(dot)ru> | 
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> | 
| Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: ALTER INDEX .. SET STATISTICS ... behaviour | 
| Date: | 2017-06-01 13:10:16 | 
| Message-ID: | CAPpHfduoczxADNiGM7FMnZsVoNsP5+9KOMtcozs1bHzY71barw@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
On Wed, May 31, 2017 at 7:18 PM, Alexander Korotkov <
a(dot)korotkov(at)postgrespro(dot)ru> wrote:
> On Wed, May 31, 2017 at 6:53 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
>> Alexander Korotkov <a(dot)korotkov(at)postgrespro(dot)ru> writes:
>> > I've discovered that PostgreSQL is able to run following kind of
>> queries in
>> > order to change statistic-gathering target for an indexed expression.
>>
>> > ALTER INDEX index_name ALTER COLUMN expr SET STATISTICS stat_target;
>>
>> > It's been previously discussed in [1].
>>
>> > I think this should be fixed not just in docs.  This is why I've started
>> > thread in pgsql-hackers.  For me usage of internal column names "expr",
>> > "expr1", "expr2" etc. looks weird.  And I think we should replace it
>> with a
>> > better syntax.  What do you think about these options?
>>
>> > ALTER INDEX index_name ALTER EXPRESSION 0 SET STATISTICS stat_target; --
>> > Refer expression by its number
>> > ALTER INDEX index_name ALTER EXPRESSION (x + y) SET STATISTICS
>> stat_target;
>> > -- Refer expression by its definition
>>
>> Don't like either of those particularly, but what about just targeting
>> a column by column number, independently of whether it's an expression?
>>
>>         ALTER INDEX myindex ALTER COLUMN 4 SET STATISTICS 1000;
>>
>
> I completely agree with that.
> If no objections, I will write a patch for that.
>
Please, find it in attached patch.
I decided to forbid referencing columns by numbers for tables, because
those numbers could contain gaps.  Also, I forbid altering statistics
target for non-expression index columns, because it has no effect.
------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company
| Attachment | Content-Type | Size | 
|---|---|---|
| alter-index-statistics-1.patch | application/octet-stream | 17.2 KB | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Rafia Sabih | 2017-06-01 13:11:20 | Re: Effect of changing the value for PARALLEL_TUPLE_QUEUE_SIZE | 
| Previous Message | Petr Jelinek | 2017-06-01 12:20:23 | Re: Create subscription with `create_slot=false` and incorrect slot name |