Using antlr4 go to parse SQL takes too much time

48 Views Asked by At

Using antlr4 go to parse SQL takes too much time, eg:

I am using https://github.com/antlr/grammars-v4/blob/master/sql/mysql/Positive-Technologies/MySqlParser.g4

sql := fmt.Sprintf(`select * from xx where id=1`)
    var is *antlr.InputStream
    is = antlr.NewInputStream(sql)
    lexer := parser.NewMySqlLexer(is)
    tokens := antlr.NewCommonTokenStream(lexer, antlr.TokenDefaultChannel)

    p := parser.NewMySqlParser(tokens)

    startTime := time.Now()
    p.Root()
    endTime := time.Now()
    elapsedTime := endTime.Sub(startTime)
    fmt.Printf("Execution time:: %s \n", elapsedTime)

output:

Execution time: 50ms

How to optimize it? Using antlr4 go to parse SQL takes too much time, eg:

I am using https://github.com/antlr/grammars-v4/blob/master/sql/mysql/Positive-Technologies/MySqlParser.g4

0

There are 0 best solutions below