uint FUN [COST LOW] extr_med_hfta0_fcn(string);
uint EXTR qspace_of quant_udaf_hfta0 extr_quant_hfta0_space (uint);
uint FUN [COST LOW] extr_quant_hfta0_space(string);
- string UDAF [SUBAGGR quant_udaf_lfta3, SUPERAGGR quant_udaf_hfta3] quant_udaf_hfta0 fstring16 (uint);
- string UDAF quant_udaf_hfta3 fstring16 (string);
+ string UDAF [SUBAGGR quant_udaf_lfta3, SUPERAGGR quant_udaf_hfta3] quant_udaf_hfta0 fstring24 (uint);
+ string UDAF quant_udaf_hfta3 fstring24 (string);
string UDAF quant_udaf_lfta3 fstring6600 (uint);
///////////////////////////////////////////////////////////
// count the # times the payload is different from the previous value
/////////////////////////////////////////////////////////////
- uint UDAF [SUBAGGR count_diff_lfta_ui, SUPERAGGR count_diff_hfta] count_diff fstring12 (uint);
- uint UDAF count_diff_hfta fstring12 (string);
+ uint UDAF [SUBAGGR count_diff_lfta_ui, SUPERAGGR count_diff_hfta] count_diff fstring16 (uint);
+ uint UDAF count_diff_hfta fstring16 (string);
string UDAF count_diff_lfta_ui fstring20 (uint);
- uint UDAF [SUBAGGR count_diff_lfta_i, SUPERAGGR count_diff_hfta] count_diff fstring12 (int);
+ uint UDAF [SUBAGGR count_diff_lfta_i, SUPERAGGR count_diff_hfta] count_diff fstring16 (int);
string UDAF count_diff_lfta_i fstring20 (int);
- uint UDAF [SUBAGGR count_diff_lfta_ul, SUPERAGGR count_diff_hfta] count_diff fstring12 (ullong);
+ uint UDAF [SUBAGGR count_diff_lfta_ul, SUPERAGGR count_diff_hfta] count_diff fstring16 (ullong);
string UDAF count_diff_lfta_ul fstring20 (ullong);
- uint UDAF [SUBAGGR count_diff_lfta_l, SUPERAGGR count_diff_hfta] count_diff fstring12 (llong);
+ uint UDAF [SUBAGGR count_diff_lfta_l, SUPERAGGR count_diff_hfta] count_diff fstring16 (llong);
string UDAF count_diff_lfta_l fstring20 (llong);
- uint UDAF [SUBAGGR count_diff_lfta_s, SUPERAGGR count_diff_hfta] count_diff fstring12 (string);
+ uint UDAF [SUBAGGR count_diff_lfta_s, SUPERAGGR count_diff_hfta] count_diff fstring16 (string);
string UDAF count_diff_lfta_s fstring20 (string);
+////////////////////////////////////////////////////////////////
+// string aggregation via catenation
+//////////////////////////////////////////////////////
+
+ string UDAF [HFTA_ONLY] CAT_aggr fstring8 (string, string);
+
///////////////////////////////////////////////////////////
-// integer array aggregation funciton
+// integer array aggregation function
// We are going to store 4 values in LFTA in fixed size buffer
-// plus one byte for array length (17 bytes total)
-// HFTA will combine partial aggregates
+// plus one byte for array length (17 bytes total)
+// HFTA will combine partial aggregates
+// This seems to create a string with a comma-separated list of the uints
///////////////////////////////////////////////////////////
string UDAF [RUNNING, SUBAGGR running_array_aggr_lfta, SUPERAGGR running_array_aggr_hfta] running_array_aggr string (uint);
string UDAF [RUNNING] running_array_aggr_hfta string (string);
string UDAF [RUNNING] running_array_aggr_lfta fstring17 (uint);
+//////////////////////////////////////////////////////////
+// Mapping functions
+// Should eventually be replaced by watchlist join ?
+//////////////////////////////////
+ string FUN [HFTA_ONLY, COST EXPENSIVE] int_to_string_map(llong, string HANDLE);
+ string FUN [HFTA_ONLY, COST EXPENSIVE] int_to_string_map(ullong, string HANDLE);
+ string FUN [HFTA_ONLY, COST EXPENSIVE] int_to_string_map(int, string HANDLE);
+ string FUN [HFTA_ONLY, COST EXPENSIVE] int_to_string_map(uint, string HANDLE);
+
+//////////////////////////////////////////////////////////
+// time-averaged aggregate.
+// time_avg(sample, ts, window_size)
+ float UDAF [HFTA_ONLY, RUNNING] time_avg fstring44 (uint, llong, llong) ;
+ float UDAF [HFTA_ONLY, RUNNING] time_avg fstring44 (int, llong, llong) ;
+ float UDAF [HFTA_ONLY, RUNNING] time_avg fstring44 (ullong, llong, llong) ;
+ float UDAF [HFTA_ONLY, RUNNING] time_avg fstring44 (llong, llong, llong) ;
+ float UDAF [HFTA_ONLY, RUNNING] time_avg fstring44 (float, llong, llong) ;
+
+// ------------------------------------------------------------
+// running_sum_max : get the running sum of an int,
+// be able to report this sum and also its max value
+// during the time window
+
+ llong EXTR running_sum run_sum_max extr_running_sum (uint);
+ llong EXTR running_sum run_sum_max extr_running_sum (int);
+ llong EXTR running_sum run_sum_max extr_running_sum (llong);
+ llong EXTR running_sum run_sum_max extr_running_sum (ullong);
+ llong FUN [COST LOW] extr_running_sum(string);
+ llong EXTR running_sum_max run_sum_max extr_running_sum_max (uint);
+ llong EXTR running_sum_max run_sum_max extr_running_sum_max (int);
+ llong EXTR running_sum_max run_sum_max extr_running_sum_max (llong);
+ llong EXTR running_sum_max run_sum_max extr_running_sum_max (ullong);
+ llong FUN [COST LOW] extr_running_sum_max(string);
+ string UDAF [HFTA_ONLY, RUNNING] run_sum_max fstring16 (uint);
+ string UDAF [HFTA_ONLY, RUNNING] run_sum_max fstring16 (int);
+ string UDAF [HFTA_ONLY, RUNNING] run_sum_max fstring16 (ullong);
+ string UDAF [HFTA_ONLY, RUNNING] run_sum_max fstring16 (llong);
+