On 2025-Apr-14, Richard Guo wrote: > It seems what happens is that internally in gram.y (~line 14274), the > DefElem for the not-null option is assigned the name "is_not_null". > As a result, this allows users to explicitly use "is_not_null" as the > option name. However, the value provided for the is_not_null option > in this way might not be a Boolean as expected, which triggers the > assertion. > > I kind of doubt we should allow the use of the "is_not_null" keyword > in the xmltable function. > > Hi Álvaro, what do you think about this?
Hello Richard, sorry that I failed to notice this earlier. I agree that blocking the index from using the option name that xmltable parsing uses internally is okay. Maybe we can rename it to something like "__pg__is_not_null" or something like that, which would reduce the chances of troubling people; the existing name sounds too much like a valid name that users could want to use. Also, maybe rather than just "syntax error" we could say something like "option name XYZ cannot be used in XMLTABLE". I wonder if we have any other names used by the parser that can cause this kind of problem. In a quick look through gram.y I didn't find any other place that would fabricate a name and also accept arbitrary user-specified names to use, so this seems to be the only place affected by this particular bug. -- Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/