summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorunknown <svoj@april.(none)>2007-06-22 23:14:59 +0500
committerunknown <svoj@april.(none)>2007-06-22 23:14:59 +0500
commit58e3a1e890f753391165e7d9df26903921e50e96 (patch)
tree15912d195b85f8283d686a7d7a5b283cfcc3b50e /storage
parente148eb473222babd262eb7200621a1e1cd2b4938 (diff)
parent0a91dbcf53e021155e56c02ee50b4314ffad7ccd (diff)
downloadmariadb-git-58e3a1e890f753391165e7d9df26903921e50e96.tar.gz
Merge mysql.com:/home/svoj/devel/bk/mysql-5.1-engines
into mysql.com:/home/svoj/devel/mysql/BUG28971/mysql-5.1-engines mysql-test/r/csv.result: Auto merged mysql-test/t/csv.test: Auto merged storage/csv/ha_tina.cc: Auto merged
Diffstat (limited to 'storage')
-rw-r--r--storage/csv/ha_tina.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/storage/csv/ha_tina.cc b/storage/csv/ha_tina.cc
index 6de153c82d7..e503f639d58 100644
--- a/storage/csv/ha_tina.cc
+++ b/storage/csv/ha_tina.cc
@@ -590,6 +590,7 @@ int ha_tina::find_current_row(uchar *buf)
int eoln_len;
my_bitmap_map *org_bitmap;
int error;
+ bool read_all;
DBUG_ENTER("ha_tina::find_current_row");
/*
@@ -601,6 +602,8 @@ int ha_tina::find_current_row(uchar *buf)
local_saved_data_file_length, &eoln_len)) == 0)
DBUG_RETURN(HA_ERR_END_OF_FILE);
+ /* We must read all columns in case a table is opened for update */
+ read_all= !bitmap_is_clear_all(table->write_set);
/* Avoid asserts in ::store() for columns that are not going to be updated */
org_bitmap= dbug_tmp_use_all_columns(table, table->write_set);
error= HA_ERR_CRASHED_ON_USAGE;
@@ -678,7 +681,7 @@ int ha_tina::find_current_row(uchar *buf)
goto err;
}
- if (bitmap_is_set(table->read_set, (*field)->field_index))
+ if (read_all || bitmap_is_set(table->read_set, (*field)->field_index))
(*field)->store(buffer.ptr(), buffer.length(), buffer.charset());
}
next_position= end_offset + eoln_len;