Skip to content

Releases: yuyudhan/LazyTables

v0.2.3 🐛 Bug Fixes & Code Refactoring

14 Oct 11:34

Choose a tag to compare

LazyTables v0.2.3 Release Notes

Release Date: October 14, 2025

Release Type: Maintenance Release - Bug Fixes & Code Refactoring


Overview

Version 0.2.3 delivers critical bug fixes, major code refactoring for improved maintainability, and enhanced user experience features. The highlight is fixing a critical issue where number keys were blocked during cell editing, along with a comprehensive reorganization of event handling code into dedicated modules.

What's New

🐛 Critical Bug Fix

  • Number Key Input During Cell Editing - Fixed blocking issue where pressing number keys 1-6 while editing numerical fields in table cells would trigger pane navigation instead of entering the digits. This significantly improves the data editing experience.

✨ New Features

Database Management

  • Disconnect Functionality - Press x in Connections pane to disconnect from active database with proper cleanup and toast notification
  • Abort Connection Tests - Press Ctrl+C during connection testing to abort ongoing tests with visual feedback

Enhanced Schema Viewing

  • Toggle Data/Schema Views - Press t in table viewer to switch between views
  • Comprehensive Metadata Display including:
    • Columns with primary key indicators (🔑)
    • Indexes with type, uniqueness, and size information
    • Foreign keys with ON DELETE/UPDATE actions
    • Table constraints (CHECK, UNIQUE, etc.)
    • Table statistics (row count, sizes, vacuum/analyze timestamps, owner)
  • Scrollable Schema View - Navigate with j/k, gg/G, Ctrl+d/u

User Experience Improvements

  • Informative Empty States - Query results pane shows helpful guidance when no data available
  • Progressive Pane Enablement - Panes only enabled when relevant data is available
  • Enhanced Visual Feedback - Disabled panes show dimmed borders with informative messages
  • Improved Delete Confirmation Modal - Better visibility with solid background colors

🏗️ Major Code Refactoring

Event Handler Modularization - Reorganized ~2000 lines of event handling code:

src/app/handlers/
├── global.rs           # Global key bindings (137 lines)
├── connections.rs      # Connection pane handlers (644 lines)
├── tables.rs          # Tables pane handlers (117 lines)
├── query_results.rs   # Query results handlers (293 lines)
├── query_editor.rs    # SQL editor handlers (267 lines)
├── sql_files.rs       # SQL files handlers (186 lines)
├── overlays.rs        # Modal handlers (198 lines)
└── details.rs         # Details pane handlers (46 lines)

Impact:

  • Reduced src/app/mod.rs from ~2600 lines to ~460 lines
  • Clear separation of concerns by pane/feature
  • Improved maintainability and code organization
  • Easier navigation and testing

🔧 Additional Fixes

  • Help Modal Navigation - Fixed event routing for proper help system interaction
  • SQLite Connection Format - Corrected connection string format for SQLite
  • Security Improvements - Enhanced error handling in all database adapters

📚 Design Philosophy

Schema Modification Approach - Removed table creation and schema editing features to focus on core mission:

  • Most users only need to view schema information
  • Power users can use SQL directly via Query Editor for modifications
  • Reduces complexity while maintaining comprehensive read-only schema viewing
  • Keeps tool focused on data viewing and querying

Installation

From crates.io

cargo install lazytables

Update Existing Installation

cargo install lazytables --force

Using cargo-binstall

cargo binstall lazytables

From Source

git clone https://github.com/yuyudhan/LazyTables.git
cd LazyTables
cargo install --path .

Upgrade Notes

No Breaking Changes - Seamless upgrade from v0.2.1/v0.2.2 with all configurations preserved.

New Features to Try:

  1. Press x in Connections pane to disconnect from database
  2. Press t in table viewer to toggle Data/Schema views
  3. Press Ctrl+C during connection test to abort
  4. Edit numerical fields - number keys now work correctly

Database Support Status

Database Status
PostgreSQL ✅ Full Support
MySQL ✅ Full Support
MariaDB ✅ Full Support
SQLite ✅ Full Support

Technical Details

Code Statistics:

  • Lines Added: ~2,442 lines (modular handlers)
  • Lines Removed: ~1,839 lines (refactored)
  • Net Change: +603 lines
  • Files Changed: 18 files
  • New Modules: 10 handler modules

Testing:

  • All 82 unit tests passing
  • Verified with cargo check and cargo clippy
  • Release build successful

What's Next

Planned for v0.2.4:

  • Connection health monitoring with automatic reconnection
  • Query history with search and filtering
  • Export functionality (CSV, JSON, SQL formats)
  • Performance optimizations for large datasets

Roadmap:

  • Oracle, Redis, MongoDB support
  • Advanced filtering and aggregation
  • Multi-tab query editor
  • Result set comparison tools

Feedback & Support

Full Changelog

See v0.2.1...v0.2.3 for complete diff.


License: WTFPL

Platforms: macOS, Linux

Rust Version: 1.70+