mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 20:07:13 +02:00
Bug #58137 char(0) column cause: my_gcvt: Assertion `width > 0 && to != ((void *)0)' failed
This commit is contained in:
parent
46dd9e8658
commit
0654c94ca2
3 changed files with 23 additions and 3 deletions
|
|
@ -607,3 +607,12 @@ SELECT floor(log10(format(concat_ws(5445796E25, 5306463, 30837), -358821)))
|
||||||
as foo;
|
as foo;
|
||||||
foo
|
foo
|
||||||
2
|
2
|
||||||
|
#
|
||||||
|
# Bug #58137 char(0) column cause:
|
||||||
|
# my_gcvt: Assertion `width > 0 && to != ((void *)0)' failed
|
||||||
|
#
|
||||||
|
CREATE TABLE t1(a char(0));
|
||||||
|
INSERT INTO t1 (SELECT -pi());
|
||||||
|
Warnings:
|
||||||
|
Warning 1265 Data truncated for column 'a' at row 1
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
|
||||||
|
|
@ -464,3 +464,11 @@ SELECT -9223372036854775808 MOD -1;
|
||||||
--echo #
|
--echo #
|
||||||
SELECT floor(log10(format(concat_ws(5445796E25, 5306463, 30837), -358821)))
|
SELECT floor(log10(format(concat_ws(5445796E25, 5306463, 30837), -358821)))
|
||||||
as foo;
|
as foo;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug #58137 char(0) column cause:
|
||||||
|
--echo # my_gcvt: Assertion `width > 0 && to != ((void *)0)' failed
|
||||||
|
--echo #
|
||||||
|
CREATE TABLE t1(a char(0));
|
||||||
|
INSERT INTO t1 (SELECT -pi());
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
|
||||||
|
|
@ -6327,10 +6327,13 @@ int Field_str::store(double nr)
|
||||||
ASSERT_COLUMN_MARKED_FOR_WRITE;
|
ASSERT_COLUMN_MARKED_FOR_WRITE;
|
||||||
char buff[DOUBLE_TO_STRING_CONVERSION_BUFFER_SIZE];
|
char buff[DOUBLE_TO_STRING_CONVERSION_BUFFER_SIZE];
|
||||||
uint local_char_length= field_length / charset()->mbmaxlen;
|
uint local_char_length= field_length / charset()->mbmaxlen;
|
||||||
size_t length;
|
size_t length= 0;
|
||||||
my_bool error;
|
my_bool error= (local_char_length == 0);
|
||||||
|
|
||||||
|
// my_gcvt() requires width > 0, and we may have a CHAR(0) column.
|
||||||
|
if (!error)
|
||||||
|
length= my_gcvt(nr, MY_GCVT_ARG_DOUBLE, local_char_length, buff, &error);
|
||||||
|
|
||||||
length= my_gcvt(nr, MY_GCVT_ARG_DOUBLE, local_char_length, buff, &error);
|
|
||||||
if (error)
|
if (error)
|
||||||
{
|
{
|
||||||
if (table->in_use->abort_on_warning)
|
if (table->in_use->abort_on_warning)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue