On Sat, Nov 2, 2019 at 8:01 PM Tom Lane <t...@sss.pgh.pa.us> wrote: > amul sul <sula...@gmail.com> writes: > > I wondered can we have a shortcut somewhat similar to following POC > > in recomputeNamespacePath () when the recomputed path is the same as the > > previous baseSearchPath/activeSearchPath : > > + /* TODO: POC */ > > + if (equal(oidlist, baseSearchPath)) > > + return; > > There's an awful lot missing from that sketch; all of the remaining > steps still need to be done: > > You are correct, but that was intentionally skipped to avoid longer post descriptions for the initial discussion. Sorry for being little lazy.
> baseCreationNamespace = firstNS; > baseTempCreationPending = temp_missing; > > /* Mark the path valid. */ > baseSearchPathValid = true; > namespaceUser = roleid; > > /* And make it active. */ > activeSearchPath = baseSearchPath; > activeCreationNamespace = baseCreationNamespace; > activeTempCreationPending = baseTempCreationPending; > > /* Clean up. */ > pfree(rawname); > list_free(namelist); > list_free(oidlist); > > More to the point, I think the onus would be on the patch submitter > to prove that the extra complexity had some measurable benefit. > I really doubt that it would, since the list_copy is surely trivial > compared to the catalog lookup work we had to do to compute the OID > list above here. > Agree. > It'd likely be more useful to see if you could reduce the number of > places where we have to invalidate the path in the first place. > Understood, let me check. Regards, Amul