php-src/ext/mysqlnd
Niels Dossche a8c927005e Skip validity and length calls when the byte cannot be part of a multibyte sequence
Almost every character set can be given a number N such that a multibyte
sequence starts with a byte higher than that number N. This allows us to
skip a lot of work. To ensure the correctness of this, a sanity check is
implemented that exhaustively tries every 4-byte sequence for every
character set and checks for consistency issues.

This finally gives:
  Time (mean ± σ):     120.2 ms ±   1.2 ms    [User: 116.9 ms, System: 2.8 ms]
  Range (min … max):   118.0 ms … 122.9 ms    24 runs
2024-03-07 20:27:18 +01:00
..
config-win.h build/php.m4: remove test for integer types (#10304) 2023-01-13 11:51:15 +00:00
config.w32
config9.m4 Remove redundant code in ext/mysqlnd build (#12384) 2023-10-09 15:23:52 +01:00
CREDITS
mysql_float_to_double.h Revert GH-10220 2023-01-16 12:27:33 +01:00
mysqlnd.h Skip validity and length calls when the byte cannot be part of a multibyte sequence 2024-03-07 20:27:18 +01:00
mysqlnd_alloc.c Fix potential heap corruption due to alignment mismatch 2022-10-13 11:47:24 +02:00
mysqlnd_alloc.h Implement mysqlnd_set_persistent_string (#7371) 2021-08-20 12:03:46 +01:00
mysqlnd_auth.c Fix GH-11438: mysqlnd fails to authenticate with sha256_password accounts using passwords longer than 19 characters 2023-08-03 20:28:11 +02:00
mysqlnd_auth.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
mysqlnd_block_alloc.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
mysqlnd_block_alloc.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
mysqlnd_charset.c Skip validity and length calls when the byte cannot be part of a multibyte sequence 2024-03-07 20:27:18 +01:00
mysqlnd_charset.h Fixed handshake response charset. (#13470) 2024-03-04 21:53:52 +09:00
mysqlnd_commands.c Fixed handshake response charset. (#13470) 2024-03-04 21:53:52 +09:00
mysqlnd_commands.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
mysqlnd_connection.c Merge branch 'PHP-8.2' 2023-08-16 20:34:48 +01:00
mysqlnd_connection.h Replace macro with inline function (#7365) 2021-08-13 20:03:26 +01:00
mysqlnd_debug.c Use more compact representation for packed arrays. 2021-11-03 15:18:26 +03:00
mysqlnd_debug.h Fix printf formats in mysql debug logging 2021-06-16 16:09:06 +02:00
mysqlnd_driver.c Skip validity and length calls when the byte cannot be part of a multibyte sequence 2024-03-07 20:27:18 +01:00
mysqlnd_enum_n_def.h Update comment regarding MySQL user max length 2023-12-10 17:30:08 +01:00
mysqlnd_ext_plugin.c Fix incorrect function/method names in DBG_ENTER() (#11554) 2023-06-29 13:13:55 +01:00
mysqlnd_ext_plugin.h Mark various functions with void arguments. 2021-05-12 14:55:53 +01:00
mysqlnd_libmysql_compat.h Remove get_parameter_metadata 2021-07-29 14:21:13 +01:00
mysqlnd_loaddata.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
mysqlnd_plugin.c Use more compact representation for packed arrays. 2021-11-03 15:18:26 +03:00
mysqlnd_plugin.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
mysqlnd_portability.h Replace php_stdint.h header with standard headers (#8613) 2022-05-29 11:20:56 +01:00
mysqlnd_priv.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
mysqlnd_protocol_frame_codec.c Merge branch 'PHP-8.1' into PHP-8.2 2023-08-10 15:25:37 +01:00
mysqlnd_protocol_frame_codec.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
mysqlnd_ps.c Merge branch 'PHP-8.2' into PHP-8.3 2024-01-19 23:35:23 +01:00
mysqlnd_ps.h Mark various functions with void arguments. 2021-05-12 14:55:53 +01:00
mysqlnd_ps_codec.c [skip ci] Fix various typos and grammar issues (#11143) 2023-04-28 11:05:32 +02:00
mysqlnd_read_buffer.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
mysqlnd_read_buffer.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
mysqlnd_result.c Merge branch 'PHP-8.2' into PHP-8.3 2023-11-27 14:02:19 +01:00
mysqlnd_result.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
mysqlnd_result_meta.c Fix incorrect function/method names in DBG_ENTER() (#11554) 2023-06-29 13:13:55 +01:00
mysqlnd_result_meta.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
mysqlnd_reverse_api.c Use more compact representation for packed arrays. 2021-11-03 15:18:26 +03:00
mysqlnd_reverse_api.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
mysqlnd_statistics.c Drop mysqlnd statistics triggers 2021-07-29 14:21:13 +01:00
mysqlnd_statistics.h Drop mysqlnd statistics triggers 2021-07-29 14:21:13 +01:00
mysqlnd_structs.h Skip validity and length calls when the byte cannot be part of a multibyte sequence 2024-03-07 20:27:18 +01:00
mysqlnd_vio.c Merge branch 'PHP-8.1' into PHP-8.2 2023-08-16 20:33:52 +01:00
mysqlnd_vio.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
mysqlnd_wireprotocol.c Merge branch 'PHP-8.3' 2024-02-10 14:05:26 +01:00
mysqlnd_wireprotocol.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_mysqlnd.c Merge branch 'PHP-8.2' into PHP-8.3 2023-09-26 21:45:02 +02:00
php_mysqlnd.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00