Commit ebaebad
fix: Remove REPLACE keyword to avoid conflict with REPLACE() function
The REPLACE token was conflicting with the existing REPLACE() string
function, breaking the showcase_deterministic formal test.
**Problem:**
- Added Token::Replace as a keyword for SELECT * REPLACE
- This broke `REPLACE('text', 'old', 'new')` function calls
- Parser error: "Unexpected token in primary expression: Replace"
**Solution:**
- Keep only EXCLUDE as a keyword token
- REPLACE will be handled contextually in the parser
- When we implement SELECT * REPLACE, we'll check for REPLACE
as an identifier in the right context, not as a keyword
**Test Results:**
- ✅ REPLACE() function works again
- ✅ showcase_deterministic formal test passes
- ✅ All 119 example tests passing
**Lesson Learned:**
When adding new keywords, always check if they conflict with
existing function names. Use contextual parsing when needed.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>1 parent 21014c5 commit ebaebad
2 files changed
Lines changed: 2 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
| 58 | + | |
| 59 | + | |
59 | 60 | | |
60 | 61 | | |
61 | 62 | | |
| |||
154 | 155 | | |
155 | 156 | | |
156 | 157 | | |
157 | | - | |
158 | 158 | | |
159 | 159 | | |
160 | 160 | | |
| |||
244 | 244 | | |
245 | 245 | | |
246 | 246 | | |
247 | | - | |
248 | 247 | | |
249 | 248 | | |
250 | 249 | | |
| |||
863 | 862 | | |
864 | 863 | | |
865 | 864 | | |
866 | | - | |
867 | 865 | | |
868 | 866 | | |
869 | 867 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
189 | 189 | | |
190 | 190 | | |
191 | 191 | | |
192 | | - | |
193 | 192 | | |
194 | 193 | | |
195 | 194 | | |
| |||
0 commit comments