Skip to content

Releases: uzairmukadam/SheetQL

Export issue fixed

06 Jan 22:12

Choose a tag to compare

An issue where exporting the result requires an existing file to overwrite has been fixed. The tool can now create a new file.

v3.0.0

06 Jan 22:11

Choose a tag to compare

🚀 Release Notes: SheetQL v3.0 – The "Zero-Copy" Performance Update

I am thrilled to announce SheetQL v3.0, a complete architectural rewrite designed for speed, scale, and professional workflows.

This release transitions SheetQL from a utility script into a robust ETL engine. By moving to a Zero-Copy Architecture powered by DuckDB and integrating Rust-based libraries, we have eliminated memory bottlenecks and improved startup times by up to 10x.

🌟 Highlights

  • ⚡ Zero-Copy Loading: Queries CSV, Parquet, and JSON files directly from the disk using DuckDB Views. You can now query multi-gigabyte files instantly without waiting for them to load into RAM.

  • 🦀 Rust-Powered Excel Engine: Integrated python-calamine to parse .xlsx files at lightning speed, bypassing the slow XML parsing of traditional Python libraries.

  • 🧠 Context-Aware Autocomplete: A new IntelliSense engine that suggests SQL keywords, table names, and columns as you type. It even remembers columns from tables you haven't queried yet.

  • 🎥 Session Recording: Ad-hoc exploration is now reproducible. Use the new .dump command to save your current session (inputs + queries) into a clean YAML automation script.

  • 🛡️ Enterprise-Grade Stability:

    • Memory Guards: Configured to prevent crashes by spilling to disk when RAM is full (75% limit).

    • Streaming Exports: Uses xlsxwriter to write massive Excel reports without holding the file in memory.

    • Professional Logging: Separates user-friendly console messages from detailed debug traces stored in sheetql.log.

🛠️ New Commands

.dump <file.yml>: Export the current session history as a reusable automation script.

.runscript <file.yml>: Execute a saved automation script.

.load: Add files to the session dynamically without restarting.

📦 Dependency Updates

To unlock the full performance of v3, we have introduced optional high-performance dependencies.

# Install optional accelerators (Recommended)
pip install python-calamine xlsxwriter prompt_toolkit

⚠️ Breaking Changes

  • Internal Architecture: The _load_data method now returns list of table names (strings) instead of a dictionary of DataFrames. Custom scripts importing SheetQL as a library will need updates.

  • Case Sensitivity: Table and column names are now sanitized and lowercased more aggressively to ensure SQL compatibility.


Thank you to everyone who tested the beta versions. Happy Querying! 🦆📊

v2.0.1 fix

28 Oct 17:24
3755ecf

Choose a tag to compare

SheetQL v2.0.1

🚀 What's Fixed

Previously, exporting results failed when the target file did not already exist, due to reuse of the read-file logic which assumed the file's presence. This has now been resolved by updating the export flow to support creating new files when needed, ensuring smoother and more reliable result exports.

v2.0.0

12 Oct 21:19
ffd47e1

Choose a tag to compare

SheetQL v2.0.0

🚀 New Features

  • Broad File Support: Natively query Excel (.xlsx, .xls), CSV (.csv), JSON (.json, .jsonl) and Apache Parquet (.parquet) files.
  • Powerful Automation: Execute complex workflows non-interactively with YAML scripts for reproducible analysis and reporting.
  • Live Session Introspection: Check table structures with the .schema command and review past queries with .history.

▶️ Getting Started

To get started, please follow the detailed instructions in our README.

pip install -r requirements.txt
python sheet_ql.py

🚀 What's Next?

I am already planning future features like persistent sessions, and more export formats. We welcome your feedback!

Initial Release

28 Aug 16:54

Choose a tag to compare

SheetQL v1.0.0 - SQL on Local Files!

Excited to announce the first official release of SheetQL, an interactive command-line tool that brings the power of SQL to your local data files. This release focuses on providing a fast and user-friendly way to analyze Excel, CSV, and Parquet files without manual data wrangling.


🚀 Key Features

SheetQL allows you to dynamically load multiple files, run standard SQL queries in a live terminal, and use convenient commands like .rename to create table aliases. It uses a graphical file picker when available and includes a safe-exit prompt to prevent losing your work. When you're done, use the .export command to save multiple results to a single, professionally formatted Excel report.


▶️ Getting Started

To get started, please follow the detailed instructions in our README.

pip install -r requirements.txt
python sheet_ql.py

🚀 What's Next?

I am already planning future features like persistent sessions, query history, and more export formats. We welcome your feedback!