• Hugo Wen's avatar
    MDEV-34112 Replace one operator name keyword · d1e230d9
    Hugo Wen authored
    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` and `xor` 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 b66cdbd1.
    Replace the `and` keyword with `&&` and target on MariaDB 11.0+ branches
    which include the commit.
    
    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.
    d1e230d9
sql_select.cc 1.06 MB
The source could not be displayed because it is larger than 1 MB. You can load it anyway or download it instead.