Re: Boolean partitions syntax
От | Amit Langote |
---|---|
Тема | Re: Boolean partitions syntax |
Дата | |
Msg-id | 0bb6cc57-17c0-1cc2-047c-c452300a75d1@lab.ntt.co.jp обсуждение исходный текст |
Ответ на | Re: Boolean partitions syntax (Dilip Kumar <dilipbalaut@gmail.com>) |
Ответы |
Re: Boolean partitions syntax
|
Список | pgsql-hackers |
Hi Dilip. Thanks for the review. On 2017/12/12 15:03, Dilip Kumar wrote: > On Tue, Dec 12, 2017 at 7:19 AM, Amit Langote wrote: >> Horiguchi-san pointed out [1] on a nearby thread that the partitioning >> syntax (the FOR VALUES clause) doesn't accept true and false as valid >> partition bound datums, which seems to me like an oversight. Attached a >> patch to fix that. >> >> create table bools (a bool) partition by list (a); >> >> Before patch: >> >> create table bools_t partition of bools for values in (true); >> ERROR: syntax error at or near "true" >> LINE 1: ...reate table bools_t partition of bools for values in (true); >> >> After: >> >> create table bools_t partition of bools for values in (true); >> CREATE TABLE >> \d bools_t >> Table "public.bools_t" >> Column | Type | Collation | Nullable | Default >> --------+---------+-----------+----------+--------- >> a | boolean | | | >> Partition of: bools FOR VALUES IN (true) > > +makeBoolAConstNoCast(bool state, int location) > +{ > + A_Const *n = makeNode(A_Const); > + > + n->val.type = T_String; > + n->val.val.str = (state ? "t" : "f"); > + n->location = location; > + > + return (Node *) n; > +} > + > > I think we can change makeBoolAConst as below so that we can avoid > duplicate code. > > static Node * > makeBoolAConst(bool state, int location) > { > Node *n = makeBoolAConstNoCast(state, location); > > return makeTypeCast(n, SystemTypeName("bool"), -1); > } Works for me, updated patch attached. Thanks, Amit
Вложения
В списке pgsql-hackers по дате отправления: