Add hfta-only FIRST udaf
[com/gs-lite.git] / include / hfta / hfta_udaf.h
index d97e0dd..483e4e6 100644 (file)
@@ -75,6 +75,25 @@ void avg_udaf_hfta_HFTA_AGGR_DESTROY_(gs_sp_t b);
 gs_float_t extr_avg_fcn(vstring *v);
 
 //      first aggregate
+// hfta only
+void FIRST_HFTA_AGGR_INIT_(gs_uint32_t* scratch);
+void FIRST_HFTA_AGGR_REINIT_(gs_uint32_t* scratch);
+void FIRST_HFTA_AGGR_UPDATE_(gs_uint32_t* scratch, gs_uint32_t val);
+void FIRST_HFTA_AGGR_OUTPUT_(gs_uint32_t* res, gs_uint32_t* scratch);
+void FIRST_HFTA_AGGR_DESTROY_(gs_uint32_t* scratch);
+
+void FIRST_ULL_HFTA_AGGR_INIT_(gs_uint64_t* scratch);
+void FIRST_ULL_HFTA_AGGR_REINIT_(gs_uint64_t* scratch);
+void FIRST_ULL_HFTA_AGGR_UPDATE_(gs_uint64_t* scratch, gs_uint64_t val);
+void FIRST_ULL_HFTA_AGGR_OUTPUT_(gs_uint64_t* res, gs_uint64_t* scratch);
+void FIRST_ULL_HFTA_AGGR_DESTROY_(gs_uint64_t* scratch);
+
+void FIRST_STR_HFTA_AGGR_INIT_(vstring* scratch);
+void FIRST_STR_HFTA_AGGR_REINIT_(vstring* scratch);
+void FIRST_STR_HFTA_AGGR_UPDATE_(vstring* scratch, vstring* val);
+void FIRST_STR_HFTA_AGGR_OUTPUT_(vstring* res, vstring* scratch);
+void FIRST_STR_HFTA_AGGR_DESTROY_(vstring* scratch);
+// hfts-lfta split
 void FIRST_hfta_HFTA_AGGR_INIT_(gs_uint32_t* scratch);
 void FIRST_hfta_HFTA_AGGR_REINIT_(gs_uint32_t* scratch);
 void FIRST_hfta_HFTA_AGGR_UPDATE_(gs_uint32_t* scratch, gs_uint32_t val);
@@ -94,6 +113,26 @@ void FIRST_STR_hfta_HFTA_AGGR_OUTPUT_(vstring* res, vstring* scratch);
 void FIRST_STR_hfta_HFTA_AGGR_DESTROY_(vstring* scratch);
 
 //      last aggregate
+//  hfta only
+void LAST_HFTA_AGGR_INIT_(gs_uint32_t* scratch);
+void LAST_HFTA_AGGR_REINIT_(gs_uint32_t* scratch);
+void LAST_HFTA_AGGR_UPDATE_(gs_uint32_t* scratch, gs_uint32_t val);
+void LAST_HFTA_AGGR_OUTPUT_(gs_uint32_t* res, gs_uint32_t* scratch);
+void LAST_HFTA_AGGR_DESTROY_(gs_uint32_t* scratch);
+
+void LAST_ULL_HFTA_AGGR_INIT_(gs_uint64_t* scratch);
+void LAST_ULL_HFTA_AGGR_REINIT_(gs_uint64_t* scratch);
+void LAST_ULL_HFTA_AGGR_UPDATE_(gs_uint64_t* scratch, gs_uint64_t val);
+void LAST_ULL_HFTA_AGGR_OUTPUT_(gs_uint64_t* res, gs_uint64_t* scratch);
+void LAST_ULL_HFTA_AGGR_DESTROY_(gs_uint64_t* scratch);
+
+void LAST_STR_HFTA_AGGR_INIT_(vstring* scratch);
+void LAST_STR_HFTA_AGGR_REINIT_(vstring* scratch);
+void LAST_STR_HFTA_AGGR_UPDATE_(vstring* scratch, vstring* val);
+void LAST_STR_HFTA_AGGR_OUTPUT_(vstring* res, vstring* scratch);
+void LAST_STR_HFTA_AGGR_DESTROY_(vstring* scratch);
+
+// hfta/lfta split
 void LAST_hfta_HFTA_AGGR_INIT_(gs_uint32_t* scratch);
 void LAST_hfta_HFTA_AGGR_REINIT_(gs_uint32_t* scratch);
 void LAST_hfta_HFTA_AGGR_UPDATE_(gs_uint32_t* scratch, gs_uint32_t val);