def get_state(self, index): return (self.bitmap >> index) & 1
The "index of 2 states" transforms complex logical queries into simple, lightning-fast arithmetic. Real-World Applications of Two-State Indexing Understanding the theory is one thing; applying it is another. Here are four critical areas where the index of 2 states solves real problems. 1. Database Optimization (PostgreSQL, MySQL, Oracle) Modern relational databases use bitmap indexes extensively, especially in data warehousing and OLAP cubes. Columns with low cardinality (few unique values) are perfect candidates. A column gender (Male/Female) or status (Active/Suspended) is ideal.
def find_all_with_state(self, state=1): """Return list of indices where state matches""" indices = [] for i in range(self.size): if self.get_state(i) == state: indices.append(i) return indices index of 2 states
Use B-tree indexes for high-write environments. Reserve bitmap indexes for read-heavy data warehouses. Pitfall 2: Treating Three States as Two Problem: A column like status might seem binary ( active / inactive ), but if it ever has a third state ( pending ), your index breaks. Queries for status = 'inactive' might incorrectly include pending if you used a boolean.
| User | Read | Write | Delete | |------|------|-------|--------| | A | 1 | 1 | 0 | | B | 1 | 0 | 0 | | C | 0 | 1 | 1 | def get_state(self, index): return (self
Always verify that your domain truly has exactly two mutually exclusive, exhaustive states. Pitfall 3: Forgetting About NULLs In SQL, a boolean column can be TRUE, FALSE, or NULL. NULL is a third state! If you create an index on two states but allow NULLs, your index is incomplete.
def logical_and(self, other): """Combine two indexes using AND (intersection)""" result = TwoStateIndex(self.size) result.bitmap = self.bitmap & other.bitmap return result attendance = TwoStateIndex(30) # 30 students attendance.set_state(5, 1) # Student 5 present attendance.set_state(12, 1) # Student 12 present attendance.set_state(5, 0) # Student 5 leaves 1) # Student 5 present attendance.set_state(12
print("Present students:", attendance.find_all_with_state(1)) print("Total present:", attendance.count_ones())