MCPcopy Index your code
hub / github.com/bytebase/bytebase / ToYaml

Method ToYaml

backend/plugin/parser/base/span.go:352–428  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

350type GetLinkedDatabaseMetadataFunc func(context.Context, string, string, string) (string, string, *model.DatabaseMetadata, error)
351
352func (s *QuerySpan) ToYaml() *YamlQuerySpan {
353 y := &YamlQuerySpan{
354 Type: s.Type,
355 Results: []YamlQuerySpanResult{},
356 SourceColumns: []ColumnResource{},
357 PredicateColumns: []ColumnResource{},
358 }
359 for _, result := range s.Results {
360 yamlResult := &YamlQuerySpanResult{
361 Name: result.Name,
362 SourceColumns: []ColumnResource{},
363 IsPlainField: result.IsPlainField,
364 SelectAsterisk: result.SelectAsterisk,
365 SourceFieldPaths: []YamlQuerySpanResultSourceFieldPaths{},
366 }
367 for k := range result.SourceColumns {
368 yamlResult.SourceColumns = append(yamlResult.SourceColumns, k)
369 }
370 slices.SortFunc(yamlResult.SourceColumns, func(i, j ColumnResource) int {
371 if i.String() < j.String() {
372 return -1
373 }
374 if i.String() > j.String() {
375 return 1
376 }
377 return 0
378 })
379 for k, paths := range result.SourceFieldPaths {
380 for _, v := range paths {
381 s, _ := v.String()
382 yamlResult.SourceFieldPaths = append(yamlResult.SourceFieldPaths, YamlQuerySpanResultSourceFieldPaths{
383 Name: k,
384 Path: s,
385 })
386 }
387 }
388 slices.SortFunc(yamlResult.SourceFieldPaths, func(i, j YamlQuerySpanResultSourceFieldPaths) int {
389 if i.Name < j.Name {
390 return -1
391 }
392 if i.Name > j.Name {
393 return 1
394 }
395 return 0
396 })
397 y.Results = append(y.Results, *yamlResult)
398 }
399 for k := range s.SourceColumns {
400 y.SourceColumns = append(y.SourceColumns, k)
401 }
402 slices.SortFunc(y.SourceColumns, func(i, j ColumnResource) int {
403 if i.String() < j.String() {
404 return -1
405 }
406 if i.String() > j.String() {
407 return 1
408 }
409 return 0

Callers 13

TestGetQuerySpanFromYAMLFunction · 0.80
TestGetQuerySpanFunction · 0.80
runMySQLOmniGoldenCaseFunction · 0.80
TestGetQuerySpanFunction · 0.80
runOracleOmniGoldenCaseFunction · 0.80
TestGetQuerySpanFunction · 0.80
TestGetQuerySpanFunction · 0.80
RunQuerySpanCorpusFunction · 0.80
TestGetQuerySpanFunction · 0.80
TestGetQuerySpanFunction · 0.80

Calls 1

StringMethod · 0.65

Tested by 12

TestGetQuerySpanFromYAMLFunction · 0.64
TestGetQuerySpanFunction · 0.64
runMySQLOmniGoldenCaseFunction · 0.64
TestGetQuerySpanFunction · 0.64
runOracleOmniGoldenCaseFunction · 0.64
TestGetQuerySpanFunction · 0.64
TestGetQuerySpanFunction · 0.64
TestGetQuerySpanFunction · 0.64
TestGetQuerySpanFunction · 0.64
TestGetQuerySpanFunction · 0.64