From dd6afd447a6a6c2319a9a42b54edcc2469d5c5e9 Mon Sep 17 00:00:00 2001 From: shenglian zhou Date: Fri, 15 Oct 2021 17:08:42 +0800 Subject: [PATCH] enhance nested query for pow/log scalar function --- tests/script/general/parser/scalar_pow.sim | 79 ++++++++++++++++++++-- 1 file changed, 73 insertions(+), 6 deletions(-) diff --git a/tests/script/general/parser/scalar_pow.sim b/tests/script/general/parser/scalar_pow.sim index 1588d7061a..6fd1bfbe15 100644 --- a/tests/script/general/parser/scalar_pow.sim +++ b/tests/script/general/parser/scalar_pow.sim @@ -153,6 +153,7 @@ endi sql select c1, log(c2, 2), pow(c1,2), pow(c2,2)+2, pow(c2,3)+log(c3, 2)+pow(c5,2) as v4, pow(c4, 4.5)+pow(c3, 2), log(c1,2)+log(c3,4)+pow(c6,2.8)+2 as v6 from $stb order by ts desc print ===> $data00 , $data01 , $data02 , $data03 , $data04 , $data05 + if $data00 != 49 then return -1 endi @@ -162,13 +163,13 @@ endi if $data02 != 2401.000000000 then return -1 endi -if $data03 != 2401.000000000 then +if $data03 != 2403.000000000 then return -1 endi -if $data04 != 117649.000000000 then +if $data04 != 120055.614709844 then return -1 endi -if $data05 != 5.614709844 then +if $data05 != 40356008.000000000 then return -1 endi @@ -252,7 +253,7 @@ sql_error select pow(c2,2) from $stb slimit 2; sql_error select pow(c2,2) from $stb interval(1m) slimit 2; print ===============> step 4 nested query - +print ===============> step 4.1 select expr... from (select * from super_tb order by ts desc) sql select c1, log(c2, 2), pow(c1,2), pow(c2,2)+2, pow(c2,3)+log(c3, 2)+pow(c5,2) as v4, pow(c4, 4.5)+pow(c3, 2), log(c1,2)+log(c3,4)+pow(c6,2.8)+2 as v6 from (select * from $stb order by ts desc) print ===> $data00 , $data01 , $data02 , $data03 , $data04 , $data05 @@ -268,13 +269,15 @@ endi if $data03 != 2403.000000000 then return -1 endi -if $data04 != 117649.000000000 then +if $data04 != 120055.614709844 then return -1 endi -if $data05 != 5.614709844 then +if $data05 != 40356008.000000000 then return -1 endi +print ==============> step 4.2 select expr... from (select * from child_tb order by ts); + sql select c1, log(c2, 2), pow(c1,2), pow(c2,2)+2, pow(c2,3)+log(c3, 2)+pow(c5,2) as v4, pow(c4, 4.5)+pow(c3, 2), log(c1,2)+log(c3,4)+pow(c6,2.8)+2 as v6 from (select * from $tb order by ts limit 2); print ===> $data00 , $data01 , $data02 , $data03 , $data04 , $data05 print ===> $data10 , $data11 , $data12 , $data13 , $data14 , $data15 @@ -315,6 +318,70 @@ if $data15 != 2.000000000 then return -1 endi +print ====> step 4.3 select exprs... from (select * from super_tb ) order by ts desc; +sql select c1, log(c2, 2), pow(c1,2), pow(c2,2)+2, pow(c2,3)+log(c3, 2)+pow(c5,2) as v4, pow(c4, 4.5)+pow(c3, 2), log(c1,2)+log(c3,4)+pow(c6,2.8)+2 as v6 from (select * from $stb ) order by ts desc + +print ===> $data00 , $data01 , $data02 , $data03 , $data04 , $data05 +if $data00 != 49 then + return -1 +endi +if $data01 != 5.614709844 then + return -1 +endi +if $data02 != 2401.000000000 then + return -1 +endi +if $data03 != 2403.000000000 then + return -1 +endi +if $data04 != 120055.614709844 then + return -1 +endi +if $data05 != 40356008.000000000 then + return -1 +endi + +print ====> step 4.4 select exprs... from (select * from child_tb) order by ts limit 2; + +sql select c1, log(c2, 2), pow(c1,2), pow(c2,2)+2, pow(c2,3)+log(c3, 2)+pow(c5,2) as v4, pow(c4, 4.5)+pow(c3, 2), log(c1,2)+log(c3,4)+pow(c6,2.8)+2 as v6 from (select * from $tb ) order by ts limit 2; +print ===> $data00 , $data01 , $data02 , $data03 , $data04 , $data05 +print ===> $data10 , $data11 , $data12 , $data13 , $data14 , $data15 +if $data00 != 0 then + return -1 +endi +if $data01 != -2.000000000 then + return -1 +endi +if $data02 != 0.000000000 then + return -1 +endi +if $data03 != 2.062500000 then + return -1 +endi +if $data04 != -inf then + return -1 +endi +if $data05 != 0.000000000 then + return -1 +endi +if $data10 != 1 then + return -1 +endi +if $data11 != 0.000000000 then + return -1 +endi +if $data12 != 1.000000000 then + return -1 +endi +if $data13 != 3.000000000 then + return -1 +endi +if $data14 != 2.000000000 then + return -1 +endi +if $data15 != 2.000000000 then + return -1 +endi #print =============== clear -- GitLab