summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authora-romanov <[email protected]>2023-01-27 18:26:54 +0300
committera-romanov <[email protected]>2023-01-27 18:26:54 +0300
commit9e21b8ae23c8cbb1c19a4012ff9f7ac07bdb6e1b (patch)
treeebc62ae04179e594a3a202ef8ea8b334b8656178
parent83d128c4652ec6fe56b77b93d0b910216f98bf4b (diff)
Replace +/- 1 on Inc/Dec in aggregations.
-rw-r--r--ydb/library/yql/mount/lib/yql/aggregate.yql12
-rw-r--r--ydb/library/yql/mount/lib/yql/window.yql10
2 files changed, 11 insertions, 11 deletions
diff --git a/ydb/library/yql/mount/lib/yql/aggregate.yql b/ydb/library/yql/mount/lib/yql/aggregate.yql
index 4b368d8d3f0..f17b9f55b97 100644
--- a/ydb/library/yql/mount/lib/yql/aggregate.yql
+++ b/ydb/library/yql/mount/lib/yql/aggregate.yql
@@ -79,7 +79,7 @@
'Interval (lambda '() (Apply convert_interval_to_decimal value ))
(lambda '() (Convert value 'Double))
) (Uint64 '1))))
- (let update (lambda '(value state) '((AggrAdd (Nth state '0) (MatchType (TypeOf value)
+ (let update (lambda '(value state) '((AggrAdd (Nth state '0) (MatchType (TypeOf value)
'Decimal (lambda '() (WidenIntegral value))
'Interval (lambda '() (Apply convert_interval_to_decimal value ))
(lambda '() (Convert value 'Double)))
@@ -147,7 +147,7 @@
(Double '0))))
(let update (lambda '(value state) (block '(
(let delta (- (Convert value 'Double) (Nth state '0)))
- (let next_n (AggrAdd (Nth state '1) (Double '1)))
+ (let next_n (Inc (Nth state '1)))
(return '(
(AggrAdd (Nth state '0) (/ delta next_n))
next_n
@@ -166,7 +166,7 @@
)))))
(let finish (lambda '(state) (block '(
(let count (Nth state '1))
- (let result (/ (Nth state '2) (If sample (- count (Double '1)) count)))
+ (let result (/ (Nth state '2) (If sample (Dec count) count)))
(return (If stddev (Apply (Udf 'Math.Sqrt) result) result))))))
(return (AggregationTraits (ListItemType list_type) init update save load merge finish (Null)))
))))
@@ -182,7 +182,7 @@
# doesn't support optional values
(let correlation_traits_factory_raw (lambda '(list_type) (block '(
(let init (lambda '(value) '((Uint64 '1) (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)) (* (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0))) (* (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0))) (* (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0))))))
- (let update (lambda '(value state) '((AggrAdd (Nth state '0) (Uint64 '1)) (AggrAdd (Nth state '1) (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0))) (AggrAdd (Nth state '2) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0))) (AggrAdd (Nth state '3) (* (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)))) (AggrAdd (Nth state '4) (* (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)))) (AggrAdd (Nth state '5) (* (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)))))))
+ (let update (lambda '(value state) '((Inc (Nth state '0)) (AggrAdd (Nth state '1) (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0))) (AggrAdd (Nth state '2) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0))) (AggrAdd (Nth state '3) (* (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)))) (AggrAdd (Nth state '4) (* (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)))) (AggrAdd (Nth state '5) (* (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)))))))
(let save (lambda '(state) state))
(let load (lambda '(state) state))
(let merge (lambda '(one two) '((AggrAdd (Nth one '0) (Nth two '0)) (AggrAdd (Nth one '1) (Nth two '1)) (AggrAdd (Nth one '2) (Nth two '2)) (AggrAdd (Nth one '3) (Nth two '3)) (AggrAdd (Nth one '4) (Nth two '4)) (AggrAdd (Nth one '5) (Nth two '5)))))
@@ -203,13 +203,13 @@
# doesn't support optional values
(let covariance_traits_factory_raw (lambda '(list_type sample) (block '(
(let init (lambda '(value) '((Uint64 '1) (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)) (* (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0))))))
- (let update (lambda '(value state) '((AggrAdd (Nth state '0) (Uint64 '1)) (AggrAdd (Nth state '1) (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0))) (AggrAdd (Nth state '2) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0))) (AggrAdd (Nth state '3) (* (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)))))))
+ (let update (lambda '(value state) '((Inc (Nth state '0)) (AggrAdd (Nth state '1) (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0))) (AggrAdd (Nth state '2) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0))) (AggrAdd (Nth state '3) (* (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)))))))
(let save (lambda '(state) state))
(let load (lambda '(state) state))
(let merge (lambda '(one two) '((AggrAdd (Nth one '0) (Nth two '0)) (AggrAdd (Nth one '1) (Nth two '1)) (AggrAdd (Nth one '2) (Nth two '2)) (AggrAdd (Nth one '3) (Nth two '3)))))
(let finish (lambda '(state) (block '(
(let covariance_result (- (Nth state '3) (/ (* (Nth state '1) (Nth state '2)) (Nth state '0))))
- (let covariance_result (/ covariance_result (If sample (- (Nth state '0) (Uint64 '1)) (Nth state '0))))
+ (let covariance_result (/ covariance_result (If sample (Dec (Nth state '0)) (Nth state '0))))
(return covariance_result)
))))
(return (AggregationTraits (ListItemType list_type) init update save load merge finish (Null)))
diff --git a/ydb/library/yql/mount/lib/yql/window.yql b/ydb/library/yql/mount/lib/yql/window.yql
index b75031f5bf3..fad01f0f218 100644
--- a/ydb/library/yql/mount/lib/yql/window.yql
+++ b/ydb/library/yql/mount/lib/yql/window.yql
@@ -156,7 +156,7 @@
(Double '0))))
(let update (lambda '(value state) (block '(
(let delta (- (Convert value 'Double) (Nth state '0)))
- (let next_n (AggrAdd (Nth state '1) (Double '1)))
+ (let next_n (Inc (Nth state '1)))
(return '(
(AggrAdd (Nth state '0) (/ delta next_n))
next_n
@@ -165,7 +165,7 @@
(let shift (lambda '(value state) (Void)))
(let current (lambda '(state) (block '(
(let count (Nth state '1))
- (let result (/ (Nth state '2) (If sample (- count (Double '1)) count)))
+ (let result (/ (Nth state '2) (If sample (Dec count) count)))
(return (If stddev (Apply (Udf 'Math.Sqrt) result) result))))))
(return (WindowTraits (ListItemType list_type) init update shift current (Null)))
))))
@@ -182,7 +182,7 @@
# doesn't support optional values
(let correlation_traits_factory_raw (lambda '(list_type) (block '(
(let init (lambda '(value) '((Uint64 '1) (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)) (* (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0))) (* (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0))) (* (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0))))))
- (let update (lambda '(value state) '((AggrAdd (Nth state '0) (Uint64 '1)) (AggrAdd (Nth state '1) (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0))) (AggrAdd (Nth state '2) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0))) (AggrAdd (Nth state '3) (* (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)))) (AggrAdd (Nth state '4) (* (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)))) (AggrAdd (Nth state '5) (* (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)))))))
+ (let update (lambda '(value state) '((Inc (Nth state '0)) (AggrAdd (Nth state '1) (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0))) (AggrAdd (Nth state '2) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0))) (AggrAdd (Nth state '3) (* (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)))) (AggrAdd (Nth state '4) (* (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)))) (AggrAdd (Nth state '5) (* (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)))))))
(let shift (lambda '(value state) (Void)))
(let current (lambda '(state) (block '(
# Math comes from ISO9075-2:2011(E) and differs from what Excel uses
@@ -201,11 +201,11 @@
# doesn't support optional values
(let covariance_traits_factory_raw (lambda '(list_type sample) (block '(
(let init (lambda '(value) '((Uint64 '1) (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)) (* (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0))))))
- (let update (lambda '(value state) '((AggrAdd (Nth state '0) (Uint64 '1)) (AggrAdd (Nth state '1) (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0))) (AggrAdd (Nth state '2) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0))) (AggrAdd (Nth state '3) (* (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)))))))
+ (let update (lambda '(value state) '((Inc (Nth state '0)) (AggrAdd (Nth state '1) (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0))) (AggrAdd (Nth state '2) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0))) (AggrAdd (Nth state '3) (* (Coalesce (Convert (Nth value '0) 'Double) (Double '0.0)) (Coalesce (Convert (Nth value '1) 'Double) (Double '0.0)))))))
(let shift (lambda '(value state) (Void)))
(let current (lambda '(state) (block '(
(let covariance_result (- (Nth state '3) (/ (* (Nth state '1) (Nth state '2)) (Nth state '0))))
- (let covariance_result (/ covariance_result (If sample (- (Nth state '0) (Uint64 '1)) (Nth state '0))))
+ (let covariance_result (/ covariance_result (If sample (Dec (Nth state '0)) (Nth state '0))))
(return covariance_result)
))))
(return (WindowTraits (ListItemType list_type) init update shift current (Null)))