Re: Internal error codes triggered by tests

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Alexander Lakhin <exclusion@gmail.com>
Cc: Robert Haas <robertmhaas@gmail.com>, Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-07-05T00:57:19Z
Lists: pgsql-hackers
On Thu, Jul 04, 2024 at 11:00:01AM +0300, Alexander Lakhin wrote:
> Could you please share your thoughts regarding other error cases, which is
> not triggered by existing tests, but still can be easily reached by users?
> 
> For example:
> SELECT satisfies_hash_partition(1, 1, 0, 0);
> 
> ERROR:  XX000: could not open relation with OID 1
> LOCATION:  relation_open, relation.c:61
> 
> or:
> CREATE TABLE t (b bytea);
> INSERT INTO t SELECT ''::bytea;
> CREATE INDEX brinidx ON t USING brin
>  (b bytea_bloom_ops(n_distinct_per_range = -1.0));
> 
> ERROR:  XX000: the bloom filter is too large (44629 > 8144)
> LOCATION:  bloom_init, brin_bloom.c:344
> 
> Should such cases be corrected too?

This is a case-by-case.  satisfies_hash_partition() is undocumented,
so doing nothing is fine by me.  The second one, though is something
taht can be triggered with rather normal DDL sequences.  That's more
annoying. 
--
Michael

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add new error code for "file name too long"

  2. Assign error codes where missing for user-facing failures