Re: ALTER TABLE SET ACCESS METHOD on partitioned tables
Zhihong Yu <zyu@yugabyte.com>
From: Zhihong Yu <zyu@yugabyte.com>
To: Soumyadeep Chakraborty <soumyadeep2007@gmail.com>
Cc: Justin Pryzby <pryzby@telsasoft.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>, Michael Paquier <michael@paquier.xyz>, Ashwin Agrawal <ashwinstar@gmail.com>,
vanjared@vmware.com
Date: 2022-05-19T01:31:46Z
Lists: pgsql-hackers
On Wed, May 18, 2022 at 5:49 PM Soumyadeep Chakraborty < soumyadeep2007@gmail.com> wrote: > > On Wed, May 18, 2022 at 4:14 PM Justin Pryzby <pryzby@telsasoft.com> > wrote: > > > I didn't look closely yet, but this comment is wrong: > > > > + * Since these have no storage the tablespace can be updated with a > simple > > > > + * metadata only operation to update the tablespace. > > > > > Good catch. Fixed. > > > It'd be convenient if AMs worked the same way (and a bit odd that they > don't). > > Note that in v15, pg_dump/restore now allow --no-table-am, an exact > parallel to > > --no-tablespace. > > I agree that ATSET AM should behave in a similar fashion to ATSET > tablespaces. > However, the way that ATSET tablespace currently behaves is not consistent > with > the ONLY clause. > > On a given partition root: > ALTER TABLE ONLY am_partitioned SET TABLESPACE ts; > has the same effect as: > ALTER TABLE am_partitioned SET TABLESPACE ts; > > We are missing out on the feature to set the AM/tablespace throughout the > partition hierarchy, with one command. > > Regards, > Soumyadeep (VMware) > > Hi, + accessMethodId = ((Form_pg_class) GETSTRUCT(tup))->relam; - /* look up the access method, verify it is for a table */ - if (accessMethod != NULL) - accessMethodId = get_table_am_oid(accessMethod, false); + if (!HeapTupleIsValid(tup)) + elog(ERROR, "cache lookup failed for relation %u", relid); The validity check of tup should be done before fetching the value of relam field. Cheers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add information about access method for partitioned relations in \dP+
- 978f38c771fb 18.0 landed
-
Fix dumps of partitioned tables with table AMs
- f46bee346c3b 17.0 landed
-
Don't use the pg_am system catalog in new test
- 13b3b62746ec 17.0 landed
-
ALTER TABLE: rework determination of access method ID
- e2395cdbe83a 17.0 landed
-
Allow specifying an access method for partitioned tables
- 374c7a229042 17.0 landed
-
Review wording on tablespaces w.r.t. partitioned tables
- ea299d782511 15.7 landed
- e6c4e01bf440 16.3 landed
- a0390f6ca6c7 17.0 landed
- 58efabdc0ce9 12.19 landed
- 520e7afa5732 13.15 landed
- 33bfbef1d60f 14.12 landed
-
Add support for DEFAULT in ALTER TABLE .. SET ACCESS METHOD
- d61a6cad6418 17.0 landed
-
Update comment of AlterTableCmd->name in parsenodes.h
- 4f8c1e7aaf11 17.0 landed