Why flag_shih_tzu is changing its default SQL for bit flags
The flag_shih_tzu gem is updating its default SQL query method for bit flags to improve compatibility during rolling deployments. The new method uses bitwise operations instead of an IN() list, which can lead to bugs when new flags are added. This change aims to enhance the reliability of querying boolean attributes stored in a single integer column.
- ▪The gem previously used an IN() list for querying flags, which could fail during rolling deployments when new flags were added.
- ▪The new default query method uses bitwise operations, allowing for consistent querying regardless of how many flags are present.
- ▪This change is part of a major release and aims to prioritize correctness over performance in applications that may add flags over time.
Opening excerpt (first ~120 words) tap to expand
try { if(localStorage) { let currentUser = localStorage.getItem('current_user'); if (currentUser) { currentUser = JSON.parse(currentUser); if (currentUser.id === 561326) { document.getElementById('article-show-container').classList.add('current-user-is-article-author'); } } } } catch (e) { console.error(e); } Peter H. Boling Posted on May 26 Why flag_shih_tzu is changing its default SQL for bit flags #ruby #rails #activerecord #bitfield flag_shih_tzu stores many boolean attributes in one integer column.
…
Excerpt limited to ~120 words for fair-use compliance. The full article is at DEV.to (Top).