On Thu, Dec 14, 2023 at 06:34:44PM +0800, Richard Guo wrote:
> On Thu, Dec 14, 2023 at 5:29 PM PG Bug reporting form <
> noreply@postgresql.org> wrote:
>
> > EXPLAIN SELECT * FROM t;
> > QUERY PLAN
> > ------------------------------------------------------------
> > Seq Scan on t (cost=0.00..10.00 rows=1 width=-2113929008)
> > (1 row)
>
>
> Interesting. In an Assert-enabled build this query will cause the
> Assert failure in set_rel_width().
>
> Assert(tuple_width >= 0);
>
> Can we just error out when an overflow occurs?
I'm worried that it could have quite a broad impact, as the same problem could
easily arise in some more conventional cases, e.g. after joining some already
large relations. I'm sure that some people already hit that in production
without looking at explain plans, and wouldn't be happy to see it broken during
the next update.