You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore: Bump version to 1.64.0 and update CHANGELOG
Release 1.64.0 brings major execution mode unification, query transformation
pipeline enhancements, and QUALIFY clause support.
Major Features:
- Execution Mode Unification (Phases 0-3 complete)
- Both -f and -q modes use unified execution path
- Full transformer support in both modes
- Dependency-aware execution with preprocessing
- Query Transformation Pipeline
- WHERE clause alias expansion
- GROUP BY alias expansion
- HAVING auto-aliasing
- ORDER BY expression support
- QUALIFY Clause Support
- Window function filtering (Snowflake/BigQuery syntax)
- Works with all window functions
- Debug Capabilities
- --show-transformations flag
- Nvim \st and \sz keymaps
- Pipeline visualization
Improvements:
- Python-based examples test framework
- Formal and smoke testing for examples
- Enhanced Neovim plugin keymaps
- Documentation updates
Bug Fixes:
- Temp table persistence in --execute-statement mode
- Transformer pipeline in dependency-aware execution
- Qualified name resolution regression
- Test suite improvements
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Complete unification of script mode (`-f`) and query mode (`-q`) execution paths, bringing sophisticated query transformation capabilities to both modes.
14
+
15
+
**Unified Execution Architecture**:
16
+
-**Single execution path** - Both `-f` scripts and `-q` queries now use the same underlying execution engine
17
+
-**Consistent transformer support** - All query transformations (WHERE, GROUP BY, HAVING, ORDER BY alias expansion) work in both modes
18
+
-**Dependency-aware execution** - `--execute-statement N` now applies full preprocessing pipeline
19
+
-**Shared infrastructure** - Eliminates code duplication and ensures feature parity
20
+
21
+
**Query Transformation Pipeline** (now available in both modes):
22
+
-**WHERE clause alias expansion** - Use SELECT aliases in WHERE: `SELECT value * 2 AS doubled FROM data WHERE doubled > 100`
23
+
-**GROUP BY alias expansion** - Reference SELECT aliases in GROUP BY: `SELECT region, SUM(sales) AS total FROM data GROUP BY region HAVING total > 1000`
24
+
-**HAVING auto-aliasing** - Automatic aliases for aggregate expressions in HAVING clause
25
+
-**ORDER BY expression support** - Complex expressions in ORDER BY automatically moved to SELECT with hidden columns
26
+
27
+
**New Debug Capabilities**:
28
+
-**`--show-transformations` flag** - See the complete transformation pipeline for any query
29
+
-**Nvim `\st` keymap** - Visualize transformations for query at cursor in Neovim plugin
30
+
-**`\sz` keymap** - Alternative transformations debug view
31
+
-**Detailed pipeline output** - Shows original SQL, intermediate steps, and final transformed query
32
+
33
+
**ORDER BY Expression Support**:
34
+
-**Complex expressions in ORDER BY** - Use any SQL expression in ORDER BY clause
35
+
-**Automatic SELECT injection** - Expressions automatically added to SELECT with hidden columns
36
+
-**Aggregate support** - ORDER BY can use aggregates: `ORDER BY SUM(value) DESC`
37
+
-**Works with transformers** - Integrates seamlessly with WHERE/GROUP BY alias expansion
38
+
-**Example**: `SELECT region FROM sales GROUP BY region ORDER BY SUM(amount) DESC`
39
+
40
+
**Technical Architecture**:
41
+
-**Three-phase execution** (Phases 0-2 complete):
42
+
- Phase 0: Unified execution module foundation
43
+
- Phase 1: Refactored `-q` mode to use unified path
44
+
- Phase 2: Refactored `-f` mode to use unified path
45
+
- Phase 3: Enabled full preprocessing pipeline in both modes
46
+
-**Transformer orchestration** - Coordinated pipeline of AST transformers
47
+
-**Preserved semantics** - All transformations maintain original query intent
48
+
49
+
#### **QUALIFY Clause Support**
50
+
Industry-standard window function filtering using QUALIFY clause (Snowflake, BigQuery, Teradata syntax).
51
+
52
+
**New Capability**:
53
+
```sql
54
+
-- Top 3 products per category by sales
55
+
SELECT category, product, sales,
56
+
ROW_NUMBER() OVER (PARTITION BY category ORDER BY sales DESC) as rank
57
+
FROM products
58
+
QUALIFY rank <=3;
59
+
```
60
+
61
+
**Benefits**:
62
+
-**Cleaner syntax** - No need for CTE wrapper around window functions
63
+
-**Better readability** - Filter intent clear and concise
0 commit comments