1
0
mirror of https://github.com/MariaDB/server.git synced 2026-10-23 18:49:29 +03:00
Files
mariadb/include
Vladislav Vaintroub d1034cb490 MDEV-39150 Some data conversion macros fail to use memcpy()
MDEV-37788 converted the uintNkorr() and intNstore() macros to use
memcpy() and byte swap intrinsics, but the floating point and short/long
conversion macros in big_endian.h and myisampack.h still accessed data
one byte at a time, and those in little_endian.h were a mix of both.
Compilers may emit slow byte-at-a-time loads and stores for such code.

Reimplement the macros with memcpy(), and with MY_BSWAP32/MY_BSWAP64
where the byte order differs from the host. big_endian.h and
little_endian.h no longer differ, so move the macros to my_byteorder.h
and remove the two headers, which are no longer installed. Implement
mi_float4store() etc. in myisampack.h with the same helper macros.

Remove the unused ulongget() macro, and the code for the mixed-endian
floating point layout (a little-endian CPU with big-endian floating
point word order) from the macros, change_double_for_sort() and dtoa.c.
It only applied to the obsolete ARM FPA format.

Reimplement mach_double_read(), mach_double_write(), mach_float_read()
and mach_float_write() in InnoDB with float8get(), float8store(),
float4get() and float4store(), instead of copying bytes in a loop.

The stored formats do not change. The unit test byte_order-t now checks
the byte layout of the floating point macros and the sign extension of
the native byte order macros, so no MTR test is added.
2026-10-21 13:37:42 +02:00
..
2026-06-15 12:50:45 +02:00
2022-02-09 19:13:52 +01:00
2022-01-21 16:02:34 +01:00
2024-11-29 13:43:17 +02:00
2025-11-11 10:29:45 +02:00
2026-08-19 08:40:05 +02:00
2026-07-28 13:14:38 +02:00
2023-01-03 17:08:42 +02:00
…
2023-12-18 11:19:04 +01:00
2023-04-24 12:43:47 +02:00
2023-02-10 13:03:01 +02:00
2026-10-15 20:25:34 +02:00
2024-03-28 09:16:57 +02:00
2023-11-08 17:09:44 +01:00
2023-07-26 15:13:43 +03:00
2026-07-24 17:06:39 +02:00
2022-12-20 08:55:48 +11:00
2023-01-04 14:52:25 +02:00
2023-02-10 12:59:36 +02:00
2026-08-19 08:40:05 +02:00
…
…
2025-06-17 09:50:22 +02:00
2022-07-31 14:54:37 +02:00
2026-10-15 20:25:34 +02:00
…
…
2024-12-02 11:35:34 +02:00
2025-09-04 18:08:39 +03:00
2026-10-15 20:25:34 +02:00
2020-10-29 13:38:38 +02:00
2023-02-10 10:45:25 +01:00
…
…
2023-08-15 10:16:12 +02:00
2022-12-20 08:55:48 +11:00
…