Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 3ef7503

Browse files
committed
Add approaxdc aggregate
1 parent 99eb984 commit 3ef7503

File tree

3 files changed

+361
-1
lines changed

3 files changed

+361
-1
lines changed

vops--1.0.sql

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,23 @@ CREATE AGGREGATE last(vops_text,vops_timestamp) (
204204
PARALLEL = SAFE
205205
);
206206

207+
create function vops_approxdc_final(state internal) returns int8 as 'MODULE_PATHNAME' language C parallel safe strict;
208+
create function vops_approxdc_combine(internal,internal) returns internal as 'MODULE_PATHNAME' language C parallel safe;
209+
create function vops_approxdc_serial(internal) returns bytea as 'MODULE_PATHNAME' language C parallel safe strict;
210+
create function vops_approxdc_deserial(bytea,internal) returns internal as 'MODULE_PATHNAME' language C parallel safe strict;
211+
212+
create function vops_text_approxdc_accumulate(state internal, val vops_text) returns internal as 'MODULE_PATHNAME' language C parallel safe;
213+
CREATE AGGREGATE approxdc(vops_text) (
214+
SFUNC = vops_text_approxdc_accumulate,
215+
STYPE = internal,
216+
SSPACE = 128,
217+
FINALFUNC = vops_approxdc_final,
218+
COMBINEFUNC = vops_approxdc_combine,
219+
SERIALFUNC = vops_approxdc_serial,
220+
DESERIALFUNC = vops_approxdc_deserial,
221+
PARALLEL = SAFE
222+
);
223+
207224
create function first(tile vops_text) returns text as 'MODULE_PATHNAME','vops_text_first' language C parallel safe immutable strict;
208225
create function last(tile vops_text) returns text as 'MODULE_PATHNAME','vops_text_last' language C parallel safe immutable strict;
209226
create function low(tile vops_text) returns text as 'MODULE_PATHNAME','vops_text_low' language C parallel safe immutable strict;
@@ -562,6 +579,18 @@ CREATE AGGREGATE last(vops_char,vops_timestamp) (
562579
PARALLEL = SAFE
563580
);
564581

582+
create function vops_char_approxdc_accumulate(state internal, val vops_char) returns internal as 'MODULE_PATHNAME' language C parallel safe;
583+
CREATE AGGREGATE approxdc(vops_char) (
584+
SFUNC = vops_char_approxdc_accumulate,
585+
STYPE = internal,
586+
SSPACE = 128,
587+
FINALFUNC = vops_approxdc_final,
588+
COMBINEFUNC = vops_approxdc_combine,
589+
SERIALFUNC = vops_approxdc_serial,
590+
DESERIALFUNC = vops_approxdc_deserial,
591+
PARALLEL = SAFE
592+
);
593+
565594
create function first(tile vops_char) returns "char" as 'MODULE_PATHNAME','vops_char_first' language C parallel safe immutable strict;
566595
create function last(tile vops_char) returns "char" as 'MODULE_PATHNAME','vops_char_last' language C parallel safe immutable strict;
567596
create function low(tile vops_char) returns "char" as 'MODULE_PATHNAME','vops_char_low' language C parallel safe immutable strict;
@@ -902,6 +931,18 @@ CREATE AGGREGATE last(vops_int2,vops_timestamp) (
902931
PARALLEL = SAFE
903932
);
904933

934+
create function vops_int2_approxdc_accumulate(state internal, val vops_int2) returns internal as 'MODULE_PATHNAME' language C parallel safe;
935+
CREATE AGGREGATE approxdc(vops_int2) (
936+
SFUNC = vops_int2_approxdc_accumulate,
937+
STYPE = internal,
938+
SSPACE = 128,
939+
FINALFUNC = vops_approxdc_final,
940+
COMBINEFUNC = vops_approxdc_combine,
941+
SERIALFUNC = vops_approxdc_serial,
942+
DESERIALFUNC = vops_approxdc_deserial,
943+
PARALLEL = SAFE
944+
);
945+
905946
create function first(tile vops_int2) returns int2 as 'MODULE_PATHNAME','vops_int2_first' language C parallel safe immutable strict;
906947
create function last(tile vops_int2) returns int2 as 'MODULE_PATHNAME','vops_int2_last' language C parallel safe immutable strict;
907948
create function low(tile vops_int2) returns int2 as 'MODULE_PATHNAME','vops_int2_low' language C parallel safe immutable strict;
@@ -1242,6 +1283,18 @@ CREATE AGGREGATE last(vops_int4,vops_timestamp) (
12421283
PARALLEL = SAFE
12431284
);
12441285

1286+
create function vops_int4_approxdc_accumulate(state internal, val vops_int4) returns internal as 'MODULE_PATHNAME' language C parallel safe;
1287+
CREATE AGGREGATE approxdc(vops_int4) (
1288+
SFUNC = vops_int4_approxdc_accumulate,
1289+
STYPE = internal,
1290+
SSPACE = 128,
1291+
FINALFUNC = vops_approxdc_final,
1292+
COMBINEFUNC = vops_approxdc_combine,
1293+
SERIALFUNC = vops_approxdc_serial,
1294+
DESERIALFUNC = vops_approxdc_deserial,
1295+
PARALLEL = SAFE
1296+
);
1297+
12451298
create function first(tile vops_int4) returns int4 as 'MODULE_PATHNAME','vops_int4_first' language C parallel safe immutable strict;
12461299
create function last(tile vops_int4) returns int4 as 'MODULE_PATHNAME','vops_int4_last' language C parallel safe immutable strict;
12471300
create function low(tile vops_int4) returns int4 as 'MODULE_PATHNAME','vops_int4_low' language C parallel safe immutable strict;
@@ -1579,6 +1632,19 @@ CREATE AGGREGATE last(vops_date,vops_timestamp) (
15791632
PARALLEL = SAFE
15801633
);
15811634

1635+
create function vops_date_approxdc_accumulate(state internal, val vops_date) returns internal as 'MODULE_PATHNAME','vops_int4_approxdc_accumulate' language C parallel safe;
1636+
CREATE AGGREGATE approxdc(vops_date) (
1637+
SFUNC = vops_date_approxdc_accumulate,
1638+
STYPE = internal,
1639+
SSPACE = 128,
1640+
FINALFUNC = vops_approxdc_final,
1641+
COMBINEFUNC = vops_approxdc_combine,
1642+
SERIALFUNC = vops_approxdc_serial,
1643+
DESERIALFUNC = vops_approxdc_deserial,
1644+
PARALLEL = SAFE
1645+
);
1646+
1647+
15821648
create function first(tile vops_date) returns date as 'MODULE_PATHNAME','vops_int4_first' language C parallel safe immutable strict;
15831649
create function last(tile vops_date) returns date as 'MODULE_PATHNAME','vops_int4_last' language C parallel safe immutable strict;
15841650
create function low(tile vops_date) returns date as 'MODULE_PATHNAME','vops_int4_low' language C parallel safe immutable strict;
@@ -1903,6 +1969,18 @@ CREATE AGGREGATE mcount(vops_timestamp) (
19031969
PARALLEL = SAFE
19041970
);
19051971

1972+
create function vops_timestamp_approxdc_accumulate(state internal, val vops_timestamp) returns internal as 'MODULE_PATHNAME','vops_int8_approxdc_accumulate' language C parallel safe;
1973+
CREATE AGGREGATE approxdc(vops_timestamp) (
1974+
SFUNC = vops_timestamp_approxdc_accumulate,
1975+
STYPE = internal,
1976+
SSPACE = 128,
1977+
FINALFUNC = vops_approxdc_final,
1978+
COMBINEFUNC = vops_approxdc_combine,
1979+
SERIALFUNC = vops_approxdc_serial,
1980+
DESERIALFUNC = vops_approxdc_deserial,
1981+
PARALLEL = SAFE
1982+
);
1983+
19061984
create function first(tile vops_timestamp) returns timestamp as 'MODULE_PATHNAME','vops_int8_first' language C parallel safe immutable strict;
19071985
create function last(tile vops_timestamp) returns timestamp as 'MODULE_PATHNAME','vops_int8_last' language C parallel safe immutable strict;
19081986
create function low(tile vops_timestamp) returns timestamp as 'MODULE_PATHNAME','vops_int8_low' language C parallel safe immutable strict;
@@ -2252,6 +2330,18 @@ CREATE AGGREGATE last(vops_interval,vops_timestamp) (
22522330
PARALLEL = SAFE
22532331
);
22542332

2333+
create function vops_interval_approxdc_accumulate(state internal, val vops_interval) returns internal as 'MODULE_PATHNAME','vops_int8_approxdc_accumulate' language C parallel safe;
2334+
CREATE AGGREGATE approxdc(vops_interval) (
2335+
SFUNC = vops_interval_approxdc_accumulate,
2336+
STYPE = internal,
2337+
SSPACE = 128,
2338+
FINALFUNC = vops_approxdc_final,
2339+
COMBINEFUNC = vops_approxdc_combine,
2340+
SERIALFUNC = vops_approxdc_serial,
2341+
DESERIALFUNC = vops_approxdc_deserial,
2342+
PARALLEL = SAFE
2343+
);
2344+
22552345
create function first(tile vops_interval) returns deltatime as 'MODULE_PATHNAME','vops_int8_first' language C parallel safe immutable strict;
22562346
create function last(tile vops_interval) returns deltatime as 'MODULE_PATHNAME','vops_int8_last' language C parallel safe immutable strict;
22572347
create function low(tile vops_interval) returns deltatime as 'MODULE_PATHNAME','vops_int8_low' language C parallel safe immutable strict;
@@ -2593,6 +2683,18 @@ CREATE AGGREGATE last(vops_int8,vops_timestamp) (
25932683
PARALLEL = SAFE
25942684
);
25952685

2686+
create function vops_int8_approxdc_accumulate(state internal, val vops_int8) returns internal as 'MODULE_PATHNAME' language C parallel safe;
2687+
CREATE AGGREGATE approxdc(vops_int8) (
2688+
SFUNC = vops_int8_approxdc_accumulate,
2689+
STYPE = internal,
2690+
SSPACE = 128,
2691+
FINALFUNC = vops_approxdc_final,
2692+
COMBINEFUNC = vops_approxdc_combine,
2693+
SERIALFUNC = vops_approxdc_serial,
2694+
DESERIALFUNC = vops_approxdc_deserial,
2695+
PARALLEL = SAFE
2696+
);
2697+
25962698
create function first(tile vops_int8) returns int8 as 'MODULE_PATHNAME','vops_int8_first' language C parallel safe immutable strict;
25972699
create function last(tile vops_int8) returns int8 as 'MODULE_PATHNAME','vops_int8_last' language C parallel safe immutable strict;
25982700
create function low(tile vops_int8) returns int8 as 'MODULE_PATHNAME','vops_int8_low' language C parallel safe immutable strict;
@@ -2916,6 +3018,18 @@ CREATE AGGREGATE last(vops_float4,vops_timestamp) (
29163018
PARALLEL = SAFE
29173019
);
29183020

3021+
create function vops_float4_approxdc_accumulate(state internal, val vops_float4) returns internal as 'MODULE_PATHNAME' language C parallel safe;
3022+
CREATE AGGREGATE approxdc(vops_float4) (
3023+
SFUNC = vops_float4_approxdc_accumulate,
3024+
STYPE = internal,
3025+
SSPACE = 128,
3026+
FINALFUNC = vops_approxdc_final,
3027+
COMBINEFUNC = vops_approxdc_combine,
3028+
SERIALFUNC = vops_approxdc_serial,
3029+
DESERIALFUNC = vops_approxdc_deserial,
3030+
PARALLEL = SAFE
3031+
);
3032+
29193033

29203034
create function first(tile vops_float4) returns float4 as 'MODULE_PATHNAME','vops_float4_first' language C parallel safe immutable strict;
29213035
create function last(tile vops_float4) returns float4 as 'MODULE_PATHNAME','vops_float4_last' language C parallel safe immutable strict;
@@ -3241,6 +3355,18 @@ CREATE AGGREGATE last(vops_float8,vops_timestamp) (
32413355
PARALLEL = SAFE
32423356
);
32433357

3358+
create function vops_float8_approxdc_accumulate(state internal, val vops_float8) returns internal as 'MODULE_PATHNAME' language C parallel safe;
3359+
CREATE AGGREGATE approxdc(vops_float8) (
3360+
SFUNC = vops_float8_approxdc_accumulate,
3361+
STYPE = internal,
3362+
SSPACE = 128,
3363+
FINALFUNC = vops_approxdc_final,
3364+
COMBINEFUNC = vops_approxdc_combine,
3365+
SERIALFUNC = vops_approxdc_serial,
3366+
DESERIALFUNC = vops_approxdc_deserial,
3367+
PARALLEL = SAFE
3368+
);
3369+
32443370
create function first(tile vops_float8) returns float8 as 'MODULE_PATHNAME','vops_float8_first' language C parallel safe immutable strict;
32453371
create function last(tile vops_float8) returns float8 as 'MODULE_PATHNAME','vops_float8_last' language C parallel safe immutable strict;
32463372
create function low(tile vops_float8) returns float8 as 'MODULE_PATHNAME','vops_float8_low' language C parallel safe immutable strict;

0 commit comments

Comments
 (0)