Re: Add RESPECT/IGNORE NULLS and FROM FIRST/LAST options
От | Tatsuo Ishii |
---|---|
Тема | Re: Add RESPECT/IGNORE NULLS and FROM FIRST/LAST options |
Дата | |
Msg-id | 20251006.090901.2288040209954599522.ishii@postgresql.org обсуждение исходный текст |
Ответ на | Re: Add RESPECT/IGNORE NULLS and FROM FIRST/LAST options (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
> will be exited this time. But there's another thing that is > confusing: the NN_NULL case certainly looks like it's expecting > to exit the loop, but that "break" will only get out of the switch > not the loop. You mean "NN_NOTNULL" case? if (notnull_offset >= notnull_relpos), then following "while (notnull_offset < notnull_relpos)" does not satisfy the continuous condition of the while loop and exits the loop. I can add "goto" to explicitly exit the loop if we want. > Moreover, the NN_NULL case looks like it'd fail > to notice end-of-frame. And it's not entirely clear what the > default case thinks it's doing either. WinGetFuncArgInPartition() does not care about frame, no? > In short, this loop is impossible to understand, and the lack of > comments doesn't help. Even if it's not actually buggy, it > needs to be rewritten in a way that helps readers and compilers > see that it's not buggy. I think it might help to separate the > detection of null-ness and fetching of the datum value (if required) > from the loop control logic. Thanks for the idea. Let me think if I could change the loop to be easier to understand. Best regards, -- Tatsuo Ishii SRA OSS K.K. English: http://www.sraoss.co.jp/index_en/ Japanese:http://www.sraoss.co.jp
В списке pgsql-hackers по дате отправления: