mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Code cleanups during code reviews
Ensure we get error if INSERT IGNORE ... SELECT fails Fixed wrong key_part->key_length usage in index_merge
This commit is contained in:
@ -1549,15 +1549,19 @@ decimal_round(decimal_t *from, decimal_t *to, int scale,
|
||||
}
|
||||
else
|
||||
{
|
||||
while (unlikely(*buf1 == 0) && buf1 >= to->buf)
|
||||
buf1--;
|
||||
if (buf1 < to->buf)
|
||||
for (;;)
|
||||
{
|
||||
decimal_make_zero(to);
|
||||
return E_DEC_OK;
|
||||
if (likely(*buf1))
|
||||
break;
|
||||
if (buf1-- == to->buf)
|
||||
{
|
||||
decimal_make_zero(to);
|
||||
return E_DEC_OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (scale<0) scale=0;
|
||||
if (scale<0)
|
||||
scale=0;
|
||||
|
||||
done:
|
||||
to->frac=scale;
|
||||
@ -1727,11 +1731,14 @@ static int do_sub(decimal_t *from1, decimal_t *from2, decimal_t *to)
|
||||
while (buf1 <=end1 && buf2 <= end2 && *buf1 == *buf2)
|
||||
buf1++, buf2++;
|
||||
if (buf1 <= end1)
|
||||
{
|
||||
if (buf2 <= end2)
|
||||
carry= *buf2 > *buf1;
|
||||
else
|
||||
carry= 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (buf2 <= end2)
|
||||
carry=1;
|
||||
else /* short-circuit everything: from1 == from2 */
|
||||
@ -1741,6 +1748,7 @@ static int do_sub(decimal_t *from1, decimal_t *from2, decimal_t *to)
|
||||
decimal_make_zero(to);
|
||||
return E_DEC_OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (to == 0) /* decimal_cmp() */
|
||||
@ -1937,10 +1945,18 @@ int decimal_mul(decimal_t *from1, decimal_t *from2, decimal_t *to)
|
||||
{
|
||||
dec1 *buf= to->buf;
|
||||
dec1 *end= to->buf + intg0 + frac0;
|
||||
for (; (buf<end) && !*buf; buf++);
|
||||
if (buf == end)
|
||||
/* So we got decimal zero */
|
||||
decimal_make_zero(to);
|
||||
DBUG_ASSERT(buf != end);
|
||||
for (;;)
|
||||
{
|
||||
if (*buf)
|
||||
break;
|
||||
if (++buf == end)
|
||||
{
|
||||
/* We got decimal zero */
|
||||
decimal_make_zero(to);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return error;
|
||||
}
|
||||
|
Reference in New Issue
Block a user