Skip to content

Commit e07bd46

Browse files
TimelordUKclaude
andcommitted
chore: Bump version to 1.66.0 and update CHANGELOG
Release v1.66.0 with major new features and improvements. Highlights: ✨ SELECT * EXCLUDE - DuckDB-compatible column exclusion syntax ✨ Line Geometry Toolkit - 5 new functions for collision detection, CAD, graphics ✨ ILIKE operator - PostgreSQL-compatible case-insensitive LIKE ✨ Enhanced vector mathematics documentation ✨ Performance benchmarking in CI Features: - SELECT * EXCLUDE (password, ssn) FROM users - LINE_INTERSECT, SEGMENT_INTERSECT, CLOSEST_POINT_ON_LINE - POINT_LINE_DISTANCE, LINE_REFLECT_POINT - ILIKE operator with full pattern matching - Test infrastructure improvements Bug Fixes: - REPLACE keyword conflict resolved - Temp table persistence in --execute-statement mode - Test capture for multi-statement JSON output Total: 100+ SQL functions for data analysis, geometry, physics, astronomy! 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 55d053d commit e07bd46

2 files changed

Lines changed: 129 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,134 @@ 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+
## [1.66.0] - 2025-11-02
9+
10+
### ✨ Major Features
11+
12+
#### **SELECT * EXCLUDE - DuckDB-Compatible Column Exclusion**
13+
Implements DuckDB-style `SELECT * EXCLUDE (columns...)` syntax for cleaner queries when you want most columns but not all.
14+
15+
**New Syntax**:
16+
```sql
17+
-- Exclude sensitive columns
18+
SELECT * EXCLUDE (password, ssn, credit_card) FROM users WHERE active = true;
19+
20+
-- Exclude multiple columns for cleaner output
21+
SELECT * EXCLUDE (created_at, updated_at, deleted_at, internal_id) FROM products;
22+
23+
-- Works with all SQL clauses
24+
SELECT * EXCLUDE (eccentricity, albedo)
25+
FROM solar_system
26+
WHERE type = 'Planet'
27+
ORDER BY mean_distance_au;
28+
```
29+
30+
**Benefits**:
31+
- **Security** - Easy to exclude sensitive columns (passwords, SSNs, tokens)
32+
- **Performance** - Skip large BLOB/TEXT columns when not needed
33+
- **Maintainability** - New columns auto-included without query updates
34+
- **Readability** - Clearer intent than listing 50+ columns manually
35+
36+
**Implementation**:
37+
- Parser support for `* EXCLUDE (column_list)` syntax
38+
- AST extension with `SelectItem::StarExclude` variant
39+
- Query engine expansion at execution time (no transformer needed)
40+
- Case-insensitive column matching
41+
- Comprehensive example file: `examples/select_star_exclude.sql`
42+
- Formal test with 16 query validations
43+
44+
#### **Comprehensive Line Geometry Toolkit**
45+
Extended vector math with complete line analysis functions for collision detection, CAD, graphics, and geometric computations.
46+
47+
**New Functions**:
48+
- **`LINE_INTERSECT(p1, p2, p3, p4)`** - Find exact intersection of two infinite 2D lines
49+
- Returns intersection point as vector, or NULL if parallel
50+
- Example: `LINE_INTERSECT(VEC(0,0), VEC(4,4), VEC(0,4), VEC(4,0))``(2,2)`
51+
52+
- **`SEGMENT_INTERSECT(p1, p2, p3, p4)`** - Check if bounded line segments intersect
53+
- Returns intersection point if segments cross, NULL otherwise
54+
- Crucial for collision detection - checks actual segment overlap, not extended lines
55+
56+
- **`CLOSEST_POINT_ON_LINE(point, line_point, line_dir)`** - Project point onto line
57+
- Returns closest point on line to given point
58+
- Works in 2D and 3D
59+
- Example: `CLOSEST_POINT_ON_LINE(VEC(2,2), VEC(0,0), VEC(1,0))``(2,0)`
60+
61+
- **`POINT_LINE_DISTANCE(point, line_point, line_dir)`** - Perpendicular distance
62+
- Calculate shortest distance from point to line
63+
- Works in 2D and 3D
64+
65+
- **`LINE_REFLECT_POINT(point, line_point, line_dir)`** - Mirror point across line
66+
- Reflect point across a line (mirror transformation)
67+
- Useful for graphics, physics, symmetry operations
68+
69+
**Use Cases**:
70+
- **Collision Detection** - Check if moving objects intersect
71+
- **Snap-to-Grid** - Find closest point on grid lines
72+
- **CAD/Graphics** - Mirror images, project points
73+
- **Mapping** - Calculate building-to-road distances
74+
75+
**Example File**: `examples/complete_line_analysis.sql` with 18+ demonstrations
76+
77+
#### **Enhanced Vector Mathematics**
78+
Comprehensive vector operations for 2D/3D calculations.
79+
80+
**Existing Functions** (documented):
81+
- `VEC(x, y)` or `VEC(x, y, z)` - Create 2D/3D vectors
82+
- `VEC_DOT(v1, v2)` - Dot product
83+
- `VEC_CROSS(v1, v2)` - Cross product
84+
- `VEC_LENGTH(v)` - Magnitude/length
85+
- `VEC_NORMALIZE(v)` - Unit vector
86+
- `VEC_DISTANCE(v1, v2)` - Distance between points
87+
- `VEC_ADD(v1, v2)` - Vector addition
88+
- `VEC_SUB(v1, v2)` - Vector subtraction
89+
- `VEC_SCALE(v, scalar)` - Scalar multiplication
90+
91+
### 🔧 Improvements
92+
93+
**PostgreSQL Compatibility (v1.65.0)**:
94+
- **ILIKE operator** - Case-insensitive LIKE with transformer
95+
- `SELECT * FROM users WHERE email ILIKE '%@gmail.com'`
96+
- Rewrites to `UPPER(email) LIKE UPPER('%@gmail.com')`
97+
- Full pattern matching with `%` and `_` wildcards
98+
99+
**CI/CD Enhancements**:
100+
- **Performance benchmarking** in GitHub Actions
101+
- Tracks query performance trends across pushes
102+
- Uploads benchmark results as artifacts (30-day retention)
103+
- Non-blocking - doesn't fail builds
104+
105+
**Test Infrastructure**:
106+
- **Fixed capture bug** in `test_examples.py`
107+
- Line-by-line JSON parser now skips empty arrays
108+
- Multi-statement script capture works correctly
109+
- All 28 formal tests passing
110+
111+
### 🐛 Bug Fixes
112+
113+
- **REPLACE keyword conflict** - Removed REPLACE as keyword to avoid conflict with REPLACE() function
114+
- **Temp table persistence** - Restored in `--execute-statement` mode
115+
- **Test capture** - Fixed normalize_json for multi-statement output
116+
117+
### 📚 Documentation
118+
119+
- **Roadmap updated** - SELECT * EXCLUDE marked complete
120+
- **Examples enhanced** - New geometry demonstrations
121+
- **Function documentation** - Complete line analysis toolkit guide
122+
123+
### 🎯 Summary
124+
125+
**New in this release**:
126+
- ✅ SELECT * EXCLUDE (DuckDB compatibility)
127+
- ✅ 5 line geometry functions (CAD/graphics/collision detection)
128+
- ✅ ILIKE operator (PostgreSQL compatibility)
129+
- ✅ Performance benchmarking CI
130+
- ✅ Test infrastructure improvements
131+
132+
**Total functions**: 100+ SQL functions including geometry, vector math, astronomy, chemistry, physics, and more!
133+
134+
---
135+
8136
## [1.64.0] - 2025-11-01
9137

10138
### ✨ Major Features

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.64.0"
3+
version = "1.66.0"
44
edition = "2021"
55
autobins = false
66
autoexamples = false

0 commit comments

Comments
 (0)