diff options
author | unknown <monty@mashka.mysql.fi> | 2003-03-16 16:26:59 +0200 |
---|---|---|
committer | unknown <monty@mashka.mysql.fi> | 2003-03-16 16:26:59 +0200 |
commit | d5292ebfb668db3832ab8808ca5d594a3728de0b (patch) | |
tree | f1261b91e246fd614f771c3a209a6273ac150730 | |
parent | fcf035a0d85bc49c8c071246ce22a19f2fea395b (diff) | |
parent | 11fdb2d387f563e44821549a1f7382e752ec6a09 (diff) | |
download | mariadb-git-d5292ebfb668db3832ab8808ca5d594a3728de0b.tar.gz |
Merge bk-internal.mysql.com:/home/bk/mysql-3.23
into mashka.mysql.fi:/home/my/mysql-3.23
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | innobase/row/row0mysql.c | 2 | ||||
-rw-r--r-- | innobase/row/row0sel.c | 21 |
3 files changed, 10 insertions, 15 deletions
diff --git a/configure.in b/configure.in index a8aacc6a6bf..cc6f3a79b69 100644 --- a/configure.in +++ b/configure.in @@ -4,7 +4,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(sql/mysqld.cc) AC_CANONICAL_SYSTEM # The Docs Makefile.am parses this line! -AM_INIT_AUTOMAKE(mysql, 3.23.56) +AM_INIT_AUTOMAKE(mysql, 3.23.57) AM_CONFIG_HEADER(config.h) PROTOCOL_VERSION=10 diff --git a/innobase/row/row0mysql.c b/innobase/row/row0mysql.c index f0aa413a64c..ae2f3514f4d 100644 --- a/innobase/row/row0mysql.c +++ b/innobase/row/row0mysql.c @@ -6,7 +6,7 @@ Contains also create table and other data dictionary operations. Created 9/17/2000 Heikki Tuuri *******************************************************/ - + #include "row0mysql.h" #ifdef UNIV_NONINL diff --git a/innobase/row/row0sel.c b/innobase/row/row0sel.c index 5f260634149..c9de502eb9a 100644 --- a/innobase/row/row0sel.c +++ b/innobase/row/row0sel.c @@ -2115,19 +2115,14 @@ row_sel_store_mysql_rec( extern_field_heap = NULL; } } else { - /* MySQL sometimes seems to copy the 'data' - pointed to by a BLOB field even if the field - has been marked to contain the SQL NULL value. - This caused seg faults reported by two users. - Set the BLOB length to 0 and the data pointer - to NULL to avoid a seg fault. */ - - if (templ->type == DATA_BLOB) { - row_sel_field_store_in_mysql_format( - mysql_rec + templ->mysql_col_offset, - templ->mysql_col_len, NULL, - 0, templ->type, templ->is_unsigned); - } + /* MySQL seems to assume the field for an SQL NULL + value is set to zero. Not taking this into account + caused seg faults with NULL BLOB fields, and + bug number 154 in the MySQL bug database: GROUP BY + and DISTINCT could treat NULL values inequal. */ + + memset(mysql_rec + templ->mysql_col_offset, '\0', + templ->mysql_col_len); if (!templ->mysql_null_bit_mask) { fprintf(stderr, |