Dropped use of reltoastidxid field

The same index can be reached going through reltoastrelid and
pg_index.indrelid: checked at least on PG 9.1.
This commit is contained in:
Daniele Varrazzo
2015-03-10 14:53:49 +00:00
parent 564f061beb
commit a49bb41822
3 changed files with 12 additions and 9 deletions

View File

@ -784,12 +784,12 @@ repack_swap(PG_FUNCTION_ARGS)
/* swap relfilenode and dependencies for tables. */
values[0] = ObjectIdGetDatum(oid);
execute_with_args(SPI_OK_SELECT,
"SELECT X.reltoastrelid, TX.reltoastidxid, X.relowner,"
" Y.oid, Y.reltoastrelid, TY.reltoastidxid, Y.relowner"
" FROM pg_catalog.pg_class X LEFT JOIN pg_catalog.pg_class TX"
" ON X.reltoastrelid = TX.oid,"
" pg_catalog.pg_class Y LEFT JOIN pg_catalog.pg_class TY"
" ON Y.reltoastrelid = TY.oid"
"SELECT X.reltoastrelid, TX.indexrelid, X.relowner,"
" Y.oid, Y.reltoastrelid, TY.indexrelid, Y.relowner"
" FROM pg_catalog.pg_class X LEFT JOIN pg_catalog.pg_index TX"
" ON X.reltoastrelid = TX.indrelid AND TX.indisvalid,"
" pg_catalog.pg_class Y LEFT JOIN pg_catalog.pg_index TY"
" ON Y.reltoastrelid = TY.indrelid AND TY.indisvalid"
" WHERE X.oid = $1"
" AND Y.oid = ('repack.table_' || X.oid)::regclass",
1, argtypes, values, nulls);