maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #13040
Re: 3617add6975: MDEV-27208: Extend CRC32() and implement CRC32C()
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@xxxxxxxxxxx
Follow ups