mirror of
https://github.com/MariaDB/server.git
synced 2026-05-07 07:35:32 +02:00
reporting empty result added in case of max/min optimisation of ALL/ANY/SOME subqueries
fixed null processing in NOT operation used in ALL subquery (Bug #6247)
This commit is contained in:
parent
078597564d
commit
f5e253dc2f
11 changed files with 230 additions and 26 deletions
|
|
@ -403,19 +403,22 @@ class Item_sum_hybrid :public Item_sum
|
|||
int cmp_sign;
|
||||
table_map used_table_cache;
|
||||
CHARSET_INFO *cmp_charset;
|
||||
bool was_values; // was checked at least some values (for max/min only)
|
||||
|
||||
public:
|
||||
Item_sum_hybrid(Item *item_par,int sign)
|
||||
:Item_sum(item_par), sum(0.0), sum_int(0),
|
||||
hybrid_type(INT_RESULT), hybrid_field_type(FIELD_TYPE_LONGLONG),
|
||||
cmp_sign(sign), used_table_cache(~(table_map) 0),
|
||||
cmp_charset(&my_charset_bin)
|
||||
cmp_charset(&my_charset_bin), was_values(TRUE)
|
||||
{}
|
||||
Item_sum_hybrid(THD *thd, Item_sum_hybrid *item):
|
||||
Item_sum(thd, item), value(item->value),
|
||||
sum(item->sum), sum_int(item->sum_int), hybrid_type(item->hybrid_type),
|
||||
hybrid_field_type(item->hybrid_field_type),cmp_sign(item->cmp_sign),
|
||||
used_table_cache(item->used_table_cache), cmp_charset(item->cmp_charset) {}
|
||||
used_table_cache(item->used_table_cache), cmp_charset(item->cmp_charset),
|
||||
was_values(TRUE)
|
||||
{}
|
||||
bool fix_fields(THD *, TABLE_LIST *, Item **);
|
||||
table_map used_tables() const { return used_table_cache; }
|
||||
bool const_item() const { return !used_table_cache; }
|
||||
|
|
@ -434,6 +437,8 @@ class Item_sum_hybrid :public Item_sum
|
|||
void min_max_update_real_field();
|
||||
void min_max_update_int_field();
|
||||
void cleanup();
|
||||
bool any_value() { return was_values; }
|
||||
void no_rows_in_result();
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue