Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add aggregate count functions with decimal return type #670

Merged
merged 3 commits into from
Aug 1, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions extensions/functions_aggregate_decimal_output.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
%YAML 1.2
---
aggregate_functions:
- name: "count"
description: Count a set of values. Result is returned as a decimal instead of i64.
impls:
- args:
- name: x
value: any
options:
overflow:
values: [SILENT, SATURATE, ERROR]
nullability: DECLARED_OUTPUT
decomposable: MANY
intermediate: decimal<38,0>
return: decimal<38,0>
- name: "count"
description: "Count a set of records (not field referenced). Result is returned as a decimal instead of i64."
impls:
- options:
overflow:
values: [SILENT, SATURATE, ERROR]
nullability: DECLARED_OUTPUT
decomposable: MANY
intermediate: decimal<38,0>
return: decimal<38,0>
- name: "approx_count_distinct"
description: >-
Calculates the approximate number of rows that contain distinct values of the expression argument using
HyperLogLog. This function provides an alternative to the COUNT (DISTINCT expression) function, which
returns the exact number of rows that contain distinct values of an expression. APPROX_COUNT_DISTINCT
processes large amounts of data significantly faster than COUNT, with negligible deviation from the exact
result. Result is returned as a decimal instead of i64.
impls:
- args:
- name: x
value: any
nullability: DECLARED_OUTPUT
decomposable: MANY
intermediate: binary
return: decimal<38,0>
Loading