1
0
mirror of https://github.com/MariaDB/server.git synced 2026-10-23 18:49:29 +03:00

take old_mode and deprecation.h changes from 11.8-13.0

cherry-pick commits 9ecec1f730, 24fd8c7856, 3e97105975

* make it easier to add more old-mode values
* update deprecation.h to match changes in versioning
This commit is contained in:
Sergei Golubchik
2024-05-19 16:51:50 +02:00
parent 3e19fef94f
commit e03abdfec3
4 changed files with 33 additions and 28 deletions

View File

@@ -6,12 +6,14 @@ In the current release model, versions are released like the following
Q1 Q2 Q3 Q4
2022 10.7 10.8 10.9 10.10
2023 10.11-LTS 11.0 11.1 11.2
2024 11.3 11.4 11.5 11.6
2025 11.7-LTS 12.0 12.1 12.2
2026 12.3 12.4 12.5 12.6
2027 12.7-LTS 13.0 13.1 13.2
2028 13.3 13.4 13.5 13.6
2029 13.7-LTS 14.0 14.1 14.2
2024 11.3 11.4-LTS 11.5 11.6
2025 11.7 11.8-LTS 12.0 12.1
2026 12.2 12.3-LTS 13.0 13.1
2027 13.2 13.3-LTS 14.0 14.1
2028 14.2 14.3-LTS 15.0 15.1
2029 15.2 15.3-LTS 16.0 16.1
2030 16.2 16.3-LTS 17.0 17.1
2031 17.2 17.3-LTS 18.0 18.1
...
A deprecated feature can be removed only when all releases when it's
@@ -28,9 +30,12 @@ template<uint V> static inline void check_deprecated_version(void)
{
static_assert (
V <= 1004 ? MYSQL_VERSION_ID < 110500 : /* until 10.4 EOL */
V <= 1005 ? MYSQL_VERSION_ID < 120100 : /* until 10.5 EOL */
V <= 1010 ? MYSQL_VERSION_ID < 120500 : /* until 10.6 EOL */
V <= 1106 ? MYSQL_VERSION_ID < 130400 : /* until 10.11 EOL */
V <= 1005 ? MYSQL_VERSION_ID < 120000 : /* until 10.5 EOL */
V <= 1010 ? MYSQL_VERSION_ID < 130000 : /* until 10.6 EOL */
V <= 1103 ? MYSQL_VERSION_ID < 140300 : /* until 10.11 EOL */
V <= 1107 ? MYSQL_VERSION_ID < 160000 : /* until 11.4 EOL */
V <= 1202 ? MYSQL_VERSION_ID < 170000 : /* until 11.8 EOL */
V <= 1302 ? MYSQL_VERSION_ID < 180000 : /* until 12.3 EOL */
V == 999999, /* only for sys_var::do_deprecated_warning() */
"check_deprecated_version failed"
);

View File

@@ -4341,7 +4341,7 @@ static int init_common_variables()
myf utf8_flag= global_system_variables.old_behavior &
OLD_MODE_UTF8_IS_UTF8MB3 ? MY_UTF8_IS_UTF8MB3 : 0;
old_mode_deprecated_warnings(0, global_system_variables.old_behavior);
old_mode_deprecated_warnings(global_system_variables.old_behavior);
if (character_set_collations_str[0])
{

View File

@@ -213,7 +213,7 @@ enum enum_binlog_row_image {
#define OLD_MODE_DEFAULT_VALUE OLD_MODE_UTF8_IS_UTF8MB3
void old_mode_deprecated_warnings(THD *thd, ulonglong v);
void old_mode_deprecated_warnings(ulonglong v);
/*

View File

@@ -4023,34 +4023,34 @@ static Sys_var_set Sys_sql_mode(
static const char *old_mode_names[]=
{
"NO_DUP_KEY_WARNINGS_WITH_IGNORE", // deprecated since 11.3
"NO_PROGRESS_INFO", // deprecated since 11.3
"ZERO_DATE_TIME_CAST", // deprecated since 11.3
"UTF8_IS_UTF8MB3",
"IGNORE_INDEX_ONLY_FOR_JOIN", // deprecated since 11.3
"COMPAT_5_1_CHECKSUM", // deprecated since 11.3
"NO_NULL_COLLATION_IDS", // deprecated since 11.3
"LOCK_ALTER_TABLE_COPY", // deprecated since 11.3
"NO_DUP_KEY_WARNINGS_WITH_IGNORE", // 0: deprecated since 11.3
"NO_PROGRESS_INFO", // 1: deprecated since 11.3
"ZERO_DATE_TIME_CAST", // 2: deprecated since 11.3
"UTF8_IS_UTF8MB3", // 3: on by default
"IGNORE_INDEX_ONLY_FOR_JOIN", // 4: deprecated since 11.3
"COMPAT_5_1_CHECKSUM", // 5: deprecated since 11.3
"NO_NULL_COLLATION_IDS", // 6: deprecated since 11.3
"LOCK_ALTER_TABLE_COPY", // 7: deprecated since 11.3
0
};
void old_mode_deprecated_warnings(THD *thd, ulonglong v)
void old_mode_deprecated_warnings(ulonglong v)
{
v &= ~OLD_MODE_DEFAULT_VALUE;
for (uint i=0; old_mode_names[i]; i++)
if ((1ULL<<i) & v)
{
if (thd)
warn_deprecated<1103>(thd, old_mode_names[i]);
else
sql_print_warning("--old-mode='%s' is deprecated and will be "
"removed in a future release", old_mode_names[i]);
}
sql_print_warning("--old-mode='%s' is deprecated and will be "
"removed in a future release", old_mode_names[i]);
}
static bool old_mode_deprecated(sys_var *self, THD *thd, set_var *var)
{
old_mode_deprecated_warnings(thd, var->save_result.ulonglong_value);
ulonglong v= var->save_result.ulonglong_value & ~OLD_MODE_DEFAULT_VALUE;
uint i= 0;
for (; i <= 7; i++)
if ((1ULL<<i) & v)
warn_deprecated<1103>(thd, old_mode_names[i]);
DBUG_ASSERT(old_mode_names[i] == 0); // all modes were used up above
return false;
}