Peter Eisentraut <peter_e@gmx.net> writes:
>> It'd be better to allow ErrorResponse to carry multiple fields.
> That's the idea. But I can hardly concatenate the error codes, can I? I
> looks as though we need an API where all the messages (errors + notices)
> from each query cycle are collected and can be cycled through after
> completion.
One way to do this that wouldn't involve breaking the protocol is
to assign significance to linebreaks in an 'E' message's payload.
I think someone proposed this already:
ERROR: blah blahCODE: 12345LOCATION: some/file.c line NNN
ie, lines starting with agreed-on keywords would be taken as conveying
specific fields. An arrangement like this could still work with plain
concatenation of multiple errors. Also, it would work tolerably well
when fed to an old application that knows nothing of the convention and
just prints out the error string. I'm leery of defining a whole new API
that must be used before one gets to see any of the added error
information --- that would mean that a lot of people never will see it.
regards, tom lane