Re: BUG #15668: Server crash in transformPartitionRangeBounds
От | Amit Langote |
---|---|
Тема | Re: BUG #15668: Server crash in transformPartitionRangeBounds |
Дата | |
Msg-id | ab51ec5a-b2d3-a25f-5695-7555ad63d344@lab.ntt.co.jp обсуждение исходный текст |
Ответ на | Re: BUG #15668: Server crash in transformPartitionRangeBounds (Michael Paquier <michael@paquier.xyz>) |
Ответы |
Re: BUG #15668: Server crash in transformPartitionRangeBounds
Re: BUG #15668: Server crash in transformPartitionRangeBounds Re: BUG #15668: Server crash in transformPartitionRangeBounds Re: BUG #15668: Server crash in transformPartitionRangeBounds |
Список | pgsql-bugs |
Hi, On 2019/03/06 17:27, Michael Paquier wrote: > On Wed, Mar 06, 2019 at 04:00:42PM +0900, Amit Langote wrote: >> Thanks for looking at this. Your patch seems better, because it allows us >> to keep the error message consistent with the message one would get with >> list-partitioned syntax. > > Thanks for confirming. I think that it would be nice as well to add > more test coverage for such error patterns with all the strategies. > It would be good to fix that first, so I can take care of that. I've added some tests to your patch. Also improved the comments a bit. I noticed another issue with the code -- it's using strcmp() to compare specified string against "minvalue" and "maxvalue", which causes the following silly error: create table q2 partition of q for values from ("MINVALUE") to (maxvalue); ERROR: column "MINVALUE" does not exist LINE 1: create table q2 partition of q for values from ("MINVALUE") ... It should be using pg_strncasecmp(). > Now I don't really find the error "missing FROM-clause entry for > table" quite convincing when this is applied to a partition bound when > using a column defined in the relation. Adding more error classes in > the set of CRERR_NO_RTE would be perhaps nice, still I am not sure how > elegant it could be made when looking at expressions for partition > bounds. Note that this is not just a problem for partition bounds. You can see it with default expressions too. create table foo (a int default (aa.a)); ERROR: missing FROM-clause entry for table "aa" LINE 1: create table foo (a int default (aa.a)); create table foo (a int default (a.a.aa.a.a.a.a.aa)); ERROR: improper qualified name (too many dotted names): a.a.aa.a.a.a.a.aa LINE 1: create table foo (a int default (a.a.aa.a.a.a.a.aa)); We could make the error message more meaningful depending on the context, but maybe it'd better be pursue it as a separate project. Thanks, Amit
Вложения
В списке pgsql-bugs по дате отправления: