@@ -3952,6 +3952,34 @@ TEST_F(QueryBuilderTest, Floor) {
3952
3952
EXPECT_THROW (scan.ref (" col_arr_i32" ).floor (), InvalidQueryError);
3953
3953
}
3954
3954
3955
+ TEST_F (QueryBuilderTest, Pow) {
3956
+ QueryBuilder builder (ctx (), schema_mgr_, configPtr ());
3957
+ auto scan = builder.scan (" test3" );
3958
+ checkFunctionOper (scan.ref (" col_bi" ).pow (2 ), " POWER" , 2 , ctx ().fp64 ());
3959
+ checkFunctionOper (scan.ref (" col_i" ).pow ((int64_t )3 ), " POWER" , 2 , ctx ().fp64 ());
3960
+ checkFunctionOper (scan.ref (" col_f" ).pow (2 .3f ), " POWER" , 2 , ctx ().fp64 ());
3961
+ checkFunctionOper (scan.ref (" col_d" ).pow (2.0 ), " POWER" , 2 , ctx ().fp64 ());
3962
+ checkFunctionOper (scan.ref (" col_dec" ).pow (scan.ref (" col_d" )), " POWER" , 2 , ctx ().fp64 ());
3963
+ checkFunctionOper (scan.ref (" col_d" ).pow (scan.ref (" col_bi" )), " POWER" , 2 , ctx ().fp64 ());
3964
+ checkFunctionOper (scan.ref (" col_d" ).pow (scan.ref (" col_i" )), " POWER" , 2 , ctx ().fp64 ());
3965
+ checkFunctionOper (scan.ref (" col_d" ).pow (scan.ref (" col_f" )), " POWER" , 2 , ctx ().fp64 ());
3966
+ checkFunctionOper (scan.ref (" col_d" ).pow (scan.ref (" col_dec" )), " POWER" , 2 , ctx ().fp64 ());
3967
+ EXPECT_THROW (scan.ref (" col_b" ).pow (2 ), InvalidQueryError);
3968
+ EXPECT_THROW (scan.ref (" col_str" ).pow (2 ), InvalidQueryError);
3969
+ EXPECT_THROW (scan.ref (" col_dict" ).pow (2 ), InvalidQueryError);
3970
+ EXPECT_THROW (scan.ref (" col_date" ).pow (2 ), InvalidQueryError);
3971
+ EXPECT_THROW (scan.ref (" col_time" ).pow (2 ), InvalidQueryError);
3972
+ EXPECT_THROW (scan.ref (" col_timestamp" ).pow (2 ), InvalidQueryError);
3973
+ EXPECT_THROW (scan.ref (" col_arr_i32" ).pow (2 ), InvalidQueryError);
3974
+ EXPECT_THROW (scan.ref (" col_d" ).pow (scan.ref (" col_b" )), InvalidQueryError);
3975
+ EXPECT_THROW (scan.ref (" col_d" ).pow (scan.ref (" col_str" )), InvalidQueryError);
3976
+ EXPECT_THROW (scan.ref (" col_d" ).pow (scan.ref (" col_dict" )), InvalidQueryError);
3977
+ EXPECT_THROW (scan.ref (" col_d" ).pow (scan.ref (" col_date" )), InvalidQueryError);
3978
+ EXPECT_THROW (scan.ref (" col_d" ).pow (scan.ref (" col_time" )), InvalidQueryError);
3979
+ EXPECT_THROW (scan.ref (" col_d" ).pow (scan.ref (" col_timestamp" )), InvalidQueryError);
3980
+ EXPECT_THROW (scan.ref (" col_d" ).pow (scan.ref (" col_arr_i32" )), InvalidQueryError);
3981
+ }
3982
+
3955
3983
TEST_F (QueryBuilderTest, SimpleProjection) {
3956
3984
QueryBuilder builder (ctx (), schema_mgr_, configPtr ());
3957
3985
compare_test1_data (builder.scan (" test1" ).proj ({0 , 1 , 2 , 3 }));
0 commit comments