Re: bug: virtual generated column can be partition key

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема Re: bug: virtual generated column can be partition key
Дата
Msg-id a2dc009f-3568-455e-9905-7b78765c8cff@eisentraut.org
обсуждение исходный текст
Ответ на Re: bug: virtual generated column can be partition key  (Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>)
Список pgsql-hackers
committed

On 22.04.25 10:47, Ashutosh Bapat wrote:
> Thanks Jian for your review.
> 
> On Tue, Apr 22, 2025 at 12:32 PM jian he <jian.universality@gmail.com 
> <mailto:jian.universality@gmail.com>> wrote:
> 
>     On Tue, Apr 22, 2025 at 11:45 AM Ashutosh Bapat
>     <ashutosh.bapat.oss@gmail.com <mailto:ashutosh.bapat.oss@gmail.com>>
>     wrote:
>      >
>      > I have included your original tests, but ended up rewriting code.
>     Please let me know what do you think.
>      >
> 
>     + if (attno < 0)
>     + ereport(ERROR,
>     + (errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
>     + errmsg("partition key expressions cannot contain system column
>     references")));
>     +
>     + /*
>     + * We do not check dropped columns explicitly since they will
>     + * be eliminated when expanding the the whole row expression
>     + * anyway.
>     + */
>     typo: "the the".
>     I am confused by the above comments.
>     ComputePartitionAttrs only called in DefineRelation.
>     DefineRelation will only CREATE a table, there will be no dropped
>     column via DefineRelation.
> 
> 
> You are right! Fixed.
> 
> 
> 
>     + /*
>     + * transformPartitionSpec() should have already rejected
>     + * subqueries, aggregates, window functions, and SRFs, based
>     + * on the EXPR_KIND_ for partition expressions.
>     + */
>     "EXPR_KIND_" can change to EXPR_KIND_PARTITION_EXPRESSION
>     ?
> 
> 
> That's an existing comment which appears to be moved in diff but it's 
> actually untouched by the patch. Maybe you are right, IDK, but since 
> it's not related to the fix, let's leave it untouched. I did wonder 
> whether that comment has any relation to the pull_varattnos call which 
> has been moved earlier since pull_varattnos doesn't expect any Query 
> node in the tree. But pondering more, I think the comment is related to 
> the number of rows participating in the partition key computation - 
> there should be exactly one key for one tuple. Having SRFs, subqueries 
> in part expression means a possibility of producing more than one set of 
> partition keys, aggregates and window functions OTOH will produce one 
> partition key for more than one row - all of them breaking 1:1 mapping 
> between a tuple and a partition key. Hence I think the comment is at the 
> right place.
> 
> PFA revised patch.
> 
> -- 
> Best Wishes,
> Ashutosh Bapat




В списке pgsql-hackers по дате отправления: