diff options
author | tomas@poseidon.ndb.mysql.com <> | 2005-06-02 18:40:25 +0200 |
---|---|---|
committer | tomas@poseidon.ndb.mysql.com <> | 2005-06-02 18:40:25 +0200 |
commit | 644906bf9c6ec612abfdebe7f0b51ff8b9e01664 (patch) | |
tree | 3380fac1e38c78273621c53282f01b7b49747471 /sql/handler.cc | |
parent | 2dca9d5953b7bd4d3c93f36757e44ae8531ecbde (diff) | |
download | mariadb-git-644906bf9c6ec612abfdebe7f0b51ff8b9e01664.tar.gz |
bitmap bug fixes and interface change
Diffstat (limited to 'sql/handler.cc')
-rw-r--r-- | sql/handler.cc | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/sql/handler.cc b/sql/handler.cc index ff9a8e96268..8d23b4fa324 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -1360,20 +1360,31 @@ int handler::ha_initialise() int handler::ha_allocate_read_write_set(ulong no_fields) { uint bitmap_size= 4*(((no_fields+1)+31)/32); - uchar *read_buf, *write_buf; + uint32 *read_buf, *write_buf; +#ifndef DEBUG_OFF + my_bool r; +#endif DBUG_ENTER("ha_allocate_read_write_set"); DBUG_PRINT("info", ("no_fields = %d", no_fields)); read_set= (MY_BITMAP*)sql_alloc(sizeof(MY_BITMAP)); write_set= (MY_BITMAP*)sql_alloc(sizeof(MY_BITMAP)); - read_buf= (uchar*)sql_alloc(bitmap_size); - write_buf= (uchar*)sql_alloc(bitmap_size); - DBUG_ASSERT(!bitmap_init(read_set, read_buf, (no_fields+1), FALSE)); - DBUG_ASSERT(!bitmap_init(write_set, write_buf, (no_fields+1), FALSE)); + read_buf= (uint32*)sql_alloc(bitmap_size); + write_buf= (uint32*)sql_alloc(bitmap_size); if (!read_set || !write_set || !read_buf || !write_buf) { ha_deallocate_read_write_set(); DBUG_RETURN(TRUE); } +#ifndef DEBUG_OFF + r = +#endif + bitmap_init(read_set, read_buf, no_fields+1, FALSE); + DBUG_ASSERT(!r /*bitmap_init(read_set...)*/); +#ifndef DEBUG_OFF + r = +#endif + bitmap_init(write_set, write_buf, no_fields+1, FALSE); + DBUG_ASSERT(!r /*bitmap_init(write_set...)*/); ha_clear_all_set(); DBUG_RETURN(FALSE); } |