Commit b9fc8e1f authored by ramil@mysql.com's avatar ramil@mysql.com
Browse files

Bug #17896: MIN of CASE WHEN returns non-minimum value!

- after review fixes
parent 78adb4bc
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -39,20 +39,24 @@ static void agg_result_type(Item_result *type, Item **items, uint nitems)
{
  Item **item, **item_end;

  /* Note: NULL items don't affect the result type */
  *type= STRING_RESULT;
  /* Skip beginning NULL items */
  for (item= items, item_end= item + nitems; item < item_end; item++)
  {
    if ((*item)->type() != Item::NULL_ITEM)
    {
      *type= (*item)->result_type();
      item++;
      break;
    }
  }
  /* Combine result types. Note: NULL items don't affect the result */
  for (; item < item_end; item++)
  {
    if ((*item)->type() != Item::NULL_ITEM)
      *type= item_store_type(type[0], (*item)->result_type());
  }
}

static void agg_cmp_type(Item_result *type, Item **items, uint nitems)
{