As an example: I enable %e in log_line_prefix so I can see the SQLSTATE values. I run an UPDATE against a non-existent row, and find that my SQLSTATE value is 00000, indicating success. I understand that this could be considered a 'success' because the query didn't actually throw an error; but, based on the spec, I expected to see a SQLSTATE of 02000.
I thought that Pg always generated an appropriate SQLSTATE code, and that it was just up to $client code to pick up that value, but that doesn't seem to be the case. Is this part of the SQL standard we don't implement?