You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Value set literals refuse array_in's dimension decoration ([1:1]={…}) and {{}} #128
Value set literals refuse two array literals PostgreSQL's array_in reads as a one-dimensional array: the dimension decoration [lower:upper]= and the nested empty {{}}. Loud (FormatException). Measured on main (3ecfa10) against PostgreSQL 17.10:
Int32Set.Parse("[1:1]={1}",null);// FormatException: not a valid array literalStringSet.Parse("[0:1]={a,b}",null);// FormatExceptionInt32Set.Parse("{{}}",null);// FormatException
Every value set type. Found by LiteralCorpusProbeTests (#123), family dimensions. A real two-dimensional literal ({{1},{2}}) is refused on purpose and agrees.
Authority.docs/value-sets.md#parse-and-print-literals: "The grammar is PostgreSQL's array_in." (claim S12). array_out prints the decoration whenever the lower bound is not 1, so a column written by another tool ('[0:1]={1,2}') prints text the library cannot read back.
Options. Read the decoration and drop it (a set has no index), and read {{}} as empty; or document both as refused next to S12.
The same refusal holds for {{},{}}, which array_in also reads as {}. LiteralCorpusProbeTests (#123) registers [1:1]={a}, [0:1]={a,b}, {{}} and {{},{}} as family dimension decoration for all 28 value set types; a real two-dimensional literal is refused on both sides and agrees.
Activity
CaffeinatedCoder commentedon Oct 17, 2026
The same refusal holds for
{{},{}}, whicharray_inalso reads as{}.LiteralCorpusProbeTests(#123) registers[1:1]={a},[0:1]={a,b},{{}}and{{},{}}as familydimension decorationfor all 28 value set types; a real two-dimensional literal is refused on both sides and agrees.