Hi, I'd like to track the size of a dlist for data structure validation purposes[^0]. Normally, one would use a dclist, as this tracks a count of list elements contained therein, but because this code would not be called in most normal production builds using a dclist would waste precious memory. Manually tracking the length is possible, but tedious, and a local wrapper around the used dclist/dlist APIs (with different implementations conditioned with #ifdefs to use the right types) would also be a significant amount of effort, that'd be duplicated every time .
Attached is a patch that adds glist_* macros, which wrap several dlist/dclist_* APIs, so that developers can use dlist/dclist selectively in different environments, without significant visual overhead in the code. I'm planning to use this in the Proxy memory contexts over at [1]. I've considered also adding slist_* to the macros, but I've never needed selective slist vs dlist/dclist before, so I ignored that list type for now. Kind regards, Matthias van de Meent Databricks (https://www.databricks.com) [^0]: This case for builds with MEMORY_CONTEXT_CHECKING, but builds with USE_ASSERT_CHECKING or WRITE_READ_PARSE_PLAN_TREES -like options may also want this. [1]: https://www.postgresql.org/message-id/flat/CAEze2WiPyruOtUOSyRUV8mQssjmYwno0M6hkxC_iUpH-=w8...@mail.gmail.com
v1-0001-ilist.h-Introduce-glist-convenience-macros.patch
Description: Binary data
