On Fri, Apr 9, 2021 at 8:51 PM Bharath Rupireddy <bharath.rupireddyforpostg...@gmail.com> wrote: > > Hi, > > While checking the ExecuteTruncate code for the FOREIGN TRUNCATE > feature, I saw that we filter out the duplicate relations specified in > the TRUNCATE command. But before skipping the duplicates, we are just > opening the relation, then if it is present in the already seen > relids, then closing it and continuing further. > > I think we can just have the duplicate checking before table_open so > that in cases like TRUNCATE foo, foo, foo, foo; we could save costs of > table_open and table_close. Attaching a small patch. Thoughts? > > This is just like what we already do for child tables, see following > in ExecuteTruncate: > foreach(child, children) > { > Oid childrelid = lfirst_oid(child); > > if (list_member_oid(relids, childrelid)) > continue; >
Well yes, the patch looks pretty much reasonable to be. Regards, Amul