Hi, Marko! On Jan 03, Marko Mäkelä wrote:
revision-id: 3617add6975 (mariadb-10.6.1-252-g3617add6975) parent(s): bc90f5d6967 author: Marko Mäkelä committer: Sergei Golubchik timestamp: 2021-12-15 19:54:34 +0100 message:
MDEV-27208: Extend CRC32() and implement CRC32C()
We used to define a native unary function crc32() that computes the CRC-32 of a string using the ISO 3309 polynomial that is being used by zlib and many others.
Suggestions: 1. one class for both CRC functions, like class Item_func_crc32 :public Item_long_func { extern "C" unsigned (*crc_func)(unsigned int, const char *, size_t); and in the constructor crc_func= crc_variant ? my_crc32 : my_crc32c; there's no need to duplicate everything. 2. swap the arguments: CRC32(CRC32("Maria"), "DB") = CRC32("MariaDB") looks kind of better than CRC32("DB", CRC32("Maria")) = CRC32("MariaDB") Regards, Sergei VP of MariaDB Server Engineering and security@mariadb.org