Re: [HACKERS] Aggregates with context - a question

From: wieck(at)debis(dot)com (Jan Wieck)
To: pjw(at)rhyme(dot)com(dot)au (Philip Warner)
Cc: pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: [HACKERS] Aggregates with context - a question
Date: 1999-06-09 12:29:09
Message-ID: m10rhTh-0003kGC@orion.SAPserv.Hamburg.dsh.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Philip Warner wrote:

>
> Dear All,
>
> I have written a STDEV aggregate function which seems to work; the only problem is that I am not sure that the method I am using was intended by the designers of aggregates.
>
> I am using the first parameter of sfunc1 to store a pointer to a context record, and sfunc1 creates and returns that pointer when it is first called (the DB definition specified initcond1 = '0'). In this way I can accumulate all the details I need.
>
> The problems is that the way I read the code, there is an expectation that the parameters of sfuncX and finalfunc match the basetype. This is clearly not the case, and I have declared them as int4, which will also presumable break on 64 bit implementations...
>
> Anyway, the code is below. Any suggestions as to how I should handle complex context within aggregates would be appreciated.

Here's another implementation of standard deviation and
variance I've done some month's ago. It's based on it's own
datatype holding 2 float64 values as aggregate state
variable. So it doesn't need to pass pointers of context
records around.

I wanted to wait for some other statistical functions that
could be added to the package before putting it into the
contrib. Maybe you have some suggestions what would be nice
to add it to? I'll add it anyway to the contrib for v6.6.

Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#========================================= wieck(at)debis(dot)com (Jan Wieck) #

begin 644 statmath.tar.gz
M'XL(`/U;7C<"`^U:>W/;R`WWO]Q/@3@//6)1HF3)&9^=.<567'?D1V5[>IW+
MC88B*9D-12I\R,DUU\]>8)=/DY;EJ^-F4F(2B5PN(at)`7P`Q9+V?-5?Z[ZU\V-
M;T>PW=KI=F$#D#HM_JVTQ7=(+8!>;Z?7;G?Q`Y^V=EJ=#>AN/`$%GJ^Z`!N+
MF??)6C%/GZ@;/R!Y4?Q/U(_&U+2,;Z!#:;5ZV]MWQK_=ZFY3_)7M7K?;57;H
MZ7:GMP&M,O[?G)XW'HO8<_8<(A1!>(\4#TT=%_QK`R+(P=S1`\N0:>+CK8*=
M'QT>CV`?9+DIR^QB="!N7U3Y(at)UK3<S7&3%NS`MW`43&A%N-?GEG.1+48.SX]
M&%X=#L9GYY>P+S6.06["!R;15<*5'XDDYQXL'-=OXBK.1I>G_9-!C;&#]\/^
MT06\IL6EM-7P5CP:7PQQVLG9(3'@(B+/\;&K(0V]J(:/:R^JA\.+J_?OCW\1
M/-QL?#X\?L?U"V][C%W\;7C[&4*?,=6R=B5)3`,^(JYQD&M!A2(at)9'T0#7*W,
M9YHVKHWXXYG`KT(at)Z^8"KK*%+M`4T%E`PJXD//=\U%ZFA1&V&,=:;2&XR%K/M
MXNSY1]UT.<//]"2<E7ORDJ3L`O^239N68.BPZ7T5>L?G_<N_D+:O!6OZN(at)E[
M\&(/WG))LG#]X&(7,H%XF;HC11HCYQT<)$&N0<.[5EW4VW!0%(ID3#<6AJT#
M?NW&\QLG)[=Q4I<U>"OF,J99AFK3='<.C2G4_WW;R^EP38U/4!6<6R^J-Z:E
M:ZK+%>)(K1;G1R@<_YM3ME'2C[O_1Q>R[FA/N__#CB+V_VZKLZUT:?_OM'N=
M<O]_"KK`L)N>;VJJ!>ILYAHSU<>M.K`UWW1LCV_:YX[GXQ,LHC+N$DO#56=&
M=6HYJO^F)DGA`"Q5*S!`<^:+P,=B-OG"L!9)$L;7#B_&XS%=C2GF"GW0'BE]
MQLT9-VZZ?POPF0D>Y**/YAAGFR&_N:\PQI:J:ZJVEJP@&BC4'2N/M$,[41^?
M/\;0IF<>9-92_0S0@,\U2-;44*)%Q:L*E\4\7]>-9>(7Q)6MBZ*Z-%7R9L$"
MQ^-P65(3&V$0B]CGE(at)-XL=X/N+\Q7!?[JVK#WTU#^PA[_[RA[Y]U8V)Z,DI^
MRQXG_[5'Q]CJ_%?:7:45Y7]/:2LTM-,K^_\GH68=4LTSU.$D[/^B5A/J^(]W
MGKDR(:I#F/];$.<AXAXB]!-SG`!R*"U&,2G,J$></X]ZCSW,*-.1K]]FARQS
MDAWCJ,V,&*YK<\9D;',ABI(at)G7V^F1@/?M+SF`EM71Z,GC.4<<FAHENKR]7MB
M_;%SQG1A8.$;FW:U)AW;F-UQ[>3.X1/`=U7;,_D(at)=]+$,HK%.(&/<LX"_T\*
MTAS+,C22(5W<9HC%^0Z$\\#TC;F7D1!&<SSE%KTW;0QX9B%1N8]1D&&/,'`W
M?X*20@&BBM[-GA33#/]M$/$JW-LNCI2&[3;4\;!1^XE%UT61B(7(at)`$[-"XW<
MG9ZX!=$=.1?9<EQI%V<Y3=O?!KN()^/7=9E2OKR#I0#NB7'7F*`X'1IAUKYS
M`EOW@(^;]HR'0^QV8N_W4&[4*W(at)%0>$U1(.E8^HLIZ6J.P&BF235V+^89$ZA
M.E4G7I4&<#,^?#<<G_1_H9(dot)(at)83FSZF`T(dot)AMMX5$M%+0+#KH5EW(dot)SB79Q=EK[
MLWUHR2UX]0H287M"V/'I"F%H:2+MCY5^2B$K=E5!)8C>?-Q*8NJ9=-57P?^R
M,*(at)^2I<XT>3\=!Q&/^/9$/P;)_1UQ0//6%!!PC[BQO2O0:5T1F&5W8I<X/8P
M].R>5""GAU/Q"&GX.`']**(B2?Y\(at)7<T6Y+JVD+9`OQL(X"XIY]Q`9PM<&V(
MT%:#TZOAD"8UZTS"E?6IS)(+O(6J)2^$$"Z!Y=.,)@M58P^42!'EN>J9OQO.
M-!HFI^$)&-JUE((CP^<2IZ;K^6`'\XGAAG+YGH!B6V@'6H-7N&C?T:OXM06O
MT*8(-V0?`0?]"5^_0LBX#X-1__1HL`(T)E:#&:Y=1`^MPV&HO/0JFUL(at)JHV4
MQSVNA1X(LW]M_88+X\[.V>09FH,;:\:HC"&O7_/`H"GME"EM;LJ'UM/;HN1M
M&0F`^!SBON%2>9](at)D7>_A"H2$-"\"(9K)B#6[#(at)#B_;0=5/P=@:))&%K;!*4
M1")))L'T5Z75WOXME41+C,XRE32<(\Z:!;I5#Q;5S:H=6%:-E['8<>=8"00,
MDE)+=\;GT(MAA*CU$O(X6Y)=Q*"&Z:>+_`M]O50(0@)\J'+9CFX5NO46I'E:
M17L0'R_E^FR7/A`%5$0/CX_0)"5]TPX1D#8)F>\MHU%+$(at)5PK?Z%ART*;;1'
M$G>Z!2WJ&;RXU-[96,&U8^%VU\[N<3(@$_&*$F-Z`E7!')RIP#6U5%OIC,U.
M(%Z:`Y\"57?YCKAPL>?6?&^MZKU&S[%&*4]!D.K",\'W'53P`W%$YE)MXR;T
M>K;<A87R-=1IV0^LJBD92BP#%:\K:W55N^V(]:M8JBN,<T#TO^*M(at)9I-@LCS
MN79\+1`5MJ#!/.X,'X"@X'^#FS1F^M12(at)FXN38]<,_D"OQNN`[(at)^W(dot)QX/D8%
MP]!#7;1VFS;"%JX>C97JL7;L%W]*+(J-_Z,8HZ$G,P"M4[8W(6QI:_8J5"5Z
MOP&FTJ>&AX"J^(QV'ZCN/Z.LAI6ZG*4WRU#:7=OE]P8UR_!H+U!MW#%686X/
MZ]V?@)QJ:8&EAJ"+=SHA&!V7*HM9X,6A1%NCHM>(Y]81O[,:L<0\^%216]SF
M/&@C:5GDID/UF/!]Q)/5>N>BU<?EAZ!7R"JQF\=NOBM;`\7"G?3XD^M7'P3D
M.Y`L)&9QG`3MX2C^<7[_$S^%/^'O?YV.HL2__[4['?K];Z>CE.__GX(:#4A'
MGF%QQ*%C\><<<6G-O_JGB>'D`]=04QU[7'-7%>?PW34*(dot)!(at)-^I<#>']U>G!Y
M?'9:_,;66:B?`(at)-KSVAP>34ZO<C/8E+_`BJW_FRCPJ1A__3HJG\T@,I!!3/[
M?FUTIL^I$P,/TW'YC_-!7CY4L9B&KSXLPY[YUUAXE-X6C=+.ME_H`'SLB!<:
M^\5+Q(at)FJ9<[LN6'3'%$#&=6^7(SB>(I(A94>0Q70W[Z$[Q6R@;[3:]%A-+>F
M\$3ZYA%"EC-(at)FOE5P(MAYE^[QMHKSYV`WHA]/K5@,?S?`BO3%1?XZ9LH3;4R
MCZPR%XW4KX%X._<,:YIR?/_H:#0XHJOHH(KXGZB>P0O$?JA[BW9H'%!R(_0R
MBI9+]Q3Q9,;"BL:B.::MX1!'!PVG4R45;9YIID]O9DA8I55)C;3%"$^<G`5Q
M*WV?"7F7K[#F=BX]P*HTM')F[:YO6-A=?2]F)>!](at)%'E'Z>55%)))9544DDE
IE51222655%)))9544DDEE51222655%)))9544DG_K_0?^Q8S<`!0````
`
end

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Oleg Broytmann 1999-06-09 12:35:59 Re: [HACKERS] PL/Lang (was: Priorities for 6.6)
Previous Message Philip Warner 1999-06-09 12:23:20 Re: [HACKERS] PL/Lang (was: Priorities for 6.6)