diff options
Diffstat (limited to 'sql/sql_bitmap.h')
-rw-r--r-- | sql/sql_bitmap.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/sql/sql_bitmap.h b/sql/sql_bitmap.h index 0449611e27a..558240ce19d 100644 --- a/sql/sql_bitmap.h +++ b/sql/sql_bitmap.h @@ -95,6 +95,10 @@ public: DBUG_ASSERT(sizeof(buffer) >= 4); return (ulonglong) uint4korr(buffer); } + uint bits_set() + { + return bitmap_bits_set(&map); + } }; /* An iterator to quickly walk over bits in unlonglong bitmap. */ @@ -164,6 +168,17 @@ public: public: Iterator(Bitmap<64> &bmp) : Table_map_iterator(bmp.map) {} }; + uint bits_set() + { + //TODO: use my_count_bits() + uint res= 0, i= 0; + for (; i < 64 ; i++) + { + if (map & ((ulonglong)1<<i)) + res++; + } + return res; + } }; |