TBH, I don't know if NULL is a valid boot_val for string variables, I just came across some extensions that use NULL as their boot_val. If the boot_val can't be NULL in extensions, we should probably add some assertions or comments about it?
Xing Guo <higuoxing@gmail.com> writes: > Thanks for your comments. I have updated the patch accordingly.
I'm leery of accepting this patch, as I see no reason that we should consider it valid for an extension to have a string GUC with a boot_val of NULL.
I realize that we have a few core GUCs that are like that, but I'm pretty sure that every one of them has special-case code that initializes the GUC to something non-null a bit later on in startup. I don't think there are any cases where a string GUC's persistent value will be null, and I don't like the idea of considering that to be an allowed case. It would open the door to more crash situations, and it brings up the old question of how could a user tell NULL from empty string (via SHOW or current_setting() or whatever). Besides, what's the benefit really?