On 12 September 2016 at 12:28, Craig Ringer <craig@2ndquadrant.com> wrote: >> I'll take a closer read-through shortly.
>DEFAULT > isn't a normal literal, it's an xpath expression evaluated at the same > time as the rowexpression.
Sorry for the spam, but turns out that's not the case as implemented here. The docs you referenced say it should be an xpath expression, but the implementation here is of a literal value, and examples elsewhere on the Internet show a literal value. Unclear if the referenced docs are wrong or what and I don't have anything to test with.
It is not spam. The previous comment was not correct. DEFAULT is a expression - result of this expression is used, when data is missing.
In standard, and some others implementation, this is literal only. It is similar to DEFAULT clause in CREATE STATEMENT. Postgres allows expression there. Usually Postgres allows expressions everywhere when it has sense, and when it is allowed by bizon parser.
Feel free to fix/trim the DEFAULT related changes in above docs patch as needed.
Also, tests/docs should probably cover what happens when PATH matches more than one element, i.e. produces a list of more than one match.