This is an automated email from the ASF dual-hosted git repository.
alsay pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datasketches-bigquery.git
The following commit(s) were added to refs/heads/main by this push:
new eea1e90 use struct to pass parameters
eea1e90 is described below
commit eea1e9060ee482a6fdc1ecdf36cf6b5b80a4b7d7
Author: AlexanderSaydakov <[email protected]>
AuthorDate: Fri Jul 19 16:55:18 2024 -0700
use struct to pass parameters
---
theta_sketch_agg_string.sql | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/theta_sketch_agg_string.sql b/theta_sketch_agg_string.sql
index e1ebec0..b0f51cf 100644
--- a/theta_sketch_agg_string.sql
+++ b/theta_sketch_agg_string.sql
@@ -15,11 +15,11 @@
# specific language governing permissions and limitations
# under the License.
-CREATE OR REPLACE AGGREGATE FUNCTION
`$BQ_PROJECT.$BQ_DATASET`.theta_sketch_agg_string(str STRING, seed INT64 NOT
AGGREGATE) RETURNS BYTES LANGUAGE js
+CREATE OR REPLACE AGGREGATE FUNCTION
`$BQ_PROJECT.$BQ_DATASET`.theta_sketch_agg_string(str STRING, params
STRUCT<lg_k INT, seed INT64> NOT AGGREGATE) RETURNS BYTES LANGUAGE js
OPTIONS (library=["$GCS_BUCKET/theta_sketch.mjs"]) 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);
function destroyState(state) {
@@ -37,13 +37,12 @@ function destroyState(state) {
// UDAF interface
export function initialState(seed) {
var state = {
- lg_k: default_lg_k,
- seed: seed == null ? default_seed : seed,
+ lg_k: params.lg_k == null ? default_lg_k : Number(params.lg_k),
+ seed: params.seed == null ? default_seed : BigInt(params.seed),
sketch: null,
union: null,
serialized: null
};
- if (state.seed == null) state.seed = default_seed;
state.sketch = new Module.update_theta_sketch(state.lg_k, state.seed);
return state;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]