Re: list partition constraint shape
От | Amit Langote |
---|---|
Тема | Re: list partition constraint shape |
Дата | |
Msg-id | 2e39fb2d-69df-471c-4da2-a7f8730f2e9d@lab.ntt.co.jp обсуждение исходный текст |
Ответ на | Re: list partition constraint shape (Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>) |
Ответы |
Re: list partition constraint shape
|
Список | pgsql-hackers |
Fujita-san, Thanks for the review. On 2018/01/25 21:17, Etsuro Fujita wrote: > Thanks for the updated patch! Some minor comments: > > + /* > + * Construct an ArrayExpr for the non-null partition > + * values > + */ > + arrexpr = makeNode(ArrayExpr); > + arrexpr->array_typeid = > + !type_is_array(key->parttypid[0]) > + ? get_array_type(key->parttypid[0]) > + : key->parttypid[0]; > > We test the type_is_array() above in this bit, so I don't think we need to > test that again here. Ah, you're right. Fixed. > + arrexpr->array_collid = key->parttypcoll[0]; > + arrexpr->element_typeid = key->parttypid[0]; > > We can assume that keynum=0 here, so it would be okay to specify zero as > the offset. But ISTM that that makes code a bit less readable, so I'd > vote for using keynum as the offset and maybe adding an assertion that > keynum should be zero, somewhere in the PARTITION_STRATEGY_LIST block. Agreed, done. > > * Both comments in the following in get_qual_for_list needs to be updated, > because the expression made there isn't necessarily = ANY anymore. > > if (elems) > { > /* Generate the main expression, i.e., keyCol = ANY (arr) */ > opexpr = make_partition_op_expr(key, 0, BTEqualStrategyNumber, > keyCol, (Expr *) elems); > } > else > { > /* If there are no partition values, we don't need an = ANY expr */ > opexpr = NULL; > } Fixed those. Attached updated patch. Thanks again. Regards, Amit
Вложения
В списке pgsql-hackers по дате отправления: