Skip to content

Commit a449a92

Browse files
committed
Delete explain files without version headers and update test
- Remove 142 explain files that ClickHouse couldn't regenerate - Update TestExplainVersionConsistency to skip explain_todo statements - All remaining explain files now have consistent ClickHouse 25.8 headers
1 parent e590e8c commit a449a92

File tree

143 files changed

+76
-1076
lines changed

Some content is hidden

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

143 files changed

+76
-1076
lines changed

parser/parser_test.go

Lines changed: 76 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,19 +272,90 @@ func TestParser(t *testing.T) {
272272
// This test:
273273
// - Scans all explain*.txt files in testdata/
274274
// - 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
275276
// - Reports files without version headers
276277
// - Reports if multiple different versions are found
277278
// - Passes only when all files have the same version header
278279
func TestExplainVersionConsistency(t *testing.T) {
279280
testdataDir := "testdata"
280281

281-
// Find all explain*.txt files
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
282342
var explainFiles []string
343+
var skippedDirs = make(map[string]bool)
344+
var skippedFiles int
283345
err := filepath.Walk(testdataDir, func(path string, info os.FileInfo, err error) error {
284346
if err != nil {
285347
return err
286348
}
287349
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+
}
288359
explainFiles = append(explainFiles, path)
289360
}
290361
return nil
@@ -293,6 +364,10 @@ func TestExplainVersionConsistency(t *testing.T) {
293364
t.Fatalf("Failed to walk testdata directory: %v", err)
294365
}
295366

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+
296371
if len(explainFiles) == 0 {
297372
t.Skip("No explain*.txt files found")
298373
}

parser/testdata/01073_grant_and_revoke/explain_15.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

parser/testdata/01073_grant_and_revoke/explain_16.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

parser/testdata/01073_grant_and_revoke/explain_17.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

parser/testdata/01292_create_user/explain_230.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

parser/testdata/01292_create_user/explain_232.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

parser/testdata/01292_create_user/explain_239.txt

Lines changed: 0 additions & 3 deletions
This file was deleted.

parser/testdata/01559_misplaced_codec_diagnostics/explain.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

parser/testdata/01604_explain_ast_of_nonselect_query/explain.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

parser/testdata/01715_table_function_view_fix/explain.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)