Обсуждение: 9.1rc1: TRAP: FailedAssertion("!(item_width > 0)", File: "costsize.c", Line: 3274)
9.1rc1: TRAP: FailedAssertion("!(item_width > 0)", File: "costsize.c", Line: 3274)
От
"Erik Rijkers"
Дата:
I am developing against 9.1beta3 and encountered this problem. I repeated it against rc1 (or
actually, REL9_1_STABLE taken from git today).
The below SQL causes:
TRAP: FailedAssertion("!(item_width > 0)", File: "costsize.c", Line: 3274)
and the session crashes.
select *
from ( select col1 , col2 , reviewed from (values ( 1111, 'aweyu', 3) , ( 2222, 'bwetu', 2)
, ( 3333, 'vwxyz', 1) ) as r(col1,col2,col3) left join ( select 1 as reviewed, c2 from ( values
('abcde')) as t1(c2) union all select 0 as reviewed, c2 from ( values ('vwxyz') ) as t2(c2) ) as up_all on
up_all.c2= r.col2 order by col3
) as f
;
To simplify I used 'values' for the actual tables that I am using, but the above still causes the
FailedAssertion.
Removing the outer select avoids the error and
removing order by avoids the error
Erik Rijkers
On Mon, Aug 22, 2011 at 4:16 PM, Erik Rijkers <er@xs4all.nl> wrote:
> I am developing against 9.1beta3 and encountered this problem. I repeated it against rc1 (or
> actually, REL9_1_STABLE taken from git today).
>
> The below SQL causes:
>
> TRAP: FailedAssertion("!(item_width > 0)", File: "costsize.c", Line: 3274)
>
> and the session crashes.
>
> select *
> from (
> select
> col1
> , col2
> , reviewed
> from
> (values
> ( 1111, 'aweyu', 3)
> , ( 2222, 'bwetu', 2)
> , ( 3333, 'vwxyz', 1)
> )
> as r(col1,col2,col3)
> left join (
> select 1 as reviewed, c2 from ( values ('abcde') ) as t1(c2)
> union all select 0 as reviewed, c2 from ( values ('vwxyz') ) as t2(c2)
> )
> as up_all on up_all.c2 = r.col2
> order by col3
> )
> as f
> ;
>
>
> To simplify I used 'values' for the actual tables that I am using, but the above still causes the
> FailedAssertion.
>
> Removing the outer select avoids the error and
> removing order by avoids the error
I can reproduce this on master but not on 9.0. I suspect the problem
was introduced by this commit:
commit 0f61d4dd1b4f95832dcd81c9688dac56fd6b5687
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: Fri Nov 19 17:31:50 2010 -0500
Improve relation width estimation for subqueries.
...but I haven't confirmed that yet.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Robert Haas <robertmhaas@gmail.com> writes:
> On Mon, Aug 22, 2011 at 4:16 PM, Erik Rijkers <er@xs4all.nl> wrote:
>> The below SQL causes:
>> TRAP: FailedAssertion("!(item_width > 0)", File: "costsize.c", Line: 3274)
> I can reproduce this on master but not on 9.0. I suspect the problem
> was introduced by this commit:
> commit 0f61d4dd1b4f95832dcd81c9688dac56fd6b5687
Well, that's a pretty safe bet considering the Assert is in code that
didn't exist before that commit ;-). The question is why the per-column
width estimate hasn't been set for that column. Looking at the
coredump, I see that the width *did* get set for the subquery's other
output column, which makes it even weirder. Too tired to dig further
right now though.
regards, tom lane
"Erik Rijkers" <er@xs4all.nl> writes:
> The below SQL causes:
> TRAP: FailedAssertion("!(item_width > 0)", File: "costsize.c", Line: 3274)
Thanks, I've applied a patch for this.
regards, tom lane