On Thu, Mar 20, 2025 at 09:59:45AM -0700, David G. Johnston wrote: > I get the need for this kind of logic, since we used a boolean for the > table option, but as a self-proclaimed hack it seems worth more comments > than provided here. Especially pertaining to whether this is indeed > generic or vacuum_truncate specific. It's unclear since both isset and > vacuum_truncate_set have been introduced.
I'm happy to expand the comments, but... > If it is now a general property > applying to any setting then vacuum_truncate_set shouldn't be needed - we > should just get the isset value of the existing vacuum_truncate reloption > by name. the reason I added this field is because I couldn't find any existing way to get this information where it's needed. So, I followed the existing pattern of adding an offset to something we can access. This can be used for any reloption, but currently vacuum_truncate is the only one that does. How does something like this look for the comment? /* * isset_offset is an optional offset of a field in the result struct * that stores whether the value is explicitly set for the relation or * has just picked up the default value. In most cases, this can be * deduced by giving the reloption a special default value (e.g., -2 is * a common one for integer reloptions), but this isn't always * possible. One notable example is Boolean reloptions, where it's * difficult to discern the source of the value. This offset is only * used if given a value greater than zero. */ int isset_offset; -- nathan