Skip to content

Commit 0c5f4b7

Browse files
TimelordUKclaude
andcommitted
chore: Bump version to v1.67.0
- Update Cargo.toml version from 1.66.0 to 1.67.0 - Update CHANGELOG with v1.67.0 release date - Create comprehensive RELEASE_NOTES for v1.67.0 - Highlight 86% window function performance improvement - Ready for crates.io publication 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent d2e5530 commit 0c5f4b7

3 files changed

Lines changed: 79 additions & 42 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ All notable changes to SQL CLI will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [Unreleased]
8+
## [1.67.0] - 2025-11-05
99

1010
### Performance Improvements
1111

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "sql-cli"
3-
version = "1.66.0"
3+
version = "1.67.0"
44
edition = "2021"
55
autobins = false
66
autoexamples = false

RELEASE_NOTES.md

Lines changed: 77 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,101 @@
1-
# SQL CLI v1.66.0
1+
# SQL CLI v1.67.0
22

3-
**Release Date:** November 02, 2025
3+
**Release Date:** November 05, 2025
44

5-
## 📊 Release Overview
6-
- **Commits in this release:** 12
7-
- **Files updated:** 42
8-
9-
## ✨ Highlights
5+
## 🚀 Window Function Performance Revolution - 86% Faster!
106

11-
### 🔍 Enhanced Debugging
12-
- **Better Diagnostics**: Improved error messages and state dumps
7+
This release brings dramatic performance improvements to window functions through our new batch evaluation engine. Complex analytical queries now run up to **86% faster** on large datasets!
138

14-
## 📝 Changes by Category
15-
16-
### 🚀 New Features
17-
- Add SELECT * EXCLUDE syntax support (DuckDB compatibility)
18-
- Add complete line geometry analysis toolkit
19-
- Add comprehensive vector mathematics support
20-
- Add ILIKE operator support (PostgreSQL compatibility)
9+
## 📊 Release Overview
10+
- **Major Performance Boost**: 86% improvement for window functions
11+
- **New Functions**: RANK and DENSE_RANK window functions
12+
- **Smart Optimization**: Automatic O(n) algorithms for cumulative patterns
13+
- **Zero Configuration**: All improvements enabled by default
2114

22-
### 🐛 Bug Fixes
23-
- Fix test_examples.py capture for multi-statement JSON output
24-
- Remove REPLACE keyword to avoid conflict with REPLACE() function
15+
## ✨ Highlights
2516

26-
### 📚 Documentation
27-
- Update roadmap to reflect completed features
28-
- Add temp table example to README showing multi-stage -q queries
17+
### 🎯 Blazing Fast Window Functions
18+
- **50,000 rows with LAG**: 2.24s → **350ms** (86% improvement!)
19+
- **Cumulative SUM**: Previously timing out → Now **338ms**
20+
- All window functions now use optimized batch evaluation by default
21+
22+
### 📈 What's Optimized
23+
- ✅ Window aggregates: `SUM`, `AVG`, `MIN`, `MAX`, `COUNT`, `FIRST_VALUE`, `LAST_VALUE`
24+
- ✅ Positional functions: `LAG`, `LEAD`, `ROW_NUMBER`
25+
- ✅ Ranking functions: `RANK`, `DENSE_RANK` (newly implemented!)
26+
- ✅ Smart O(n) algorithms for cumulative patterns
27+
28+
## 📝 Example Usage
29+
30+
```sql
31+
-- This query is now 86% faster!
32+
SELECT
33+
sale_date,
34+
amount,
35+
SUM(amount) OVER (ORDER BY sale_date ROWS UNBOUNDED PRECEDING) as running_total,
36+
AVG(amount) OVER (ORDER BY sale_date ROWS 30 PRECEDING) as moving_avg_30,
37+
LAG(amount, 1) OVER (ORDER BY sale_date) as prev_amount,
38+
RANK() OVER (ORDER BY amount DESC) as sales_rank
39+
FROM sales
40+
ORDER BY sale_date;
41+
```
42+
43+
## 🔧 Technical Details
44+
45+
### Performance Improvements
46+
- **Batch Evaluation**: Process all rows in a single pass instead of per-row evaluation
47+
- **Hash-Based Caching**: Pre-create and cache WindowContext objects (50,000 lookups → 1)
48+
- **Running Aggregates**: O(n) incremental calculation for UNBOUNDED PRECEDING frames
49+
- **Smart Detection**: Automatically optimizes cumulative and running total patterns
50+
51+
### Configuration
52+
- Batch evaluation is **enabled by default** - no configuration needed!
53+
- To opt-out (not recommended): Set `SQL_CLI_BATCH_WINDOW=0`
54+
- Complex expressions automatically use the optimal evaluation strategy
55+
56+
## 🐛 Bug Fixes
57+
- Fixed window aggregate functions (AVG) returning incorrect results in certain cases
58+
- Fixed Python test suite warnings about test functions returning values
59+
- Fixed expression evaluation for window functions embedded in calculations
60+
61+
## 📋 Full Commit List
2962

3063
<details>
31-
<summary>📋 View all commits</summary>
32-
33-
- chore: Bump version to 1.66.0 and update CHANGELOG (TimelordUK)
34-
- fix: Fix test_examples.py capture for multi-statement JSON output (TimelordUK)
35-
- test: Add formal test for SELECT * EXCLUDE feature (TimelordUK)
36-
- feat: Add SELECT * EXCLUDE syntax support (DuckDB compatibility) (TimelordUK)
37-
- feat(sql): Add complete line geometry analysis toolkit (TimelordUK)
38-
- feat(sql): Add comprehensive vector mathematics support (TimelordUK)
39-
- ci: Add performance benchmarking to GitHub Actions workflow (TimelordUK)
40-
- fix: Remove REPLACE keyword to avoid conflict with REPLACE() function (TimelordUK)
41-
- chore: Add EXCLUDE and REPLACE tokens to lexer (TimelordUK)
42-
- feat: Add ILIKE operator support (PostgreSQL compatibility) (TimelordUK)
43-
- docs: Update roadmap to reflect completed features (TimelordUK)
44-
- docs: Add temp table example to README showing multi-stage -q queries (TimelordUK)
64+
<summary>View all commits</summary>
65+
66+
- feat: Make batch window evaluation the default and fix expression handling
67+
- fix: Update Python tests to use assertions instead of return values
68+
- feat: Optimize window aggregates for UNBOUNDED PRECEDING frames
69+
- feat: Implement batch evaluation for window functions - 86% performance improvement!
70+
- feat: Window function optimization Phase 2 + Step 0 prep for batch evaluation
71+
- feat: Add Phase 1 window function profiling infrastructure
4572

4673
</details>
4774

4875
## 🎯 Key Features
4976

77+
- **Window Functions**: Now with 86% better performance!
5078
- **Instant Data Preview**: CSV/JSON files load immediately
51-
- **Visual Feedback**: Key press indicator, cell highlighting
52-
- **Advanced Navigation**: Vim-style keys, viewport/cursor lock
79+
- **Advanced SQL**: CTEs, subqueries, window functions, aggregates
5380
- **Powerful Search**: Regular search (Ctrl+F), fuzzy filter (Ctrl+/)
5481
- **Data Export**: Save as CSV or JSON
55-
- **Debug Mode**: Press F5 for comprehensive state information
82+
- **Vim Navigation**: Full vim-style key bindings
5683

5784
## 📦 Installation
5885

59-
Download the binary for your platform from the assets below.
86+
```bash
87+
cargo install sql-cli
88+
```
89+
90+
Or download the binary for your platform from the assets below.
91+
92+
## 📈 Upgrade Recommendation
93+
94+
**Highly recommended upgrade** for anyone using window functions, especially on large datasets. The performance improvements are substantial and all existing queries will automatically benefit.
6095

6196
---
97+
6298
**Thank you for using SQL CLI!** 🎉
6399

64100
Report issues: [GitHub Issues](https://github.com/TimelordUK/sql-cli/issues)
101+
Full changelog: [CHANGELOG.md](https://github.com/TimelordUK/sql-cli/blob/main/CHANGELOG.md)

0 commit comments

Comments
 (0)