1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

Merge branch '10.7' into 10.8

This commit is contained in:
Oleksandr Byelkin
2022-02-04 14:50:25 +01:00
907 changed files with 20182 additions and 6211 deletions

View File

@@ -35,21 +35,21 @@ protected:
character set. No memory is allocated.
@retval A pointer to the str_value member.
*/
virtual String *make_empty_result()
virtual String *make_empty_result(String *str)
{
/*
Reset string length to an empty string. We don't use str_value.set() as
we don't want to free and potentially have to reallocate the buffer
for each call.
*/
if (!str_value.is_alloced())
str_value.set("", 0, collation.collation); /* Avoid null ptrs */
if (!str->is_alloced())
str->set("", 0, collation.collation); /* Avoid null ptrs */
else
{
str_value.length(0); /* Reuse allocated area */
str_value.set_charset(collation.collation);
str->length(0); /* Reuse allocated area */
str->set_charset(collation.collation);
}
return &str_value;
return str;
}
public:
Item_str_func(THD *thd): Item_func(thd) { decimals=NOT_FIXED_DEC; }
@@ -627,7 +627,7 @@ class Item_func_substr_oracle :public Item_func_substr
protected:
longlong get_position() override
{ longlong pos= args[1]->val_int(); return pos == 0 ? 1 : pos; }
String *make_empty_result() override
String *make_empty_result(String *str) override
{ null_value= 1; return NULL; }
public:
Item_func_substr_oracle(THD *thd, Item *a, Item *b):
@@ -676,7 +676,7 @@ protected:
String *trimmed_value(String *res, uint32 offset, uint32 length)
{
if (length == 0)
return make_empty_result();
return make_empty_result(&tmp_value);
tmp_value.set(*res, offset, length);
/*
@@ -717,7 +717,7 @@ public:
class Item_func_trim_oracle :public Item_func_trim
{
protected:
String *make_empty_result() override
String *make_empty_result(String *str) override
{ null_value= 1; return NULL; }
LEX_CSTRING func_name_ext() const override
{
@@ -769,7 +769,7 @@ public:
class Item_func_ltrim_oracle :public Item_func_ltrim
{
protected:
String *make_empty_result() override
String *make_empty_result(String *str) override
{ null_value= 1; return NULL; }
LEX_CSTRING func_name_ext() const override
{
@@ -817,7 +817,7 @@ public:
class Item_func_rtrim_oracle :public Item_func_rtrim
{
protected:
String *make_empty_result() override
String *make_empty_result(String *str) override
{ null_value= 1; return NULL; }
LEX_CSTRING func_name_ext() const override
{
@@ -1059,7 +1059,7 @@ public:
String *val_str(String *) override;
bool fix_length_and_dec() override
{
max_length= MAX_FIELD_NAME * system_charset_info->mbmaxlen;
max_length= NAME_CHAR_LEN * system_charset_info->mbmaxlen;
set_maybe_null();
return FALSE;
}
@@ -1414,7 +1414,7 @@ public:
class Item_func_rpad_oracle :public Item_func_rpad
{
String *make_empty_result() override
String *make_empty_result(String *str) override
{ null_value= 1; return NULL; }
public:
Item_func_rpad_oracle(THD *thd, Item *arg1, Item *arg2, Item *arg3):
@@ -1457,7 +1457,7 @@ public:
class Item_func_lpad_oracle :public Item_func_lpad
{
String *make_empty_result() override
String *make_empty_result(String *str) override
{ null_value= 1; return NULL; }
public:
Item_func_lpad_oracle(THD *thd, Item *arg1, Item *arg2, Item *arg3):
@@ -1774,7 +1774,6 @@ public:
(cs->mbmaxlen > 1 || !(cs->state & MY_CS_NONASCII))));
}
}
bool is_json_type() override { return args[0]->is_json_type(); }
String *val_str(String *) override;
longlong val_int() override
{