Skip to content

Commit edef29e

Browse files
committed
Remove version headers from explain files and delete version consistency test
- Remove "-- Generated by ClickHouse X.X.X.X" header from all explain files - Delete TestExplainVersionConsistency test - Update regenerate-explain to not add version headers
1 parent a449a92 commit edef29e

File tree

113,781 files changed

+21
-113971
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113,781 files changed

+21
-113971
lines changed

cmd/regenerate-explain/main.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -586,9 +586,6 @@ func processTest(testDir string, dryRun bool) error {
586586
return nil
587587
}
588588

589-
// Generate version header comment
590-
versionHeader := fmt.Sprintf("-- Generated by ClickHouse %s\n", requiredVersion)
591-
592589
var stmtErrors []string
593590
for i, stmt := range statements {
594591
stmtNum := i + 1 // 1-indexed
@@ -608,8 +605,7 @@ func processTest(testDir string, dryRun bool) error {
608605
outputPath = filepath.Join(testDir, fmt.Sprintf("explain_%d.txt", stmtNum))
609606
}
610607

611-
// Write with version header
612-
content := versionHeader + explain + "\n"
608+
content := explain + "\n"
613609
if err := os.WriteFile(outputPath, []byte(content), 0644); err != nil {
614610
return fmt.Errorf("writing %s: %w", outputPath, err)
615611
}

parser/parser_test.go

Lines changed: 0 additions & 167 deletions
Original file line numberDiff line numberDiff line change
@@ -268,173 +268,6 @@ func TestParser(t *testing.T) {
268268
}
269269
}
270270

271-
// TestExplainVersionConsistency ensures all explain*.txt files have the same ClickHouse version header.
272-
// This test:
273-
// - Scans all explain*.txt files in testdata/
274-
// - Checks each file for a "-- Generated by ClickHouse X.X.X.X" header
275-
// - Skips files in test directories with parse_error, skip, or explain:false metadata
276-
// - Reports files without version headers
277-
// - Reports if multiple different versions are found
278-
// - Passes only when all files have the same version header
279-
func TestExplainVersionConsistency(t *testing.T) {
280-
testdataDir := "testdata"
281-
282-
// Cache for metadata per test directory
283-
metadataCache := make(map[string]*testMetadata)
284-
getMetadata := func(testDir string) *testMetadata {
285-
if meta, ok := metadataCache[testDir]; ok {
286-
return meta
287-
}
288-
metaPath := filepath.Join(testDir, "metadata.json")
289-
content, err := os.ReadFile(metaPath)
290-
if err != nil {
291-
metadataCache[testDir] = nil
292-
return nil
293-
}
294-
var meta testMetadata
295-
if err := json.Unmarshal(content, &meta); err != nil {
296-
metadataCache[testDir] = nil
297-
return nil
298-
}
299-
metadataCache[testDir] = &meta
300-
return &meta
301-
}
302-
303-
// shouldSkipDir returns true if this test directory should be skipped for version checking
304-
shouldSkipDir := func(testDir string) bool {
305-
meta := getMetadata(testDir)
306-
if meta == nil {
307-
return false
308-
}
309-
// Skip if parse_error (contains intentionally invalid SQL)
310-
if meta.ParseError {
311-
return true
312-
}
313-
// Skip if test is marked to skip entirely
314-
if meta.Skip {
315-
return true
316-
}
317-
// Skip if explain is explicitly disabled
318-
if meta.Explain != nil && !*meta.Explain {
319-
return true
320-
}
321-
return false
322-
}
323-
324-
// shouldSkipFile returns true if this specific explain file should be skipped
325-
// (e.g., it's in explain_todo)
326-
shouldSkipFile := func(testDir, filename string) bool {
327-
meta := getMetadata(testDir)
328-
if meta == nil || meta.ExplainTodo == nil {
329-
return false
330-
}
331-
// Convert filename to statement key
332-
// explain.txt -> stmt1, explain_2.txt -> stmt2, etc.
333-
stmtKey := "stmt1"
334-
if strings.HasPrefix(filename, "explain_") && strings.HasSuffix(filename, ".txt") {
335-
numStr := strings.TrimSuffix(strings.TrimPrefix(filename, "explain_"), ".txt")
336-
stmtKey = "stmt" + numStr
337-
}
338-
return meta.ExplainTodo[stmtKey]
339-
}
340-
341-
// Find all explain*.txt files, skipping directories with parse_error/skip/explain:false
342-
var explainFiles []string
343-
var skippedDirs = make(map[string]bool)
344-
var skippedFiles int
345-
err := filepath.Walk(testdataDir, func(path string, info os.FileInfo, err error) error {
346-
if err != nil {
347-
return err
348-
}
349-
if !info.IsDir() && strings.HasPrefix(info.Name(), "explain") && strings.HasSuffix(info.Name(), ".txt") {
350-
testDir := filepath.Dir(path)
351-
if shouldSkipDir(testDir) {
352-
skippedDirs[testDir] = true
353-
return nil
354-
}
355-
if shouldSkipFile(testDir, info.Name()) {
356-
skippedFiles++
357-
return nil
358-
}
359-
explainFiles = append(explainFiles, path)
360-
}
361-
return nil
362-
})
363-
if err != nil {
364-
t.Fatalf("Failed to walk testdata directory: %v", err)
365-
}
366-
367-
if len(skippedDirs) > 0 || skippedFiles > 0 {
368-
t.Logf("Skipped %d test directories with parse_error/skip/explain:false metadata, %d files in explain_todo", len(skippedDirs), skippedFiles)
369-
}
370-
371-
if len(explainFiles) == 0 {
372-
t.Skip("No explain*.txt files found")
373-
}
374-
375-
// Track versions and files without headers
376-
versionToFiles := make(map[string][]string)
377-
var filesWithoutHeaders []string
378-
379-
versionPattern := "-- Generated by ClickHouse "
380-
381-
for _, path := range explainFiles {
382-
content, err := os.ReadFile(path)
383-
if err != nil {
384-
t.Errorf("Failed to read %s: %v", path, err)
385-
continue
386-
}
387-
388-
lines := strings.Split(string(content), "\n")
389-
if len(lines) == 0 {
390-
filesWithoutHeaders = append(filesWithoutHeaders, path)
391-
continue
392-
}
393-
394-
firstLine := lines[0]
395-
if !strings.HasPrefix(firstLine, versionPattern) {
396-
filesWithoutHeaders = append(filesWithoutHeaders, path)
397-
continue
398-
}
399-
400-
// Extract version from "-- Generated by ClickHouse X.X.X.X"
401-
version := strings.TrimPrefix(firstLine, versionPattern)
402-
versionToFiles[version] = append(versionToFiles[version], path)
403-
}
404-
405-
// Report findings
406-
if len(filesWithoutHeaders) > 0 {
407-
t.Errorf("Found %d files without version headers:", len(filesWithoutHeaders))
408-
// Show first 10 files as examples
409-
limit := 10
410-
if len(filesWithoutHeaders) < limit {
411-
limit = len(filesWithoutHeaders)
412-
}
413-
for _, path := range filesWithoutHeaders[:limit] {
414-
t.Errorf(" - %s", path)
415-
}
416-
if len(filesWithoutHeaders) > 10 {
417-
t.Errorf(" ... and %d more", len(filesWithoutHeaders)-10)
418-
}
419-
}
420-
421-
if len(versionToFiles) > 1 {
422-
t.Errorf("Found %d different ClickHouse versions:", len(versionToFiles))
423-
for version, files := range versionToFiles {
424-
t.Errorf(" Version %q: %d files", version, len(files))
425-
}
426-
}
427-
428-
if len(filesWithoutHeaders) > 0 || len(versionToFiles) != 1 {
429-
t.FailNow()
430-
}
431-
432-
// Log the consistent version
433-
for version := range versionToFiles {
434-
t.Logf("All %d explain files have consistent version: %s", len(explainFiles), version)
435-
}
436-
}
437-
438271
// BenchmarkParser benchmarks the parser performance using a complex query
439272
func BenchmarkParser(b *testing.B) {
440273
query := `

parser/testdata/00001_count_hits/explain.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
-- Generated by ClickHouse 25.8.13.73
21
SelectWithUnionQuery (children 1)
32
ExpressionList (children 1)
43
SelectQuery (children 2)

parser/testdata/00001_select_1/explain.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
-- Generated by ClickHouse 25.8.13.73
21
SelectWithUnionQuery (children 1)
32
ExpressionList (children 1)
43
SelectQuery (children 1)

parser/testdata/00002_count_visits/explain.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
-- Generated by ClickHouse 25.8.13.73
21
SelectWithUnionQuery (children 1)
32
ExpressionList (children 1)
43
SelectQuery (children 2)
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
-- Generated by ClickHouse 25.8.13.73
21
Set

parser/testdata/00002_system_numbers/explain_10.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
-- Generated by ClickHouse 25.8.13.73
21
SelectWithUnionQuery (children 1)
32
ExpressionList (children 1)
43
SelectQuery (children 3)

parser/testdata/00002_system_numbers/explain_11.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
-- Generated by ClickHouse 25.8.13.73
21
SelectWithUnionQuery (children 1)
32
ExpressionList (children 1)
43
SelectQuery (children 3)

parser/testdata/00002_system_numbers/explain_12.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
-- Generated by ClickHouse 25.8.13.73
21
SelectWithUnionQuery (children 1)
32
ExpressionList (children 1)
43
SelectQuery (children 3)

parser/testdata/00002_system_numbers/explain_13.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
-- Generated by ClickHouse 25.8.13.73
21
SelectWithUnionQuery (children 1)
32
ExpressionList (children 1)
43
SelectQuery (children 3)

0 commit comments

Comments
 (0)