Merge branch '2.3' into develop
This commit is contained in:
@ -1,4 +1,4 @@
|
|||||||
# MariaDB MaxScale 2.3.3 Release Notes
|
# MariaDB MaxScale 2.3.3 Release Notes -- 2019-01-21
|
||||||
|
|
||||||
Release 2.3.3 is a GA release.
|
Release 2.3.3 is a GA release.
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
set(MAXSCALE_VERSION_MAJOR "2" CACHE STRING "Major version")
|
set(MAXSCALE_VERSION_MAJOR "2" CACHE STRING "Major version")
|
||||||
set(MAXSCALE_VERSION_MINOR "3" CACHE STRING "Minor version")
|
set(MAXSCALE_VERSION_MINOR "3" CACHE STRING "Minor version")
|
||||||
set(MAXSCALE_VERSION_PATCH "3" CACHE STRING "Patch version")
|
set(MAXSCALE_VERSION_PATCH "4" CACHE STRING "Patch version")
|
||||||
|
|
||||||
# This should only be incremented if a package is rebuilt
|
# This should only be incremented if a package is rebuilt
|
||||||
set(MAXSCALE_BUILD_NUMBER 1 CACHE STRING "Release number")
|
set(MAXSCALE_BUILD_NUMBER 1 CACHE STRING "Release number")
|
||||||
|
@ -1465,7 +1465,11 @@ std::string get_canonical(GWBUF* querybuf)
|
|||||||
else if (*it == '/' && is_next(it, buf.end(), "/*"))
|
else if (*it == '/' && is_next(it, buf.end(), "/*"))
|
||||||
{
|
{
|
||||||
auto comment_start = std::next(it, 2);
|
auto comment_start = std::next(it, 2);
|
||||||
if (comment_start != buf.end() && *comment_start != '!' && *comment_start != 'M')
|
if (comment_start == buf.end())
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (*comment_start != '!' && *comment_start != 'M')
|
||||||
{
|
{
|
||||||
// Non-executable comment
|
// Non-executable comment
|
||||||
while (it != buf.end())
|
while (it != buf.end())
|
||||||
@ -1478,6 +1482,11 @@ std::string get_canonical(GWBUF* querybuf)
|
|||||||
}
|
}
|
||||||
++it;
|
++it;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (it == buf.end())
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1506,6 +1515,7 @@ std::string get_canonical(GWBUF* querybuf)
|
|||||||
|
|
||||||
++it;
|
++it;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (it == buf.end())
|
if (it == buf.end())
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
@ -1529,13 +1539,19 @@ std::string get_canonical(GWBUF* querybuf)
|
|||||||
else if (*it == '\'' || *it == '"')
|
else if (*it == '\'' || *it == '"')
|
||||||
{
|
{
|
||||||
char c = *it;
|
char c = *it;
|
||||||
it = find_char(std::next(it), buf.end(), c);
|
if ((it = find_char(std::next(it), buf.end(), c)) == buf.end())
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
rval[i++] = '?';
|
rval[i++] = '?';
|
||||||
}
|
}
|
||||||
else if (*it == '`')
|
else if (*it == '`')
|
||||||
{
|
{
|
||||||
auto start = it;
|
auto start = it;
|
||||||
it = find_char(std::next(it), buf.end(), '`');
|
if ((it = find_char(std::next(it), buf.end(), '`')) == buf.end())
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
std::copy(start, it, &rval[i]);
|
std::copy(start, it, &rval[i]);
|
||||||
i += std::distance(start, it);
|
i += std::distance(start, it);
|
||||||
rval[i++] = '`';
|
rval[i++] = '`';
|
||||||
@ -1544,6 +1560,8 @@ std::string get_canonical(GWBUF* querybuf)
|
|||||||
{
|
{
|
||||||
rval[i++] = *it;
|
rval[i++] = *it;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mxb_assert(it != buf.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Shrink the buffer so that the internal bookkeeping of std::string remains up to date
|
// Shrink the buffer so that the internal bookkeeping of std::string remains up to date
|
||||||
|
@ -9,3 +9,7 @@ SELECT ? /*! +? */;
|
|||||||
SELECT ? /*!? +? */;
|
SELECT ? /*!? +? */;
|
||||||
SELECT ? /*M! +? */;
|
SELECT ? /*M! +? */;
|
||||||
SELECT ? /*M!? +? */;
|
SELECT ? /*M!? +? */;
|
||||||
|
SELECT ?
|
||||||
|
SELECT ?
|
||||||
|
SELECT ?
|
||||||
|
SELECT ?
|
||||||
|
@ -9,3 +9,7 @@ SELECT 1 /*! +1 */;
|
|||||||
SELECT 1 /*!50101 +1 */;
|
SELECT 1 /*!50101 +1 */;
|
||||||
SELECT 2 /*M! +1 */;
|
SELECT 2 /*M! +1 */;
|
||||||
SELECT 2 /*M!50101 +1 */;
|
SELECT 2 /*M!50101 +1 */;
|
||||||
|
SELECT 2 /*
|
||||||
|
SELECT 2 /*
|
||||||
|
SELECT 2 /*/
|
||||||
|
SELECT 2 /**/
|
||||||
|
Reference in New Issue
Block a user