Re: [PATCH] Negative Transition Aggregate Functions (WIP)
От | Tom Lane |
---|---|
Тема | Re: [PATCH] Negative Transition Aggregate Functions (WIP) |
Дата | |
Msg-id | 11010.1389904771@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: [PATCH] Negative Transition Aggregate Functions (WIP) (Andres Freund <andres@2ndquadrant.com>) |
Список | pgsql-hackers |
Andres Freund <andres@2ndquadrant.com> writes: > On 2014-01-16 14:23:47 -0500, Tom Lane wrote: >> Dunno, I think that a transition state containing both an int64 and >> a (presumably separately palloc'd) numeric will be a real PITA. > Yea, not sure myself. I just dislike the idea of having a good part of a > 128bit math implementation for a single transition function. Not sure how you figure that we need very much new code beyond the overflow test. > Well, you don't need to check the second variable for lots of > operations. Say, the current sum is 0 and you add a -1. With the two > variables scheme that requires checking the second variable, > manipulating it etc. I'm envisioning just state->lowhalf += input;if (overflowed_up) state->highhalf++;else if (overflowed_down) state->highhalf--; The only thing that might take a moment's thought, or extra cycles in the normal case, is extending the overflow test so that it can tell whether we need to increment or decrement the upper half. [ thinks a bit... ] Note that I'm supposing that the state is defined as (highhalf * 2^64) + lowhalf, not that we need the two variables to be exactly a 128-bit twos-complement value, which is what I think you're talking about. regards, tom lane
В списке pgsql-hackers по дате отправления: