From dbc632180801fdd667d07a4af7cd95e9c6e022e0 Mon Sep 17 00:00:00 2001 From: David Ansari Date: Thu, 3 Jul 2025 09:04:37 +0200 Subject: [PATCH] Rename JMS to (AMQP) SQL --- deps/rabbit/Makefile | 2 +- deps/rabbit/src/rabbit_amqp_filter.erl | 6 +- ...ter_jms.erl => rabbit_amqp_filter_sql.erl} | 85 +++++++------- deps/rabbit/src/rabbit_amqp_session.erl | 11 +- ...it_jms_ast.erl => rabbit_amqp_sql_ast.erl} | 8 +- ...or_lexer.erl => rabbit_amqp_sql_lexer.erl} | 68 +++++------ ...or_lexer.xrl => rabbit_amqp_sql_lexer.xrl} | 8 +- ..._parser.erl => rabbit_amqp_sql_parser.erl} | 108 +++++++++--------- ..._parser.yrl => rabbit_amqp_sql_parser.yrl} | 8 +- ...ITE.erl => amqp_filter_sql_unit_SUITE.erl} | 11 +- 10 files changed, 156 insertions(+), 159 deletions(-) rename deps/rabbit/src/{rabbit_amqp_filter_jms.erl => rabbit_amqp_filter_sql.erl} (84%) rename deps/rabbit/src/{rabbit_jms_ast.erl => rabbit_amqp_sql_ast.erl} (95%) rename deps/rabbit/src/{rabbit_jms_selector_lexer.erl => rabbit_amqp_sql_lexer.erl} (98%) rename deps/rabbit/src/{rabbit_jms_selector_lexer.xrl => rabbit_amqp_sql_lexer.xrl} (92%) rename deps/rabbit/src/{rabbit_jms_selector_parser.erl => rabbit_amqp_sql_parser.erl} (96%) rename deps/rabbit/src/{rabbit_jms_selector_parser.yrl => rabbit_amqp_sql_parser.yrl} (94%) rename deps/rabbit/test/{amqp_jms_unit_SUITE.erl => amqp_filter_sql_unit_SUITE.erl} (99%) diff --git a/deps/rabbit/Makefile b/deps/rabbit/Makefile index 04262967d0..7db19d2eae 100644 --- a/deps/rabbit/Makefile +++ b/deps/rabbit/Makefile @@ -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 diff --git a/deps/rabbit/src/rabbit_amqp_filter.erl b/deps/rabbit/src/rabbit_amqp_filter.erl index e7704f9f8b..c38124c7ec 100644 --- a/deps/rabbit/src/rabbit_amqp_filter.erl +++ b/deps/rabbit/src/rabbit_amqp_filter.erl @@ -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). diff --git a/deps/rabbit/src/rabbit_amqp_filter_jms.erl b/deps/rabbit/src/rabbit_amqp_filter_sql.erl similarity index 84% rename from deps/rabbit/src/rabbit_amqp_filter_jms.erl rename to deps/rabbit/src/rabbit_amqp_filter_sql.erl index 830bae636e..79aa59f61d 100644 --- a/deps/rabbit/src/rabbit_amqp_filter_jms.erl +++ b/deps/rabbit/src/rabbit_amqp_filter_sql.erl @@ -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) -> diff --git a/deps/rabbit/src/rabbit_amqp_session.erl b/deps/rabbit/src/rabbit_amqp_session.erl index 27c6d96913..4ed13586e3 100644 --- a/deps/rabbit/src/rabbit_amqp_session.erl +++ b/deps/rabbit/src/rabbit_amqp_session.erl @@ -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 -> diff --git a/deps/rabbit/src/rabbit_jms_ast.erl b/deps/rabbit/src/rabbit_amqp_sql_ast.erl similarity index 95% rename from deps/rabbit/src/rabbit_jms_ast.erl rename to deps/rabbit/src/rabbit_amqp_sql_ast.erl index 1c52bf1806..287e8754d7 100644 --- a/deps/rabbit/src/rabbit_jms_ast.erl +++ b/deps/rabbit/src/rabbit_amqp_sql_ast.erl @@ -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) -> diff --git a/deps/rabbit/src/rabbit_jms_selector_lexer.erl b/deps/rabbit/src/rabbit_amqp_sql_lexer.erl similarity index 98% rename from deps/rabbit/src/rabbit_jms_selector_lexer.erl rename to deps/rabbit/src/rabbit_amqp_sql_lexer.erl index 0feaaf1f1f..5a2a6cdf2f 100644 --- a/deps/rabbit/src/rabbit_jms_selector_lexer.erl +++ b/deps/rabbit/src/rabbit_amqp_sql_lexer.erl @@ -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). diff --git a/deps/rabbit/src/rabbit_jms_selector_lexer.xrl b/deps/rabbit/src/rabbit_amqp_sql_lexer.xrl similarity index 92% rename from deps/rabbit/src/rabbit_jms_selector_lexer.xrl rename to deps/rabbit/src/rabbit_amqp_sql_lexer.xrl index 423a0f2b8d..901ccf1907 100644 --- a/deps/rabbit/src/rabbit_jms_selector_lexer.xrl +++ b/deps/rabbit/src/rabbit_amqp_sql_lexer.xrl @@ -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] diff --git a/deps/rabbit/src/rabbit_jms_selector_parser.erl b/deps/rabbit/src/rabbit_amqp_sql_parser.erl similarity index 96% rename from deps/rabbit/src/rabbit_jms_selector_parser.erl rename to deps/rabbit/src/rabbit_amqp_sql_parser.erl index 8a62cc841b..dce2a4004a 100644 --- a/deps/rabbit/src/rabbit_jms_selector_parser.erl +++ b/deps/rabbit/src/rabbit_amqp_sql_parser.erl @@ -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). diff --git a/deps/rabbit/src/rabbit_jms_selector_parser.yrl b/deps/rabbit/src/rabbit_amqp_sql_parser.yrl similarity index 94% rename from deps/rabbit/src/rabbit_jms_selector_parser.yrl rename to deps/rabbit/src/rabbit_amqp_sql_parser.yrl index a6ea47be2d..9d567e93eb 100644 --- a/deps/rabbit/src/rabbit_jms_selector_parser.yrl +++ b/deps/rabbit/src/rabbit_amqp_sql_parser.yrl @@ -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 diff --git a/deps/rabbit/test/amqp_jms_unit_SUITE.erl b/deps/rabbit/test/amqp_filter_sql_unit_SUITE.erl similarity index 99% rename from deps/rabbit/test/amqp_jms_unit_SUITE.erl rename to deps/rabbit/test/amqp_filter_sql_unit_SUITE.erl index 40a017e1d4..46d4c718a2 100644 --- a/deps/rabbit/test/amqp_jms_unit_SUITE.erl +++ b/deps/rabbit/test/amqp_filter_sql_unit_SUITE.erl @@ -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]).