Re: ALTER tbl rewrite loses CLUSTER ON index - Mailing list pgsql-hackers

From Alvaro Herrera
Subject Re: ALTER tbl rewrite loses CLUSTER ON index
Date
Msg-id 20200402073836.GA17269@alvherre.pgsql
Whole thread Raw
In response to Re: ALTER tbl rewrite loses CLUSTER ON index  (Michael Paquier <michael@paquier.xyz>)
Responses Re: ALTER tbl rewrite loses CLUSTER ON index
List pgsql-hackers
On 2020-Apr-02, Michael Paquier wrote:

> Now, regarding patch 0002, note that you have a problem for this part:
> -            tuple = SearchSysCache1(INDEXRELID, ObjectIdGetDatum(indexOid));
> -            if (!HeapTupleIsValid(tuple))    /* probably can't happen */
> -            {
> -                relation_close(OldHeap, AccessExclusiveLock);
> -                pgstat_progress_end_command();
> -                return;
> -            }
> -            indexForm = (Form_pg_index) GETSTRUCT(tuple);
> -            if (!indexForm->indisclustered)
> +            if (!get_index_isclustered(indexOid))
>              {
> -                ReleaseSysCache(tuple);
>                  relation_close(OldHeap, AccessExclusiveLock);
>                  pgstat_progress_end_command();
>                  return;
>              }
> -            ReleaseSysCache(tuple);
> 
> On an invalid tuple for pg_index, the new code would issue an error,
> while the old code would just return.

I don't think we need to worry about that problem, because we already
checked that the pg_class tuple for the index is there two lines above.
The pg_index tuple cannot have gone away on its own; and the index can't
be deleted either, because cluster_rel holds AEL on the table.  There
isn't "probably" about the can't-happen condition, is there?

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: ALTER tbl rewrite loses CLUSTER ON index
Next
From: Michael Paquier
Date:
Subject: Re: ALTER tbl rewrite loses CLUSTER ON index