Re: poc - possibility to write window function in PL languages

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Zhihong Yu <zyu(at)yugabyte(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: poc - possibility to write window function in PL languages
Date: 2021-01-04 11:14:24
Message-ID: CAFj8pRCJQz0of++_gvz20iTUCaz6x8bmbJ5g6Z=U-Zq0W8+mEA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi

pá 1. 1. 2021 v 18:57 odesílatel Zhihong Yu <zyu(at)yugabyte(dot)com> napsal:

> Hi, Pavel:
> Happy New Year.
>
> + command with clause <literal>WINDOW</literal>. The specific feature of
> + this functions is a possibility to two special storages with
>
> this functions -> this function
>
> possibility to two special storages: there is no verb.
>
> 'store with stored one value': store is repeated.
>
> + * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
>
> It would be better to change 2020 to 2021 in the new files.
>

fixed

>
> For some functions, such as windowobject_get_func_arg_frame, it would be
> better to add comment explaining their purposes.
>

It is commented before. These functions just call WinAPI functions

/*
* High level access function. These functions are wrappers for windows API
* for PL languages based on usage WindowObjectProxy.
*/

> For estimate_partition_context_size():
> + errmsg("size of value is greather than limit (1024
> bytes)")));
>
> Please include the value of typlen in the message. There is similar error
> message in the else block where value of size should be included.
>
> + return *realsize;
> + }
> + else
>
> The 'else' is not needed since the if block ends with return.
>

yes, but it is there for better readability (symmetry)

>
> + size += size / 3;
>
> Please add a comment for the choice of constant 3.
>
> + /* by default we allocate 30 bytes */
> + *realsize = 0;
>
> The value 30 may not be accurate - from the caller:
>
> + if (PG_ARGISNULL(2))
> + minsize = VARLENA_MINSIZE;
> + else
> + minsize = PG_GETARG_INT32(2);
>
> VARLENA_MINSIZE is 32.
>
> Cheers
>
> On Fri, Jan 1, 2021 at 3:29 AM Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
> wrote:
>
>> Hi
>>
>> rebase
>>
>> Regards
>>
>> Pavel
>>
>
I am sending updated patch

Thank you for comments

Regards

Pavel

Attachment Content-Type Size
plpgsql-window-functions-20210104.patch.gz application/gzip 13.2 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Hou, Zhijie 2021-01-04 11:16:02 RE: Parallel Inserts in CREATE TABLE AS
Previous Message Masahiko Sawada 2021-01-04 10:55:40 Re: {CREATE INDEX, REINDEX} CONCURRENTLY improvements