Cleanup code from previous commits

pull/4605/head
Rene Cannao 2 years ago
parent 9f0af17249
commit c049c9268c

@ -513,101 +513,10 @@ std::string SetParser::parse_USE_query() {
proxy_debug(PROXY_DEBUG_MYSQL_QUERY_PROCESSOR, 4, "Parsing query %s\n", query.c_str());
#endif // DEBUG
std::string pattern = "";
/*
// Step 1: Match for an optional multiline comment at the beginning of the input string.
* `^` : Matches the beginning of the string.
* `\s*` : Matches zero or more whitespace characters (spaces, tabs, newlines).
* `(?: ... )?` : Non-capturing group, made optional by `?`.
* `\/\*.*\*\/` : Matches a multiline C-style comment
* `\s*` : Matches zero or more whitespace characters.
*/
pattern += R"(^\s*(?:\/\*.*\*\/\s*)?)";
/*
// Step 2: This part matches the "USE" keyword followed by zero or more spaces.
* `USE`: Matches the literal string "USE".
* `\s*`: Matches zero or more whitespace characters.
*/
pattern += R"(USE\s*)";
/*
// Step 3: Match the optional comment between "USE" and the database name
* `(?: ... )?` : Non-capturing group, made optional by `?`.
* `\/\*.*\*\/` : Matches a multiline C-style comment .
* `#[^\n]*$` : Matches a single-line comment starting with `#` (until the end of the line).
* `-- [^\n]*$` : Matches a single-line comment starting with `-- ` (until the end of the line).
*/
pattern += R"((?:\/\*.*\*\/|#[^\n]*$|-- [^\n]*$)?)";
/*
// Step 4: Match the optional backtick, optional space, and the dbname
* `\s+` : Matches one or more whitespace characters.
* `|` : Or operator.
* `(` : Matches a backtick character literally.
* `(`)?` : capturing group. This matches an optional opening backtick.
* `([a-zA-Z0-9_]+)` : Matches one or more alphanumeric characters or underscores (captures the dbname).
* `\1?` : Backreference to the first capturing group (the opening backtick), making the closing backtick optional.
This part handles the following:
* Optional space or backtick : It matches either one or more spaces (`\s+`) or a backtick (`) after "USE". This allows for the optional space when the dbname is wrapped in backticks.
* Optional opening backtick : It matches an optional opening backtick.
* Capturing the dbname : It captures the actual dbname, which can consist of alphanumeric characters and underscores.
* Optional closing backtick : It matches an optional closing backtick, which must match the opening backtick if present.
*/
//pattern += R"((`|\s+)?(`)?([a-zA-Z0-9_]+)\1?)";
pattern += R"(\s*`([a-zA-Z0-9_]+)`|\s+([a-zA-Z0-9_]+))";
// add an optional space
pattern += R"(\s*)";
/*
// Step 5: Match the optional second comment
* `(?: ... )?` : Non-capturing group, made optional by `?`.
* `\/\*.*\*\/` : Matches a multiline C-style comment .
* `#[^\n]*$` : Matches a single-line comment starting with `#` (until the end of the line).
* `-- [^\n]*$` : Matches a single-line comment starting with `-- ` (until the end of the line).
*/
pattern += R"((?:\/\*.*\*\/|#[^\n]*$|-- [^\n]*$)?)";
/*
// Step 6: Match the end of the line
* `\s*`: Matches zero or more whitespace characters.
* `$` : Matches the end of the string.
*/
pattern += R"(\s*$)";
pattern = R"(^\s*(?:\/\*.*\*\/\s*)?USE\s*(?:\/\*.*\*\/|#[^\n]*$|-- [^\n]*$)?\s*(`(?:[a-zA-Z0-9_]+)`|\s+(?:[a-zA-Z0-9_]+))\s*(?:\/\*.*\*\/|#[^\n]*$|-- [^\n]*$)?\s*$)";
/*
std::string dbname1 = "";
std::string dbname2 = "";
std::string opening_quote;
*/
re2::RE2::Options opt2(RE2::Quiet);
opt2.set_case_sensitive(false);
opt2.set_longest_match(false);
/*
re2::StringPiece input(query);
re2::RE2 re(pattern, *opt2);
re2::RE2::Consume(&input, re, &dbname1);
delete opt2;
*/
/*
pcrecpp::RE_Options opt;
opt.set_caseless(true);
pcrecpp::RE re(pattern, opt);
std::string sp(query);
re.FullMatch(sp, &dbname1);
*/
/*
if (dbname1 != "")
return dbname1;
return dbname2;
*/
std::string dbname = remove_comments(query);
re2::RE2 re0("^\\s*", opt2);
re2::RE2::Replace(&dbname, re0, "");
@ -639,17 +548,6 @@ std::string pattern = "";
return "";
}
/*
{
// Find the first non-space character from the end
auto it = std::find_if_not(dbname.rbegin(), dbname.rend(), [](char c) {
return std::isspace(c);
});
// Erase the characters from the first non-space character to the end
dbname.erase(it.base(), dbname.end());
}
*/
return "";
}

Loading…
Cancel
Save