This is an automated email from the ASF dual-hosted git repository.

alsay pushed a commit to branch use_struct
in repository https://gitbox.apache.org/repos/asf/datasketches-bigquery.git

commit e2a9f64ca53fdff6d39207d3fd15b10ed1973595
Author: AlexanderSaydakov <[email protected]>
AuthorDate: Mon Aug 12 12:11:55 2024 -0700

    use struct to pass two params
---
 theta_sketch_agg_union.sqlx | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/theta_sketch_agg_union.sqlx b/theta_sketch_agg_union.sqlx
index 01bdfc6..6529193 100644
--- a/theta_sketch_agg_union.sqlx
+++ b/theta_sketch_agg_union.sqlx
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-CREATE OR REPLACE AGGREGATE FUNCTION 
`$BQ_PROJECT.$BQ_DATASET`.theta_sketch_agg_union(sketch BYTES, lg_k INT64 NOT 
AGGREGATE)
+CREATE OR REPLACE AGGREGATE FUNCTION 
`$BQ_PROJECT.$BQ_DATASET`.theta_sketch_agg_union(sketch BYTES, params 
STRUCT<lg_k INT, seed INT64> NOT AGGREGATE)
 RETURNS BYTES
 LANGUAGE js
 OPTIONS (
@@ -29,7 +29,7 @@ For more details: 
https://datasketches.apache.org/docs/Theta/ThetaSketchFramewor
 ) AS R"""
 import ModuleFactory from "$GCS_BUCKET/theta_sketch.mjs";
 var Module = await ModuleFactory();
-const default_lg_k = 12;
+const default_lg_k = Number(12);
 const default_seed = BigInt(9001);
 
 var buffer = {ptr: 0, size: 0};
@@ -62,14 +62,15 @@ function ensureUnion(state) {
   }
 }
 
-export function initialState(lg_k) {
-  return {
-    lg_k: lg_k == null ? Number(default_lg_k) : Number(lg_k),
-    seed: default_seed,
+export function initialState(params) {
+  var state = {
+    lg_k: params.lg_k == null ? default_lg_k : Number(params.lg_k),
+    seed: params.seed == null ? default_seed : BigInt(params.seed),
     union: null,
     serialized: null
   };
   
reserveBuffer(Module.compact_theta_sketch.getMaxSerializedSizeBytes(state.lg_k));
+  return state;
 }
 
 export function aggregate(state, sketch) {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to