فهرست منبع

feat: add bytesize rule sql function

Zaiming (Stone) Shi 2 سال پیش
والد
کامیت
ac41f497b4
2فایلهای تغییر یافته به همراه8 افزوده شده و 0 حذف شده
  1. 4 0
      apps/emqx_rule_engine/src/emqx_rule_funcs.erl
  2. 4 0
      apps/emqx_rule_engine/test/emqx_rule_funcs_SUITE.erl

+ 4 - 0
apps/emqx_rule_engine/src/emqx_rule_funcs.erl

@@ -89,6 +89,7 @@
     bitsl/2,
     bitsr/2,
     bitsize/1,
+    bytesize/1,
     subbits/2,
     subbits/3,
     subbits/6
@@ -405,6 +406,9 @@ find_topic_filter(Filter, TopicFilters, Func) ->
 null() ->
     undefined.
 
+bytesize(IoList) ->
+    erlang:iolist_size(IoList).
+
 %%------------------------------------------------------------------------------
 %% Arithmetic Funcs
 %%------------------------------------------------------------------------------

+ 4 - 0
apps/emqx_rule_engine/test/emqx_rule_funcs_SUITE.erl

@@ -759,6 +759,10 @@ t_bitsize(_) ->
     ?assertEqual(8, apply_func(bitsize, [<<"a">>])),
     ?assertEqual(4, apply_func(bitsize, [<<15:4>>])).
 
+t_bytesize(_) ->
+    ?assertEqual(1, apply_func(bytesize, [<<"a">>])),
+    ?assertEqual(0, apply_func(bytesize, [<<>>])).
+
 t_subbits(_) ->
     ?assertEqual(1, apply_func(subbits, [<<255:8>>, 1])),
     ?assertEqual(3, apply_func(subbits, [<<255:8>>, 2])),