Re: TRUNCATE on foreign table - Mailing list pgsql-hackers
From | Zhihong Yu |
---|---|
Subject | Re: TRUNCATE on foreign table |
Date | |
Msg-id | CALNJ-vSA=r6W_znw4jbW_QiQDQR6Cv=bta+nrqNkLuUYntHX7g@mail.gmail.com Whole thread Raw |
In response to | Re: TRUNCATE on foreign table (Zhihong Yu <zyu@yugabyte.com>) |
Responses |
Re: TRUNCATE on foreign table
|
List | pgsql-hackers |
Continuing previous review...
+ relids_extra = lappend_int(relids_extra, TRUNCATE_REL_CONTEXT__CASCADED);
I wonder if TRUNCATE_REL_CONTEXT_CASCADING is better than TRUNCATE_REL_CONTEXT__CASCADED. Note the removal of the extra underscore.
In English, we say: truncation cascading to foreign table.
w.r.t. Bharath's question on using hash table, I think the reason is that the search would be more efficient:
+ ft_info = hash_search(ft_htab, &server_oid, HASH_ENTER, &found);
and
+ while ((ft_info = hash_seq_search(&seq)) != NULL)
+ * Now go through the hash table, and process each entry associated to the
+ * servers involved in the TRUNCATE.
+ * servers involved in the TRUNCATE.
associated to -> associated with
Should the hash table be released at the end of ExecuteTruncateGuts() ?
Cheers
On Sat, Apr 3, 2021 at 7:38 AM Zhihong Yu <zyu@yugabyte.com> wrote:
Hi,+ <command>TRUNCATE</command> for each foreign server being involved
+ in one <command>TRUNCATE</command> command (note that invocationsThe 'being' in above sentence can be omitted.+ the context where the foreign-tables are truncated. It is a list of integers and same length withThere should be a verb between 'and' and same :It is a list of integers and has same length with+ * Information related to truncation of foreign tables. This is used for
+ * the elements in a hash table that uses the server OID as lookup key,The 'uses' is for 'This' (the struct), so 'that' should be 'and':the elements in a hash table and usesAlternatively:the elements in a hash table. It uses+ relids_extra = lappend_int(relids_extra, (recurse ? TRUNCATE_REL_CONTEXT__NORMAL : TRUNCATE_REL_CONTEXT__ONLY));I am curious: isn't one underscore enough in the identifier (before NORMAL and ONLY) ?I suggest naming them TRUNCATE_REL_CONTEXT_NORMAL and TRUNCATE_REL_CONTEXT_ONLYCheersOn Sat, Apr 3, 2021 at 6:46 AM Kazutaka Onishi <onishi@heterodb.com> wrote:Sorry but I found the v7 patch has typo and it can't be built...
I attached fixed one(v8).
2021年4月3日(土) 9:53 Kazutaka Onishi <onishi@heterodb.com>:
>
> All,
>
> Thank you for discussion.
> I've updated the patch (v6->v7) according to the conclusion.
>
> I'll show the modified points:
> 1. Comments for ExecuteTuncate()
> 2. Replacing extra value in frels_extra with integer to label.
> 3. Skipping XLOG_HEAP_TRUNCATE on foreign table
>
> Regards,
>
> 2021年4月2日(金) 11:44 Fujii Masao <masao.fujii@oss.nttdata.com>:
> >
> >
> >
> > On 2021/04/02 9:37, Kohei KaiGai wrote:
> > > It is fair enough for me to reverse the order of actual truncation.
> > >
> > > How about the updated comments below?
> > >
> > > This is a multi-relation truncate. We first open and grab exclusive
> > > lock on all relations involved, checking permissions (local database
> > > ACLs even if relations are foreign-tables) and otherwise verifying
> > > that the relation is OK for truncation. In CASCADE mode, ...(snip)...
> > > Finally all the relations are truncated and reindexed. If any foreign-
> > > tables are involved, its callback shall be invoked prior to the truncation
> > > of regular tables.
> >
> > LGTM.
> >
> >
> > >> BTW, the latest patch doesn't seem to be applied cleanly to the master
> > >> because of commit 27e1f14563. Could you rebase it?
> > >>
> > > Onishi-san, go ahead. :-)
> >
> > +1
> >
> > Regards,
> >
> > --
> > Fujii Masao
> > Advanced Computing Technology Center
> > Research and Development Headquarters
> > NTT DATA CORPORATION
pgsql-hackers by date: