Commit 04d68a5
Preserve function name case from SQL source in EXPLAIN AST output
ClickHouse EXPLAIN AST preserves the original case of function names as
written in the SQL source (e.g., CEIL stays CEIL, COALESCE stays COALESCE).
Only a few functions are normalized to specific canonical forms (e.g.,
DATEDIFF→dateDiff, POSITION→position, SUBSTRING→substring).
This fixes issues where special parser functions (parseIfFunction,
parseExtract, parseSubstring, parseArrayConstructor) were hardcoding
lowercase names instead of preserving the original case from the token.
Also fixes parseKeywordAsFunction which was incorrectly lowercasing all
keyword-based function names.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>1 parent 050d0b2 commit 04d68a5
File tree
8 files changed
+34
-52
lines changed- internal/explain
- parser
- testdata
- 01705_normalize_case_insensitive_function_names
- 01710_minmax_count_projection
- 02416_rocksdb_delete_update
- 02577_keepermap_delete_update
- 02707_keeper_map_delete_update_strict
- 03595_funcs_on_zero
8 files changed
+34
-52
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
448 | 448 | | |
449 | 449 | | |
450 | 450 | | |
451 | | - | |
| 451 | + | |
| 452 | + | |
452 | 453 | | |
453 | | - | |
454 | | - | |
455 | | - | |
456 | | - | |
457 | | - | |
458 | | - | |
459 | | - | |
460 | | - | |
461 | | - | |
462 | | - | |
463 | | - | |
464 | | - | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
465 | 459 | | |
| 460 | + | |
466 | 461 | | |
467 | | - | |
468 | | - | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
469 | 467 | | |
470 | 468 | | |
471 | 469 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1596 | 1596 | | |
1597 | 1597 | | |
1598 | 1598 | | |
1599 | | - | |
| 1599 | + | |
| 1600 | + | |
1600 | 1601 | | |
1601 | 1602 | | |
1602 | 1603 | | |
| |||
1646 | 1647 | | |
1647 | 1648 | | |
1648 | 1649 | | |
1649 | | - | |
| 1650 | + | |
1650 | 1651 | | |
1651 | 1652 | | |
1652 | 1653 | | |
| |||
1670 | 1671 | | |
1671 | 1672 | | |
1672 | 1673 | | |
1673 | | - | |
| 1674 | + | |
1674 | 1675 | | |
1675 | 1676 | | |
1676 | 1677 | | |
| |||
1764 | 1765 | | |
1765 | 1766 | | |
1766 | 1767 | | |
1767 | | - | |
| 1768 | + | |
| 1769 | + | |
1768 | 1770 | | |
1769 | 1771 | | |
1770 | 1772 | | |
| |||
1871 | 1873 | | |
1872 | 1874 | | |
1873 | 1875 | | |
1874 | | - | |
| 1876 | + | |
1875 | 1877 | | |
1876 | 1878 | | |
1877 | 1879 | | |
| |||
2705 | 2707 | | |
2706 | 2708 | | |
2707 | 2709 | | |
2708 | | - | |
| 2710 | + | |
| 2711 | + | |
2709 | 2712 | | |
2710 | 2713 | | |
2711 | 2714 | | |
| |||
2720 | 2723 | | |
2721 | 2724 | | |
2722 | 2725 | | |
2723 | | - | |
| 2726 | + | |
2724 | 2727 | | |
2725 | 2728 | | |
2726 | 2729 | | |
2727 | 2730 | | |
2728 | 2731 | | |
2729 | 2732 | | |
2730 | | - | |
| 2733 | + | |
| 2734 | + | |
2731 | 2735 | | |
2732 | 2736 | | |
2733 | 2737 | | |
| |||
2742 | 2746 | | |
2743 | 2747 | | |
2744 | 2748 | | |
2745 | | - | |
| 2749 | + | |
2746 | 2750 | | |
2747 | 2751 | | |
2748 | 2752 | | |
2749 | 2753 | | |
2750 | 2754 | | |
2751 | 2755 | | |
2752 | | - | |
2753 | | - | |
| 2756 | + | |
| 2757 | + | |
2754 | 2758 | | |
2755 | 2759 | | |
2756 | 2760 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
Lines changed: 1 addition & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
| 1 | + | |
Lines changed: 1 addition & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
| 1 | + | |
Lines changed: 1 addition & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
| 1 | + | |
0 commit comments