Re: Add RESPECT/IGNORE NULLS and FROM FIRST/LAST options
От | Tatsuo Ishii |
---|---|
Тема | Re: Add RESPECT/IGNORE NULLS and FROM FIRST/LAST options |
Дата | |
Msg-id | 20250128.180232.1596242435813112534.ishii@postgresql.org обсуждение исходный текст |
Ответ на | Add RESPECT/IGNORE NULLS and FROM FIRST/LAST options (Oliver Ford <ojford@gmail.com>) |
Ответы |
Re: Add RESPECT/IGNORE NULLS and FROM FIRST/LAST options
|
Список | pgsql-hackers |
>> +/* >> + * ignorenulls_getfuncarginframe >> + * For IGNORE NULLS, get the next nonnull value in the frame, moving forward or backward >> + * until we find a value or reach the frame's end. >> + */ >> +static Datum >> +ignorenulls_getfuncarginframe(WindowObject winobj, int argno, >> >> Do you assume that win_nonnulls is sorted by pos? I think it's >> necessarily true that pos in win_nonnulls array is sorted. Is that ok? > > Yes it must be sorted on my understanding of the code. Then the patch has a problem. I ran a query below and examined win_nonnulls. It seems it was not sorted out. SELECT x,y, nth_value(y,1) IGNORE NULLS OVER w FROM (VALUES (1,1), (2,2), (3,NULL), (4,4), (5,NULL), (6,6), (7,7)) AS t(x,y) WINDOW w AS (ORDER BY x ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING EXCLUDE CURRENT ROW); (gdb) p *winobj->win_nonnulls @ winobj->nonnulls_len $8 = {1, 0, 3, 6, 5} Best reagards, -- Tatsuo Ishii SRA OSS K.K. English: http://www.sraoss.co.jp/index_en/ Japanese:http://www.sraoss.co.jp
В списке pgsql-hackers по дате отправления: