MCPcopy Create free account
hub / github.com/MariaDB/server / parse

Method parse

storage/mroonga/lib/mrn_query_parser.cpp:49–101  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

47 QueryParser::~QueryParser() = default;
48
49 grn_rc QueryParser::parse(const char *query, size_t query_length) {
50 MRN_DBUG_ENTER_METHOD();
51
52 const char *raw_query = NULL;
53 size_t raw_query_length = 0;
54 grn_operator default_operator = GRN_OP_OR;
55 grn_expr_flags expression_flags = 0;
56 parse_pragma(query,
57 query_length,
58 &raw_query,
59 &raw_query_length,
60 &default_operator,
61 &expression_flags);
62
63 grn_obj *default_column = default_column_;
64 if (match_columns_) {
65 default_column = match_columns_;
66 }
67 grn_rc rc = grn_expr_parse(ctx_,
68 expression_,
69 raw_query,
70 raw_query_length,
71 default_column,
72 GRN_OP_MATCH,
73 default_operator,
74 expression_flags);
75 if (rc != GRN_SUCCESS) {
76 char error_message[MRN_MESSAGE_BUFFER_SIZE];
77 snprintf(error_message, MRN_MESSAGE_BUFFER_SIZE,
78 "failed to parse fulltext search keyword: <%.*s>: <%s>",
79 static_cast<int>(query_length),
80 query,
81 ctx_->errbuf);
82 variables::ActionOnError action =
83 variables::get_action_on_fulltext_query_error(thd_);
84 switch (action) {
85 case variables::ACTION_ON_ERROR_ERROR:
86 my_message(ER_PARSE_ERROR, error_message, MYF(0));
87 break;
88 case variables::ACTION_ON_ERROR_ERROR_AND_LOG:
89 my_message(ER_PARSE_ERROR, error_message, MYF(0));
90 GRN_LOG(ctx_, GRN_LOG_ERROR, "%s", error_message);
91 break;
92 case variables::ACTION_ON_ERROR_IGNORE:
93 break;
94 case variables::ACTION_ON_ERROR_IGNORE_AND_LOG:
95 GRN_LOG(ctx_, GRN_LOG_ERROR, "%s", error_message);
96 break;
97 }
98 }
99
100 DBUG_RETURN(rc);
101 }
102
103 void QueryParser::parse_pragma(const char *query,
104 size_t query_length,

Callers 15

maria_ft_parseFunction · 0.45
_ftb_parse_queryFunction · 0.45
_ftb_check_phraseFunction · 0.45
find_normalizerMethod · 0.45
find_token_filtersMethod · 0.45
mrn_snippet_html_prepareFunction · 0.45
_ftb_parse_queryFunction · 0.45

Calls 2

my_messageFunction · 0.85

Tested by

no test coverage detected