MCPcopy Create free account
hub / github.com/donatj/sqlread / main

Function main

cmd/sqlread/main.go:28–78  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

26}
27
28func main() {
29 log.Println("sqlread build:", buildString)
30 // return
31 log.Println("starting initial pass")
32
33 unbuff, err := os.Open(filename)
34 if err != nil {
35 log.Fatal(err)
36 }
37
38 buff := bufra.NewBufReaderAt(unbuff, 100000000)
39
40 cache := mapcache.New(unbuff)
41 tree, err := cache.Get()
42 if err != nil && err != mapcache.ErrCacheMiss {
43 log.Fatal(err)
44 }
45
46 if err == mapcache.ErrCacheMiss || *nocache {
47 l, li := sqlread.Lex(buff)
48 go func() {
49 l.Run(sqlread.StartState)
50 }()
51
52 sp := sqlread.NewSummaryParser()
53
54 p := sqlread.Parse(li)
55 err = p.Run(sp.ParseStart)
56 if err != nil {
57 log.Fatal(err)
58 }
59
60 if !*nocache {
61 cache.Store(sp.Tree)
62 }
63
64 tree = sp.Tree
65 } else {
66 log.Println("loaded from cache")
67 }
68
69 log.Println("finished initial pass")
70
71 //for tbl, _ := range t {
72 // fmt.Println(tbl)
73 //}
74
75 _ = tree
76
77 interactive(tree, buff)
78}
79
80func interactive(tree sqlread.SummaryTree, buff io.ReaderAt) {
81 w := csv.NewWriter(os.Stdout)

Callers

nothing calls this directly

Calls 8

NewFunction · 0.92
LexFunction · 0.92
NewSummaryParserFunction · 0.92
ParseFunction · 0.92
interactiveFunction · 0.85
GetMethod · 0.80
StoreMethod · 0.80
RunMethod · 0.45

Tested by

no test coverage detected