diff options
author | unknown <petr/cps@outpost.site> | 2006-12-04 03:07:44 +0300 |
---|---|---|
committer | unknown <petr/cps@outpost.site> | 2006-12-04 03:07:44 +0300 |
commit | ebd5aec15e4901893711569e174cd9efbcc712e0 (patch) | |
tree | c8d6ec74d364e3dd92f1a6ce1bcc6ad3727d6acc /storage | |
parent | 23776f53ff8058f3bc2eb01f61f95ff718adb5ef (diff) | |
download | mariadb-git-ebd5aec15e4901893711569e174cd9efbcc712e0.tar.gz |
Fix Bug #21328 mysqld issues warnings on ALTER CSV table to MyISAM
mysql-test/r/csv.result:
update result file
mysql-test/r/log_tables.result:
log_tables test contains alter of a CSV table with
NULLs which results in warnings. In fact this is how
the bug noticed. So, now when it is fixed we should
update result file.
mysql-test/t/csv.test:
add a test for the bug
storage/csv/ha_tina.cc:
We should write 0 to the data file in the
case we meet NULL. CSV does not support
NULL values internally and we shouldn't
distinguish them from 0 when writing a row
(the alternative is to implement full NULL
support). Otherwise other routines (such as
Field::check_int() become confused).
In 5.0 NULLs are stored as zeroes. In 5.1 it
somehow turned into empty string. Which is wrong.
Diffstat (limited to 'storage')
-rw-r--r-- | storage/csv/ha_tina.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/storage/csv/ha_tina.cc b/storage/csv/ha_tina.cc index f7e5aa9d50c..6a6bc52d6ad 100644 --- a/storage/csv/ha_tina.cc +++ b/storage/csv/ha_tina.cc @@ -542,14 +542,16 @@ int ha_tina::encode_quote(byte *buf) const char *end_ptr; /* - Write an empty string to the buffer in case of a NULL value. + CSV does not support nulls. Write quoted 0 to the buffer. In fact, + (*field)->val_str(&attribute,&attribute) would usually return 0 + in this case but we write it explicitly here. Basically this is a safety check, as no one ensures that the field content is cleaned up every time we use Field::set_null() in the code. */ if ((*field)->is_null()) { - buffer.append(STRING_WITH_LEN("\"\",")); + buffer.append(STRING_WITH_LEN("\"0\",")); continue; } else |