aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Neporada <neporada@gmail.com>2022-05-12 19:19:29 +0300
committerVitalii Gridnev <gvit@qavm-ff2ff183.qemu>2022-05-12 20:00:35 +0300
commitbd7c734c0fd74d79bce6510d2c636af569e9dfe0 (patch)
treece4cce3448d74b15e455d325f98c4081051b5a2b
parent826c7eacd043881b3e5e60fbbfe7ca861a6bcffd (diff)
downloadydb-bd7c734c0fd74d79bce6510d2c636af569e9dfe0.tar.gz
[YQL-14807] Handle non-optional types with INGNORE NULLS
ref:eb5b7d2501319b8d2137ccd2c100a304a9e214ab
-rw-r--r--ydb/library/yql/mount/lib/yql/window.yql8
1 files changed, 6 insertions, 2 deletions
diff --git a/ydb/library/yql/mount/lib/yql/window.yql b/ydb/library/yql/mount/lib/yql/window.yql
index 371f4c687c8..6a24834e641 100644
--- a/ydb/library/yql/mount/lib/yql/window.yql
+++ b/ydb/library/yql/mount/lib/yql/window.yql
@@ -79,8 +79,12 @@
(let bool_or_traits_factory_opt (lambda '(list_type) (Apply simple_traits_factory list_type (lambda '(one two) (Or one two)))))
(let first_value_traits_factory_opt (lambda '(list_type) (Apply simple_traits_factory list_type (lambda '(one two) two))))
(let last_value_traits_factory_opt (lambda '(list_type) (Apply simple_traits_factory list_type (lambda '(one two) one))))
-(let first_value_ignore_nulls_traits_factory_opt (lambda '(list_type) (Apply simple_traits_factory list_type (lambda '(one two) (IfPresent two (lambda '(value) two) one)))))
-(let last_value_ignore_nulls_traits_factory_opt (lambda '(list_type) (Apply simple_traits_factory list_type (lambda '(one two) (IfPresent one (lambda '(value) one) two)))))
+(let first_value_ignore_nulls_traits_factory_opt (lambda '(list_type) (Apply simple_traits_factory list_type
+ (lambda '(one two) (MatchType (TypeOf two) 'Optional (lambda '() (IfPresent two (lambda '(value) two) one)) (lambda '() two)))
+)))
+(let last_value_ignore_nulls_traits_factory_opt (lambda '(list_type) (Apply simple_traits_factory list_type
+ (lambda '(one two) (MatchType (TypeOf one) 'Optional (lambda '() (IfPresent one (lambda '(value) one) two)) (lambda '() one)))
+)))
(let bool_xor_traits_factory_opt (lambda '(list_type) (Apply easy_traits_factory list_type (lambda '(one two) (Xor one two)) (lambda '(val state) (Xor state val)))))