| From: | Yulin PEI <ypeiae(at)connect(dot)ust(dot)hk> |
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | 回复: Core dump happens when execute sql CREATE VIEW v1(c1) AS (SELECT ('4' COLLATE "C")::INT FROM generate_series(1, 10)); |
| Date: | 2021-04-13 09:27:08 |
| Message-ID: | HK0PR01MB2274A62937E8245D86E12231F44F9@HK0PR01MB2274.apcprd01.prod.exchangelabs.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
I think it is better to add this test case to regress.
________________________________
发件人: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
发送时间: 2021年4月13日 0:59
收件人: Yulin PEI <ypeiae(at)connect(dot)ust(dot)hk>
抄送: pgsql-hackers(at)lists(dot)postgresql(dot)org <pgsql-hackers(at)lists(dot)postgresql(dot)org>
主题: Re: Core dump happens when execute sql CREATE VIEW v1(c1) AS (SELECT ('4' COLLATE "C")::INT FROM generate_series(1, 10));
Yulin PEI <ypeiae(at)connect(dot)ust(dot)hk> writes:
> I found it could cause a crash when executing sql statement: `CREATE VIEW v1(c1) AS (SELECT ('4' COLLATE "C")::INT FROM generate_series(1, 10)); ` in postgres 13.2 release.
Nice catch. I don't think the code in DefineVirtualRelation is wrong:
exprCollation shouldn't report any collation for an expression of a
non-collatable type. Rather the problem is with an old kluge in
coerce_type(), which will push a type coercion underneath a CollateExpr
... without any mind for the possibility that the coercion result isn't
collatable. So the right fix is more or less the attached.
regards, tom lane
| Attachment | Content-Type | Size |
|---|---|---|
| 0001-add-regress.patch | application/octet-stream | 1.6 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Yuya Watari | 2021-04-13 09:29:57 | Performance Evaluation of Result Cache by using TPC-DS |
| Previous Message | Kohei KaiGai | 2021-04-13 09:07:25 | Re: TRUNCATE on foreign table |