Re: Sample of user-define window function and other things
От | Tom Lane |
---|---|
Тема | Re: Sample of user-define window function and other things |
Дата | |
Msg-id | 14815.1231423529@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Sample of user-define window function and other things ("Hitoshi Harada" <umi.tanuki@gmail.com>) |
Список | pgsql-hackers |
"Hitoshi Harada" <umi.tanuki@gmail.com> writes: > 2009/1/8 Tom Lane <tgl@sss.pgh.pa.us>: >> You mean set_mark? It's just to save an extra calculation of the >> absolute location of the fetched row. See leadlag_common for an >> example use: we can truncate the tuplestore if the offset is constant. > Yeah, I mean set_mark :P) I already checked leadlag_common example but > abs_pos can be very simply calculated by WinGetCurrentPosition() - > offset. So the simpler API is winner to me rather than saving few > cycle cpu cost. In this particular case it's not hard, but in the general case where you are using any of the seekpos values it could require a significant amount of code. More to the point: the available examples suggest to me that truncating at the row you fetch is likely to be a pretty common behavior; in fact *every one* of the existing callers of WinGetFuncArgInPartition or WinGetFuncArgInFrame does that, at least conditionally. So I think it's reasonable to have an extra parameter instead of making a lot of callers reinvent the same wheel. regards, tom lane
В списке pgsql-hackers по дате отправления: