Rename JMS to (AMQP) SQL

This commit is contained in:
David Ansari 2025-07-03 09:04:37 +02:00
parent c34d6206f1
commit dbc6321808
10 changed files with 156 additions and 159 deletions

View File

@ -258,7 +258,7 @@ define ct_master.erl
endef
PARALLEL_CT_SET_1_A = unit_rabbit_ssl unit_cluster_formation_locking_mocks unit_cluster_formation_sort_nodes unit_collections unit_config_value_encryption unit_connection_tracking
PARALLEL_CT_SET_1_B = amqp_address amqp_auth amqp_credit_api_v2 amqp_filter_prop amqp_filter_sql amqp_jms_unit amqp_dotnet amqp_jms signal_handling single_active_consumer unit_access_control_authn_authz_context_propagation unit_access_control_credential_validation unit_amqp091_content_framing unit_amqp091_server_properties unit_app_management
PARALLEL_CT_SET_1_B = amqp_address amqp_auth amqp_credit_api_v2 amqp_filter_prop amqp_filter_sql amqp_filter_sql_unit amqp_dotnet amqp_jms signal_handling single_active_consumer unit_access_control_authn_authz_context_propagation unit_access_control_credential_validation unit_amqp091_content_framing unit_amqp091_server_properties unit_app_management
PARALLEL_CT_SET_1_C = amqp_proxy_protocol amqpl_consumer_ack amqpl_direct_reply_to backing_queue bindings rabbit_db_maintenance rabbit_db_msup rabbit_db_policy rabbit_db_queue rabbit_db_topic_exchange rabbit_direct_reply_to_prop cluster_limit cluster_minority term_to_binary_compat_prop topic_permission transactions unicode unit_access_control
PARALLEL_CT_SET_1_D = amqqueue_backward_compatibility channel_interceptor channel_operation_timeout classic_queue classic_queue_prop config_schema peer_discovery_dns peer_discovery_tmp_hidden_node per_node_limit per_user_connection_channel_limit

View File

@ -10,7 +10,7 @@
-type expression() :: undefined |
{property, rabbit_amqp_filter_prop:parsed_expressions()} |
{jms, rabbit_amqp_filter_jms:parsed_expression()}.
{sql, rabbit_amqp_filter_sql:parsed_expression()}.
-export_type([expression/0]).
@ -20,5 +20,5 @@ eval(undefined, _Mc) ->
true;
eval({property, Expr}, Mc) ->
rabbit_amqp_filter_prop:eval(Expr, Mc);
eval({jms, Expr}, Mc) ->
rabbit_amqp_filter_jms:eval(Expr, Mc).
eval({sql, Expr}, Mc) ->
rabbit_amqp_filter_sql:eval(Expr, Mc).

View File

@ -4,13 +4,13 @@
%%
%% Copyright (c) 2007-2025 Broadcom. All Rights Reserved. The term Broadcom refers to Broadcom Inc. and/or its subsidiaries. All rights reserved.
-module(rabbit_amqp_filter_jms).
-module(rabbit_amqp_filter_sql).
-feature(maybe_expr, enable).
-include_lib("amqp10_common/include/amqp10_filter.hrl").
-type parsed_expression() :: {ApplicationProperties :: boolean(),
rabbit_jms_ast:ast()}.
rabbit_amqp_sql_ast:ast()}.
-export_type([parsed_expression/0]).
@ -21,27 +21,26 @@
-define(MAX_EXPRESSION_LENGTH, 4096).
-define(MAX_TOKENS, 200).
%% defined in both AMQP and JMS
-define(DEFAULT_MSG_PRIORITY, 4).
-define(IS_CONTROL_CHAR(C), C < 32 orelse C =:= 127).
-spec parse(tuple()) ->
{ok, parsed_expression()} | error.
parse({described, Descriptor, {utf8, JmsSelector}}) ->
parse({described, Descriptor, {utf8, SQL}}) ->
maybe
ok ?= check_descriptor(Descriptor),
{ok, String} ?= jms_selector_to_list(JmsSelector),
{ok, String} ?= sql_to_list(SQL),
ok ?= check_length(String),
{ok, Tokens} ?= tokenize(String, JmsSelector),
ok ?= check_token_count(Tokens, JmsSelector),
{ok, Ast0} ?= parse(Tokens, JmsSelector),
{ok, Ast} ?= transform_ast(Ast0, JmsSelector),
{ok, Tokens} ?= tokenize(String, SQL),
ok ?= check_token_count(Tokens, SQL),
{ok, Ast0} ?= parse(Tokens, SQL),
{ok, Ast} ?= transform_ast(Ast0, SQL),
AppProps = has_binary_identifier(Ast),
{ok, {AppProps, Ast}}
end.
%% Evaluates a parsed JMS message selector expression.
%% Evaluates a parsed SQL expression.
-spec eval(parsed_expression(), mc:state()) -> boolean().
eval({ApplicationProperties, Ast}, Msg) ->
State = case ApplicationProperties of
@ -298,54 +297,54 @@ check_descriptor({ulong, ?DESCRIPTOR_CODE_SQL_FILTER}) ->
check_descriptor(_) ->
error.
jms_selector_to_list(JmsSelector) ->
case unicode:characters_to_list(JmsSelector) of
sql_to_list(SQL) ->
case unicode:characters_to_list(SQL) of
String when is_list(String) ->
{ok, String};
Error ->
rabbit_log:warning("JMS message selector ~p is not UTF-8 encoded: ~p",
[JmsSelector, Error]),
rabbit_log:warning("SQL expression ~p is not UTF-8 encoded: ~p",
[SQL, Error]),
error
end.
check_length(String)
when length(String) > ?MAX_EXPRESSION_LENGTH ->
rabbit_log:warning("JMS message selector length ~b exceeds maximum length ~b",
rabbit_log:warning("SQL expression length ~b exceeds maximum length ~b",
[length(String), ?MAX_EXPRESSION_LENGTH]),
error;
check_length(_) ->
ok.
tokenize(String, JmsSelector) ->
case rabbit_jms_selector_lexer:string(String) of
tokenize(String, SQL) ->
case rabbit_amqp_sql_lexer:string(String) of
{ok, Tokens, _EndLocation} ->
{ok, Tokens};
{error, {_Line, _Mod, ErrDescriptor}, _Location} ->
rabbit_log:warning("failed to scan JMS message selector '~ts': ~tp",
[JmsSelector, ErrDescriptor]),
rabbit_log:warning("failed to scan SQL expression '~ts': ~tp",
[SQL, ErrDescriptor]),
error
end.
check_token_count(Tokens, JmsSelector)
check_token_count(Tokens, SQL)
when length(Tokens) > ?MAX_TOKENS ->
rabbit_log:warning("JMS message selector '~ts' with ~b tokens exceeds token limit ~b",
[JmsSelector, length(Tokens), ?MAX_TOKENS]),
rabbit_log:warning("SQL expression '~ts' with ~b tokens exceeds token limit ~b",
[SQL, length(Tokens), ?MAX_TOKENS]),
error;
check_token_count(_, _) ->
ok.
parse(Tokens, JmsSelector) ->
case rabbit_jms_selector_parser:parse(Tokens) of
parse(Tokens, SQL) ->
case rabbit_amqp_sql_parser:parse(Tokens) of
{error, Reason} ->
rabbit_log:warning("failed to parse JMS message selector '~ts': ~p",
[JmsSelector, Reason]),
rabbit_log:warning("failed to parse SQL expression '~ts': ~p",
[SQL, Reason]),
error;
Ok ->
Ok
end.
transform_ast(Ast0, JmsSelector) ->
try rabbit_jms_ast:map(
transform_ast(Ast0, SQL) ->
try rabbit_amqp_sql_ast:map(
fun({identifier, Ident})
when is_binary(Ident) ->
{identifier, rabbit_amqp_util:section_field_name_to_atom(Ident)};
@ -358,18 +357,18 @@ transform_ast(Ast0, JmsSelector) ->
{ok, Ast}
catch {unsupported_field, Name} ->
rabbit_log:warning(
"identifier ~ts in JMS message selector ~tp is unsupported",
[Name, JmsSelector]),
"identifier ~ts in SQL expression ~tp is unsupported",
[Name, SQL]),
error;
{invalid_pattern, Reason} ->
rabbit_log:warning(
"failed to parse LIKE pattern for JMS message selector ~tp: ~tp",
[JmsSelector, Reason]),
"failed to parse LIKE pattern for SQL expression ~tp: ~tp",
[SQL, Reason]),
error
end.
has_binary_identifier(Ast) ->
rabbit_jms_ast:search(fun({identifier, Val}) ->
rabbit_amqp_sql_ast:search(fun({identifier, Val}) ->
is_binary(Val);
(_Node) ->
false
@ -390,7 +389,7 @@ transform_pattern(Pattern, Escape) ->
{single_percent, Chars, PercentPos} ->
single_percent(Chars, PercentPos);
regex ->
Re = jms_pattern_to_regex(Pattern, Escape, []),
Re = pattern_to_regex(Pattern, Escape, []),
case re:compile("^" ++ Re ++ "$", [unicode]) of
{ok, CompiledRe} ->
CompiledRe;
@ -441,23 +440,23 @@ single_percent(Chars, Pos) ->
{{prefix, byte_size(PrefixBin), PrefixBin},
{suffix, byte_size(SuffixBin), SuffixBin}}.
jms_pattern_to_regex([], _Escape, Acc) ->
pattern_to_regex([], _Escape, Acc) ->
lists:reverse(Acc);
jms_pattern_to_regex([EscapeChar | Rest], EscapeChar, Acc) ->
pattern_to_regex([EscapeChar | Rest], EscapeChar, Acc) ->
case Rest of
[] ->
throw({invalid_pattern, invalid_escape_at_end});
[NextChar | Rest1] ->
jms_pattern_to_regex(Rest1, EscapeChar, escape_regex_char(NextChar) ++ Acc)
pattern_to_regex(Rest1, EscapeChar, escape_regex_char(NextChar) ++ Acc)
end;
jms_pattern_to_regex([$% | Rest], Escape, Acc) ->
pattern_to_regex([$% | Rest], Escape, Acc) ->
%% % matches any sequence of characters (0 or more)
jms_pattern_to_regex(Rest, Escape, [$*, $. | Acc]);
jms_pattern_to_regex([$_ | Rest], Escape, Acc) ->
pattern_to_regex(Rest, Escape, [$*, $. | Acc]);
pattern_to_regex([$_ | Rest], Escape, Acc) ->
%% _ matches exactly one character
jms_pattern_to_regex(Rest, Escape, [$. | Acc]);
jms_pattern_to_regex([Char | Rest], Escape, Acc) ->
jms_pattern_to_regex(Rest, Escape, escape_regex_char(Char) ++ Acc).
pattern_to_regex(Rest, Escape, [$. | Acc]);
pattern_to_regex([Char | Rest], Escape, Acc) ->
pattern_to_regex(Rest, Escape, escape_regex_char(Char) ++ Acc).
%% Escape user provided characters that have special meaning in Erlang regex.
escape_regex_char(Char0) ->

View File

@ -3254,14 +3254,14 @@ parse_filters(Filter = {{symbol, ?FILTER_NAME_SQL}, Value},
Acc = {EffectiveFilters, ConsumerFilter, ConsumerArgs}) ->
case ConsumerFilter of
undefined ->
case rabbit_amqp_filter_jms:parse(Value) of
case rabbit_amqp_filter_sql:parse(Value) of
{ok, ParsedSql} ->
{[Filter | EffectiveFilters], {jms, ParsedSql}, ConsumerArgs};
{[Filter | EffectiveFilters], {sql, ParsedSql}, ConsumerArgs};
error ->
Acc
end;
_ ->
%% SQL filter expression is mutually exclusive with AMQP property filter expression.
%% SQL and property filter expressions are mutually exclusive.
Acc
end;
parse_filters(Filter = {{symbol, _Key}, Value},
@ -3284,9 +3284,8 @@ parse_filters(Filter = {{symbol, _Key}, Value},
{property, [ParsedExpression | ParsedExpressions]},
ConsumerArgs}
end;
{jms, _} ->
%% SQL filter expression is mutually exclusive with
%% AMQP property filter expressions.
{sql, _} ->
%% SQL and property filter expressions are mutually exclusive.
Acc
end;
error ->

View File

@ -5,8 +5,8 @@
%% Copyright (c) 2007-2025 Broadcom. All Rights Reserved. The term Broadcom refers to Broadcom Inc. and/or its subsidiaries. All rights reserved.
%% Helper functions operating on the Abstract Syntax Tree (AST)
%% as returned by rabbit_jms_selector_parser:parse/1
-module(rabbit_jms_ast).
%% as returned by rabbit_amqp_sql_parser:parse/1
-module(rabbit_amqp_sql_ast).
-export([search/2,
map/2]).
@ -94,8 +94,8 @@ has_binary_identifier_test() ->
ok.
has_binary_identifier(Selector) ->
{ok, Tokens, _EndLocation} = rabbit_jms_selector_lexer:string(Selector),
{ok, Ast0} = rabbit_jms_selector_parser:parse(Tokens),
{ok, Tokens, _EndLocation} = rabbit_amqp_sql_lexer:string(Selector),
{ok, Ast0} = rabbit_amqp_sql_parser:parse(Tokens),
Ast = map(fun({identifier, Ident}) when is_binary(Ident) ->
{identifier, rabbit_amqp_util:section_field_name_to_atom(Ident)};
(Node) ->

View File

@ -39,13 +39,13 @@
%% property of the creator of the scanner and is not covered by that
%% Copyright.
-module(rabbit_jms_selector_lexer).
-module(rabbit_amqp_sql_lexer).
-export([string/1,string/2,token/2,token/3,tokens/2,tokens/3]).
-export([format_error/1]).
%% User code. This is placed here to allow extra attributes.
-file("rabbit_jms_selector_lexer.xrl", 70).
-file("rabbit_amqp_sql_lexer.xrl", 70).
%% "Approximate literals use the Java floating-point literal syntax."
to_float([$. | _] = Chars) ->
@ -436,7 +436,7 @@ tab_size() -> 8.
%% return signal either an unrecognised character or end of current
%% input.
-file("rabbit_jms_selector_lexer.erl", 404).
-file("rabbit_amqp_sql_lexer.erl", 404).
yystate() -> 66.
yystate(69, [101|Ics], Line, Col, Tlen, _, _) ->
@ -1693,157 +1693,157 @@ yyaction(30, TokenLen, YYtcs, _, _) ->
yyaction(_, _, _, _, _) -> error.
-compile({inline,yyaction_0/0}).
-file("rabbit_jms_selector_lexer.xrl", 20).
-file("rabbit_amqp_sql_lexer.xrl", 20).
yyaction_0() ->
skip_token .
-compile({inline,yyaction_1/1}).
-file("rabbit_jms_selector_lexer.xrl", 23).
-file("rabbit_amqp_sql_lexer.xrl", 23).
yyaction_1(TokenLine) ->
{ token, { 'AND', TokenLine } } .
-compile({inline,yyaction_2/1}).
-file("rabbit_jms_selector_lexer.xrl", 24).
-file("rabbit_amqp_sql_lexer.xrl", 24).
yyaction_2(TokenLine) ->
{ token, { 'OR', TokenLine } } .
-compile({inline,yyaction_3/1}).
-file("rabbit_jms_selector_lexer.xrl", 25).
-file("rabbit_amqp_sql_lexer.xrl", 25).
yyaction_3(TokenLine) ->
{ token, { 'NOT', TokenLine } } .
-compile({inline,yyaction_4/1}).
-file("rabbit_jms_selector_lexer.xrl", 28).
-file("rabbit_amqp_sql_lexer.xrl", 28).
yyaction_4(TokenLine) ->
{ token, { 'BETWEEN', TokenLine } } .
-compile({inline,yyaction_5/1}).
-file("rabbit_jms_selector_lexer.xrl", 29).
-file("rabbit_amqp_sql_lexer.xrl", 29).
yyaction_5(TokenLine) ->
{ token, { 'LIKE', TokenLine } } .
-compile({inline,yyaction_6/1}).
-file("rabbit_jms_selector_lexer.xrl", 30).
-file("rabbit_amqp_sql_lexer.xrl", 30).
yyaction_6(TokenLine) ->
{ token, { 'IN', TokenLine } } .
-compile({inline,yyaction_7/1}).
-file("rabbit_jms_selector_lexer.xrl", 31).
-file("rabbit_amqp_sql_lexer.xrl", 31).
yyaction_7(TokenLine) ->
{ token, { 'IS', TokenLine } } .
-compile({inline,yyaction_8/1}).
-file("rabbit_jms_selector_lexer.xrl", 32).
-file("rabbit_amqp_sql_lexer.xrl", 32).
yyaction_8(TokenLine) ->
{ token, { 'NULL', TokenLine } } .
-compile({inline,yyaction_9/1}).
-file("rabbit_jms_selector_lexer.xrl", 33).
-file("rabbit_amqp_sql_lexer.xrl", 33).
yyaction_9(TokenLine) ->
{ token, { 'ESCAPE', TokenLine } } .
-compile({inline,yyaction_10/1}).
-file("rabbit_jms_selector_lexer.xrl", 36).
-file("rabbit_amqp_sql_lexer.xrl", 36).
yyaction_10(TokenLine) ->
{ token, { boolean, TokenLine, true } } .
-compile({inline,yyaction_11/1}).
-file("rabbit_jms_selector_lexer.xrl", 37).
-file("rabbit_amqp_sql_lexer.xrl", 37).
yyaction_11(TokenLine) ->
{ token, { boolean, TokenLine, false } } .
-compile({inline,yyaction_12/1}).
-file("rabbit_jms_selector_lexer.xrl", 40).
-file("rabbit_amqp_sql_lexer.xrl", 40).
yyaction_12(TokenLine) ->
{ token, { '=', TokenLine } } .
-compile({inline,yyaction_13/1}).
-file("rabbit_jms_selector_lexer.xrl", 41).
-file("rabbit_amqp_sql_lexer.xrl", 41).
yyaction_13(TokenLine) ->
{ token, { '<>', TokenLine } } .
-compile({inline,yyaction_14/1}).
-file("rabbit_jms_selector_lexer.xrl", 42).
-file("rabbit_amqp_sql_lexer.xrl", 42).
yyaction_14(TokenLine) ->
{ token, { '>=', TokenLine } } .
-compile({inline,yyaction_15/1}).
-file("rabbit_jms_selector_lexer.xrl", 43).
-file("rabbit_amqp_sql_lexer.xrl", 43).
yyaction_15(TokenLine) ->
{ token, { '<=', TokenLine } } .
-compile({inline,yyaction_16/1}).
-file("rabbit_jms_selector_lexer.xrl", 44).
-file("rabbit_amqp_sql_lexer.xrl", 44).
yyaction_16(TokenLine) ->
{ token, { '>', TokenLine } } .
-compile({inline,yyaction_17/1}).
-file("rabbit_jms_selector_lexer.xrl", 45).
-file("rabbit_amqp_sql_lexer.xrl", 45).
yyaction_17(TokenLine) ->
{ token, { '<', TokenLine } } .
-compile({inline,yyaction_18/1}).
-file("rabbit_jms_selector_lexer.xrl", 48).
-file("rabbit_amqp_sql_lexer.xrl", 48).
yyaction_18(TokenLine) ->
{ token, { '+', TokenLine } } .
-compile({inline,yyaction_19/1}).
-file("rabbit_jms_selector_lexer.xrl", 49).
-file("rabbit_amqp_sql_lexer.xrl", 49).
yyaction_19(TokenLine) ->
{ token, { '-', TokenLine } } .
-compile({inline,yyaction_20/1}).
-file("rabbit_jms_selector_lexer.xrl", 50).
-file("rabbit_amqp_sql_lexer.xrl", 50).
yyaction_20(TokenLine) ->
{ token, { '*', TokenLine } } .
-compile({inline,yyaction_21/1}).
-file("rabbit_jms_selector_lexer.xrl", 51).
-file("rabbit_amqp_sql_lexer.xrl", 51).
yyaction_21(TokenLine) ->
{ token, { '/', TokenLine } } .
-compile({inline,yyaction_22/1}).
-file("rabbit_jms_selector_lexer.xrl", 54).
-file("rabbit_amqp_sql_lexer.xrl", 54).
yyaction_22(TokenLine) ->
{ token, { '(', TokenLine } } .
-compile({inline,yyaction_23/1}).
-file("rabbit_jms_selector_lexer.xrl", 55).
-file("rabbit_amqp_sql_lexer.xrl", 55).
yyaction_23(TokenLine) ->
{ token, { ')', TokenLine } } .
-compile({inline,yyaction_24/1}).
-file("rabbit_jms_selector_lexer.xrl", 56).
-file("rabbit_amqp_sql_lexer.xrl", 56).
yyaction_24(TokenLine) ->
{ token, { ',', TokenLine } } .
-compile({inline,yyaction_25/2}).
-file("rabbit_jms_selector_lexer.xrl", 59).
-file("rabbit_amqp_sql_lexer.xrl", 59).
yyaction_25(TokenChars, TokenLine) ->
{ token, { integer, TokenLine, list_to_integer (TokenChars) } } .
-compile({inline,yyaction_26/2}).
-file("rabbit_jms_selector_lexer.xrl", 60).
-file("rabbit_amqp_sql_lexer.xrl", 60).
yyaction_26(TokenChars, TokenLine) ->
{ token, { float, TokenLine, list_to_float (to_float (TokenChars)) } } .
-compile({inline,yyaction_27/2}).
-file("rabbit_jms_selector_lexer.xrl", 61).
-file("rabbit_amqp_sql_lexer.xrl", 61).
yyaction_27(TokenChars, TokenLine) ->
{ token, { float, TokenLine, parse_scientific_notation (TokenChars) } } .
-compile({inline,yyaction_28/2}).
-file("rabbit_jms_selector_lexer.xrl", 62).
-file("rabbit_amqp_sql_lexer.xrl", 62).
yyaction_28(TokenChars, TokenLine) ->
{ token, { string, TokenLine, process_string (TokenChars) } } .
-compile({inline,yyaction_29/2}).
-file("rabbit_jms_selector_lexer.xrl", 63).
-file("rabbit_amqp_sql_lexer.xrl", 63).
yyaction_29(TokenChars, TokenLine) ->
{ token, { identifier, TokenLine, unicode : characters_to_binary (TokenChars) } } .
-compile({inline,yyaction_30/1}).
-file("rabbit_jms_selector_lexer.xrl", 66).
-file("rabbit_amqp_sql_lexer.xrl", 66).
yyaction_30(TokenChars) ->
{ error, { illegal_character, TokenChars } } .
-file("leexinc.hrl", 377).

View File

@ -1,8 +1,8 @@
%%% This is the definitions file for JMS message selectors:
%%% https://jakarta.ee/specifications/messaging/3.1/jakarta-messaging-spec-3.1#message-selector
%%% This is the definitions file for SQL Filter Expressions:
%%% https://docs.oasis-open.org/amqp/filtex/v1.0/csd01/filtex-v1.0-csd01.html#_Toc67929276
%%%
%%% To manually generate the scanner file rabbit_jms_selector_lexer.erl run:
%%% leex:file("rabbit_jms_selector_lexer.xrl", [deterministic]).
%%% To manually generate the scanner file rabbit_amqp_sql_lexer.erl run:
%%% leex:file("rabbit_amqp_sql_lexer.xrl", [deterministic]).
Definitions.
WHITESPACE = [\s\t\f\n\r]

View File

@ -1,8 +1,8 @@
-file("rabbit_jms_selector_parser.yrl", 0).
-module(rabbit_jms_selector_parser).
-file("rabbit_jms_selector_parser.erl", 3).
-file("rabbit_amqp_sql_parser.yrl", 0).
-module(rabbit_amqp_sql_parser).
-file("rabbit_amqp_sql_parser.erl", 3).
-export([parse/1, parse_and_scan/1, format_error/1]).
-file("rabbit_jms_selector_parser.yrl", 122).
-file("rabbit_amqp_sql_parser.yrl", 122).
extract_value({_Token, _Line, Value}) -> Value.
@ -212,7 +212,7 @@ yecctoken2string1(Other) ->
-file("rabbit_jms_selector_parser.erl", 215).
-file("rabbit_amqp_sql_parser.erl", 215).
-dialyzer({nowarn_function, yeccpars2/7}).
-compile({nowarn_unused_function, yeccpars2/7}).
@ -1346,7 +1346,7 @@ yeccgoto_unary_expr(79=_S, Cat, Ss, Stack, T, Ts, Tzr) ->
-compile({inline,yeccpars2_1_/1}).
-dialyzer({nowarn_function, yeccpars2_1_/1}).
-compile({nowarn_unused_function, yeccpars2_1_/1}).
-file("rabbit_jms_selector_parser.yrl", 96).
-file("rabbit_amqp_sql_parser.yrl", 96).
yeccpars2_1_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1356,7 +1356,7 @@ yeccpars2_1_(__Stack0) ->
-compile({inline,yeccpars2_3_/1}).
-dialyzer({nowarn_function, yeccpars2_3_/1}).
-compile({nowarn_unused_function, yeccpars2_3_/1}).
-file("rabbit_jms_selector_parser.yrl", 101).
-file("rabbit_amqp_sql_parser.yrl", 101).
yeccpars2_3_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1366,7 +1366,7 @@ yeccpars2_3_(__Stack0) ->
-compile({inline,yeccpars2_4_/1}).
-dialyzer({nowarn_function, yeccpars2_4_/1}).
-compile({nowarn_unused_function, yeccpars2_4_/1}).
-file("rabbit_jms_selector_parser.yrl", 92).
-file("rabbit_amqp_sql_parser.yrl", 92).
yeccpars2_4_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1376,7 +1376,7 @@ yeccpars2_4_(__Stack0) ->
-compile({inline,yeccpars2_5_/1}).
-dialyzer({nowarn_function, yeccpars2_5_/1}).
-compile({nowarn_unused_function, yeccpars2_5_/1}).
-file("rabbit_jms_selector_parser.yrl", 43).
-file("rabbit_amqp_sql_parser.yrl", 43).
yeccpars2_5_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1386,7 +1386,7 @@ yeccpars2_5_(__Stack0) ->
-compile({inline,yeccpars2_6_/1}).
-dialyzer({nowarn_function, yeccpars2_6_/1}).
-compile({nowarn_unused_function, yeccpars2_6_/1}).
-file("rabbit_jms_selector_parser.yrl", 105).
-file("rabbit_amqp_sql_parser.yrl", 105).
yeccpars2_6_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1396,7 +1396,7 @@ yeccpars2_6_(__Stack0) ->
-compile({inline,yeccpars2_7_/1}).
-dialyzer({nowarn_function, yeccpars2_7_/1}).
-compile({nowarn_unused_function, yeccpars2_7_/1}).
-file("rabbit_jms_selector_parser.yrl", 59).
-file("rabbit_amqp_sql_parser.yrl", 59).
yeccpars2_7_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1406,7 +1406,7 @@ yeccpars2_7_(__Stack0) ->
-compile({inline,yeccpars2_8_/1}).
-dialyzer({nowarn_function, yeccpars2_8_/1}).
-compile({nowarn_unused_function, yeccpars2_8_/1}).
-file("rabbit_jms_selector_parser.yrl", 61).
-file("rabbit_amqp_sql_parser.yrl", 61).
yeccpars2_8_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1416,7 +1416,7 @@ yeccpars2_8_(__Stack0) ->
-compile({inline,yeccpars2_9_/1}).
-dialyzer({nowarn_function, yeccpars2_9_/1}).
-compile({nowarn_unused_function, yeccpars2_9_/1}).
-file("rabbit_jms_selector_parser.yrl", 60).
-file("rabbit_amqp_sql_parser.yrl", 60).
yeccpars2_9_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1426,7 +1426,7 @@ yeccpars2_9_(__Stack0) ->
-compile({inline,yeccpars2_10_/1}).
-dialyzer({nowarn_function, yeccpars2_10_/1}).
-compile({nowarn_unused_function, yeccpars2_10_/1}).
-file("rabbit_jms_selector_parser.yrl", 106).
-file("rabbit_amqp_sql_parser.yrl", 106).
yeccpars2_10_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1436,7 +1436,7 @@ yeccpars2_10_(__Stack0) ->
-compile({inline,yeccpars2_11_/1}).
-dialyzer({nowarn_function, yeccpars2_11_/1}).
-compile({nowarn_unused_function, yeccpars2_11_/1}).
-file("rabbit_jms_selector_parser.yrl", 40).
-file("rabbit_amqp_sql_parser.yrl", 40).
yeccpars2_11_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1446,7 +1446,7 @@ yeccpars2_11_(__Stack0) ->
-compile({inline,yeccpars2_12_/1}).
-dialyzer({nowarn_function, yeccpars2_12_/1}).
-compile({nowarn_unused_function, yeccpars2_12_/1}).
-file("rabbit_jms_selector_parser.yrl", 49).
-file("rabbit_amqp_sql_parser.yrl", 49).
yeccpars2_12_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1456,7 +1456,7 @@ yeccpars2_12_(__Stack0) ->
-compile({inline,yeccpars2_13_/1}).
-dialyzer({nowarn_function, yeccpars2_13_/1}).
-compile({nowarn_unused_function, yeccpars2_13_/1}).
-file("rabbit_jms_selector_parser.yrl", 58).
-file("rabbit_amqp_sql_parser.yrl", 58).
yeccpars2_13_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1466,7 +1466,7 @@ yeccpars2_13_(__Stack0) ->
-compile({inline,yeccpars2_14_/1}).
-dialyzer({nowarn_function, yeccpars2_14_/1}).
-compile({nowarn_unused_function, yeccpars2_14_/1}).
-file("rabbit_jms_selector_parser.yrl", 62).
-file("rabbit_amqp_sql_parser.yrl", 62).
yeccpars2_14_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1476,7 +1476,7 @@ yeccpars2_14_(__Stack0) ->
-compile({inline,yeccpars2_19_/1}).
-dialyzer({nowarn_function, yeccpars2_19_/1}).
-compile({nowarn_unused_function, yeccpars2_19_/1}).
-file("rabbit_jms_selector_parser.yrl", 116).
-file("rabbit_amqp_sql_parser.yrl", 116).
yeccpars2_19_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1486,7 +1486,7 @@ yeccpars2_19_(__Stack0) ->
-compile({inline,yeccpars2_20_/1}).
-dialyzer({nowarn_function, yeccpars2_20_/1}).
-compile({nowarn_unused_function, yeccpars2_20_/1}).
-file("rabbit_jms_selector_parser.yrl", 114).
-file("rabbit_amqp_sql_parser.yrl", 114).
yeccpars2_20_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1496,7 +1496,7 @@ yeccpars2_20_(__Stack0) ->
-compile({inline,yeccpars2_21_/1}).
-dialyzer({nowarn_function, yeccpars2_21_/1}).
-compile({nowarn_unused_function, yeccpars2_21_/1}).
-file("rabbit_jms_selector_parser.yrl", 109).
-file("rabbit_amqp_sql_parser.yrl", 109).
yeccpars2_21_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1507,7 +1507,7 @@ yeccpars2_21_(__Stack0) ->
-compile({inline,yeccpars2_22_/1}).
-dialyzer({nowarn_function, yeccpars2_22_/1}).
-compile({nowarn_unused_function, yeccpars2_22_/1}).
-file("rabbit_jms_selector_parser.yrl", 113).
-file("rabbit_amqp_sql_parser.yrl", 113).
yeccpars2_22_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1517,7 +1517,7 @@ yeccpars2_22_(__Stack0) ->
-compile({inline,yeccpars2_23_/1}).
-dialyzer({nowarn_function, yeccpars2_23_/1}).
-compile({nowarn_unused_function, yeccpars2_23_/1}).
-file("rabbit_jms_selector_parser.yrl", 115).
-file("rabbit_amqp_sql_parser.yrl", 115).
yeccpars2_23_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1527,7 +1527,7 @@ yeccpars2_23_(__Stack0) ->
-compile({inline,yeccpars2_24_/1}).
-dialyzer({nowarn_function, yeccpars2_24_/1}).
-compile({nowarn_unused_function, yeccpars2_24_/1}).
-file("rabbit_jms_selector_parser.yrl", 48).
-file("rabbit_amqp_sql_parser.yrl", 48).
yeccpars2_24_(__Stack0) ->
[___2,___1 | __Stack] = __Stack0,
[begin
@ -1537,7 +1537,7 @@ yeccpars2_24_(__Stack0) ->
-compile({inline,yeccpars2_27_/1}).
-dialyzer({nowarn_function, yeccpars2_27_/1}).
-compile({nowarn_unused_function, yeccpars2_27_/1}).
-file("rabbit_jms_selector_parser.yrl", 47).
-file("rabbit_amqp_sql_parser.yrl", 47).
yeccpars2_27_(__Stack0) ->
[___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1547,7 +1547,7 @@ yeccpars2_27_(__Stack0) ->
-compile({inline,yeccpars2_28_/1}).
-dialyzer({nowarn_function, yeccpars2_28_/1}).
-compile({nowarn_unused_function, yeccpars2_28_/1}).
-file("rabbit_jms_selector_parser.yrl", 46).
-file("rabbit_amqp_sql_parser.yrl", 46).
yeccpars2_28_(__Stack0) ->
[___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1557,7 +1557,7 @@ yeccpars2_28_(__Stack0) ->
-compile({inline,yeccpars2_29_/1}).
-dialyzer({nowarn_function, yeccpars2_29_/1}).
-compile({nowarn_unused_function, yeccpars2_29_/1}).
-file("rabbit_jms_selector_parser.yrl", 100).
-file("rabbit_amqp_sql_parser.yrl", 100).
yeccpars2_29_(__Stack0) ->
[___2,___1 | __Stack] = __Stack0,
[begin
@ -1567,7 +1567,7 @@ yeccpars2_29_(__Stack0) ->
-compile({inline,yeccpars2_30_/1}).
-dialyzer({nowarn_function, yeccpars2_30_/1}).
-compile({nowarn_unused_function, yeccpars2_30_/1}).
-file("rabbit_jms_selector_parser.yrl", 106).
-file("rabbit_amqp_sql_parser.yrl", 106).
yeccpars2_30_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1577,7 +1577,7 @@ yeccpars2_30_(__Stack0) ->
-compile({inline,yeccpars2_31_/1}).
-dialyzer({nowarn_function, yeccpars2_31_/1}).
-compile({nowarn_unused_function, yeccpars2_31_/1}).
-file("rabbit_jms_selector_parser.yrl", 99).
-file("rabbit_amqp_sql_parser.yrl", 99).
yeccpars2_31_(__Stack0) ->
[___2,___1 | __Stack] = __Stack0,
[begin
@ -1587,7 +1587,7 @@ yeccpars2_31_(__Stack0) ->
-compile({inline,yeccpars2_33_/1}).
-dialyzer({nowarn_function, yeccpars2_33_/1}).
-compile({nowarn_unused_function, yeccpars2_33_/1}).
-file("rabbit_jms_selector_parser.yrl", 104).
-file("rabbit_amqp_sql_parser.yrl", 104).
yeccpars2_33_(__Stack0) ->
[___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1597,7 +1597,7 @@ yeccpars2_33_(__Stack0) ->
-compile({inline,yeccpars2_49_/1}).
-dialyzer({nowarn_function, yeccpars2_49_/1}).
-compile({nowarn_unused_function, yeccpars2_49_/1}).
-file("rabbit_jms_selector_parser.yrl", 73).
-file("rabbit_amqp_sql_parser.yrl", 73).
yeccpars2_49_(__Stack0) ->
[___4,___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1608,7 +1608,7 @@ yeccpars2_49_(__Stack0) ->
-compile({inline,yeccpars2_51_/1}).
-dialyzer({nowarn_function, yeccpars2_51_/1}).
-compile({nowarn_unused_function, yeccpars2_51_/1}).
-file("rabbit_jms_selector_parser.yrl", 75).
-file("rabbit_amqp_sql_parser.yrl", 75).
yeccpars2_51_(__Stack0) ->
[___6,___5,___4,___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1619,7 +1619,7 @@ yeccpars2_51_(__Stack0) ->
-compile({inline,yeccpars2_54_/1}).
-dialyzer({nowarn_function, yeccpars2_54_/1}).
-compile({nowarn_unused_function, yeccpars2_54_/1}).
-file("rabbit_jms_selector_parser.yrl", 81).
-file("rabbit_amqp_sql_parser.yrl", 81).
yeccpars2_54_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1629,7 +1629,7 @@ yeccpars2_54_(__Stack0) ->
-compile({inline,yeccpars2_55_/1}).
-dialyzer({nowarn_function, yeccpars2_55_/1}).
-compile({nowarn_unused_function, yeccpars2_55_/1}).
-file("rabbit_jms_selector_parser.yrl", 83).
-file("rabbit_amqp_sql_parser.yrl", 83).
yeccpars2_55_(__Stack0) ->
[___1 | __Stack] = __Stack0,
[begin
@ -1639,7 +1639,7 @@ yeccpars2_55_(__Stack0) ->
-compile({inline,yeccpars2_57_/1}).
-dialyzer({nowarn_function, yeccpars2_57_/1}).
-compile({nowarn_unused_function, yeccpars2_57_/1}).
-file("rabbit_jms_selector_parser.yrl", 82).
-file("rabbit_amqp_sql_parser.yrl", 82).
yeccpars2_57_(__Stack0) ->
[___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1649,7 +1649,7 @@ yeccpars2_57_(__Stack0) ->
-compile({inline,yeccpars2_58_/1}).
-dialyzer({nowarn_function, yeccpars2_58_/1}).
-compile({nowarn_unused_function, yeccpars2_58_/1}).
-file("rabbit_jms_selector_parser.yrl", 80).
-file("rabbit_amqp_sql_parser.yrl", 80).
yeccpars2_58_(__Stack0) ->
[___6,___5,___4,___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1659,7 +1659,7 @@ yeccpars2_58_(__Stack0) ->
-compile({inline,yeccpars2_61_/1}).
-dialyzer({nowarn_function, yeccpars2_61_/1}).
-compile({nowarn_unused_function, yeccpars2_61_/1}).
-file("rabbit_jms_selector_parser.yrl", 66).
-file("rabbit_amqp_sql_parser.yrl", 66).
yeccpars2_61_(__Stack0) ->
[___6,___5,___4,___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1669,7 +1669,7 @@ yeccpars2_61_(__Stack0) ->
-compile({inline,yeccpars2_62_/1}).
-dialyzer({nowarn_function, yeccpars2_62_/1}).
-compile({nowarn_unused_function, yeccpars2_62_/1}).
-file("rabbit_jms_selector_parser.yrl", 69).
-file("rabbit_amqp_sql_parser.yrl", 69).
yeccpars2_62_(__Stack0) ->
[___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1680,7 +1680,7 @@ yeccpars2_62_(__Stack0) ->
-compile({inline,yeccpars2_64_/1}).
-dialyzer({nowarn_function, yeccpars2_64_/1}).
-compile({nowarn_unused_function, yeccpars2_64_/1}).
-file("rabbit_jms_selector_parser.yrl", 71).
-file("rabbit_amqp_sql_parser.yrl", 71).
yeccpars2_64_(__Stack0) ->
[___5,___4,___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1691,7 +1691,7 @@ yeccpars2_64_(__Stack0) ->
-compile({inline,yeccpars2_67_/1}).
-dialyzer({nowarn_function, yeccpars2_67_/1}).
-compile({nowarn_unused_function, yeccpars2_67_/1}).
-file("rabbit_jms_selector_parser.yrl", 79).
-file("rabbit_amqp_sql_parser.yrl", 79).
yeccpars2_67_(__Stack0) ->
[___5,___4,___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1701,7 +1701,7 @@ yeccpars2_67_(__Stack0) ->
-compile({inline,yeccpars2_70_/1}).
-dialyzer({nowarn_function, yeccpars2_70_/1}).
-compile({nowarn_unused_function, yeccpars2_70_/1}).
-file("rabbit_jms_selector_parser.yrl", 65).
-file("rabbit_amqp_sql_parser.yrl", 65).
yeccpars2_70_(__Stack0) ->
[___5,___4,___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1711,7 +1711,7 @@ yeccpars2_70_(__Stack0) ->
-compile({inline,yeccpars2_71_/1}).
-dialyzer({nowarn_function, yeccpars2_71_/1}).
-compile({nowarn_unused_function, yeccpars2_71_/1}).
-file("rabbit_jms_selector_parser.yrl", 56).
-file("rabbit_amqp_sql_parser.yrl", 56).
yeccpars2_71_(__Stack0) ->
[___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1721,7 +1721,7 @@ yeccpars2_71_(__Stack0) ->
-compile({inline,yeccpars2_72_/1}).
-dialyzer({nowarn_function, yeccpars2_72_/1}).
-compile({nowarn_unused_function, yeccpars2_72_/1}).
-file("rabbit_jms_selector_parser.yrl", 54).
-file("rabbit_amqp_sql_parser.yrl", 54).
yeccpars2_72_(__Stack0) ->
[___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1731,7 +1731,7 @@ yeccpars2_72_(__Stack0) ->
-compile({inline,yeccpars2_73_/1}).
-dialyzer({nowarn_function, yeccpars2_73_/1}).
-compile({nowarn_unused_function, yeccpars2_73_/1}).
-file("rabbit_jms_selector_parser.yrl", 52).
-file("rabbit_amqp_sql_parser.yrl", 52).
yeccpars2_73_(__Stack0) ->
[___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1741,7 +1741,7 @@ yeccpars2_73_(__Stack0) ->
-compile({inline,yeccpars2_74_/1}).
-dialyzer({nowarn_function, yeccpars2_74_/1}).
-compile({nowarn_unused_function, yeccpars2_74_/1}).
-file("rabbit_jms_selector_parser.yrl", 53).
-file("rabbit_amqp_sql_parser.yrl", 53).
yeccpars2_74_(__Stack0) ->
[___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1751,7 +1751,7 @@ yeccpars2_74_(__Stack0) ->
-compile({inline,yeccpars2_75_/1}).
-dialyzer({nowarn_function, yeccpars2_75_/1}).
-compile({nowarn_unused_function, yeccpars2_75_/1}).
-file("rabbit_jms_selector_parser.yrl", 57).
-file("rabbit_amqp_sql_parser.yrl", 57).
yeccpars2_75_(__Stack0) ->
[___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1761,7 +1761,7 @@ yeccpars2_75_(__Stack0) ->
-compile({inline,yeccpars2_76_/1}).
-dialyzer({nowarn_function, yeccpars2_76_/1}).
-compile({nowarn_unused_function, yeccpars2_76_/1}).
-file("rabbit_jms_selector_parser.yrl", 55).
-file("rabbit_amqp_sql_parser.yrl", 55).
yeccpars2_76_(__Stack0) ->
[___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1771,7 +1771,7 @@ yeccpars2_76_(__Stack0) ->
-compile({inline,yeccpars2_77_/1}).
-dialyzer({nowarn_function, yeccpars2_77_/1}).
-compile({nowarn_unused_function, yeccpars2_77_/1}).
-file("rabbit_jms_selector_parser.yrl", 91).
-file("rabbit_amqp_sql_parser.yrl", 91).
yeccpars2_77_(__Stack0) ->
[___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1781,7 +1781,7 @@ yeccpars2_77_(__Stack0) ->
-compile({inline,yeccpars2_80_/1}).
-dialyzer({nowarn_function, yeccpars2_80_/1}).
-compile({nowarn_unused_function, yeccpars2_80_/1}).
-file("rabbit_jms_selector_parser.yrl", 95).
-file("rabbit_amqp_sql_parser.yrl", 95).
yeccpars2_80_(__Stack0) ->
[___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1791,7 +1791,7 @@ yeccpars2_80_(__Stack0) ->
-compile({inline,yeccpars2_81_/1}).
-dialyzer({nowarn_function, yeccpars2_81_/1}).
-compile({nowarn_unused_function, yeccpars2_81_/1}).
-file("rabbit_jms_selector_parser.yrl", 94).
-file("rabbit_amqp_sql_parser.yrl", 94).
yeccpars2_81_(__Stack0) ->
[___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1801,7 +1801,7 @@ yeccpars2_81_(__Stack0) ->
-compile({inline,yeccpars2_82_/1}).
-dialyzer({nowarn_function, yeccpars2_82_/1}).
-compile({nowarn_unused_function, yeccpars2_82_/1}).
-file("rabbit_jms_selector_parser.yrl", 90).
-file("rabbit_amqp_sql_parser.yrl", 90).
yeccpars2_82_(__Stack0) ->
[___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1811,7 +1811,7 @@ yeccpars2_82_(__Stack0) ->
-compile({inline,yeccpars2_85_/1}).
-dialyzer({nowarn_function, yeccpars2_85_/1}).
-compile({nowarn_unused_function, yeccpars2_85_/1}).
-file("rabbit_jms_selector_parser.yrl", 86).
-file("rabbit_amqp_sql_parser.yrl", 86).
yeccpars2_85_(__Stack0) ->
[___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1821,7 +1821,7 @@ yeccpars2_85_(__Stack0) ->
-compile({inline,yeccpars2_86_/1}).
-dialyzer({nowarn_function, yeccpars2_86_/1}).
-compile({nowarn_unused_function, yeccpars2_86_/1}).
-file("rabbit_jms_selector_parser.yrl", 87).
-file("rabbit_amqp_sql_parser.yrl", 87).
yeccpars2_86_(__Stack0) ->
[___4,___3,___2,___1 | __Stack] = __Stack0,
[begin
@ -1829,4 +1829,4 @@ yeccpars2_86_(__Stack0) ->
end | __Stack].
-file("rabbit_jms_selector_parser.yrl", 141).
-file("rabbit_amqp_sql_parser.yrl", 141).

View File

@ -1,8 +1,8 @@
%%% This is the grammar file for JMS message selectors:
%%% https://jakarta.ee/specifications/messaging/3.1/jakarta-messaging-spec-3.1#message-selector
%%% This is the grammar file for SQL Filter Expressions:
%%% https://docs.oasis-open.org/amqp/filtex/v1.0/csd01/filtex-v1.0-csd01.html#_Toc67929276
%%%
%%% To manually generate the parser file rabbit_jms_selector_parser.erl run:
%%% yecc:file("rabbit_jms_selector_parser.yrl", [deterministic]).
%%% To manually generate the parser file rabbit_amqp_sql_parser.erl run:
%%% yecc:file("rabbit_amqp_sql_parser.yrl", [deterministic]).
Nonterminals
selector

View File

@ -4,7 +4,7 @@
%%
%% Copyright (c) 2007-2025 Broadcom. All Rights Reserved. The term Broadcom refers to Broadcom Inc. and/or its subsidiaries. All rights reserved.
-module(amqp_jms_unit_SUITE).
-module(amqp_filter_sql_unit_SUITE).
-compile([export_all, nowarn_export_all]).
@ -697,9 +697,8 @@ header_section(_Config) ->
true = match("header.priority = 7", Hdr, Ps, APs),
false = match("header.priority < 7", Hdr, Ps, APs),
%% Since the default priority is 4 in both AMQP and JMS, we expect the
%% following expression to evaluate to true if matched against a message
%% without an explicit priority level set.
%% Since the default priority is 4, we expect the following expression to evaluate
%% to true if matched against a message without an explicit priority level set.
true = match("header.priority = 4", []).
properties_section(_Config) ->
@ -881,12 +880,12 @@ match(Selector, Header, Props, AppProps)
Sections = [Header, Props, AP, Body],
Payload = amqp_encode_bin(Sections),
Mc = mc_amqp:init_from_stream(Payload, #{}),
rabbit_amqp_filter_jms:eval(ParsedSelector, Mc).
rabbit_amqp_filter_sql:eval(ParsedSelector, Mc).
parse(Selector) ->
Descriptor = {ulong, ?DESCRIPTOR_CODE_SQL_FILTER},
Filter = {described, Descriptor, {utf8, Selector}},
rabbit_amqp_filter_jms:parse(Filter).
rabbit_amqp_filter_sql:parse(Filter).
amqp_encode_bin(L) when is_list(L) ->
iolist_to_binary([amqp10_framing:encode_bin(X) || X <- L]).