server
server copied to clipboard
MDEV-34112 Replace one operator name keyword
- [x] The Jira issue number for this PR is: MDEV-34112
Description
Alternative operator name keywords like and
, or
, xor
, etc., are uncommon in MariaDB and can cause obscure build errors when the GCC flag -fno-operator-names
is applied.
Description of -fno-operator-names
:
https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html
Do not treat the operator name keywords
and
,bitand
,bitor
,compl
,not
,or
andxor
as synonyms as keywords.
Part of the build errors:
/local/p4clients/pkgbuild-LdLa_/workspace/src/RDSMariaDB/sql/sql_select.cc:11171:28: error: expected ‘)’ before ‘and’
11171 | DBUG_ASSERT(sel >= 0.0 and sel <= 1.00001);
| ^~~
/local/p4clients/pkgbuild-LdLa_/workspace/src/RDSMariaDB/include/my_global.h:372:44: note: in definition of macro ‘unlikely’
372 | #define unlikely(x) __builtin_expect(((x) != 0),0)
| ^
...
The build failure is caused by using alternative operator name keywords and
introduced in commit b66cdbd1e.
Replace the and
keyword with &&
and target on MariaDB 11.0+ branches which include the commit.
Release Notes
N/A
How can this PR be tested?
This is the only occurrence I found using the operator names. With this change, build succeeds with GCC flag -fno-operator-names
.
Existing MTR tests and builds will verify there's no regression.
Basing the PR against the correct MariaDB version
- [x] This is a bug fix and the PR is based against the earliest maintained branch in which the bug can be reproduced.
PR quality check
- [x] I checked the CODING_STANDARDS.md file and my PR conforms to this where appropriate.
- [x] For any trivial modifications to the PR, I am ok with the reviewer making the changes themselves.
Copyright
All new code of the whole pull request, including one or several files that are either new files or modified ones, are contributed under the BSD-new license. I am contributing on behalf of my employer Amazon Web Services, Inc.
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.
I'll also push 11a34e746ae into 10.5