On Tue, Jul 9, 2024 at 8:20 AM David Rowley <dgrowle...@gmail.com> wrote: > > On Tue, 9 Jul 2024 at 14:44, Tatsuo Ishii <is...@postgresql.org> wrote: > > BTW, it seems these executor nodes (other than Materialize and Window > > Aggregate node) use tuplestore for their own purpose. > > > > CTE Scan > > Recursive Union > > Table Function Scan > > > > I have already implemented that for CTE Scan. Do you think other two > > nodes are worth to add the information? > > Yes, I think so. I'd keep each as a separate patch so they can be > considered independently. Doing all of them should hopefully ensure we > strike the right balance of what code to put in explain.c and what > code to put in tuplestore.c. +1
+ if (es->format != EXPLAIN_FORMAT_TEXT) + { + ExplainPropertyText("Storage", storageType, es); + ExplainPropertyInteger("Maximum Storage", "kB", spaceUsedKB, es); + } + else + { + ExplainIndentText(es); + appendStringInfo(es->str, + "Storage: %s Maximum Storage: " INT64_FORMAT "kB\n", + storageType, + spaceUsedKB); + } It will be good to move this code to a function which will be called by show_*_info functions(). We might even convert it into a tuplestore specific implementation hook after David's work. -- Best Wishes, Ashutosh Bapat