parser icon indicating copy to clipboard operation
parser copied to clipboard

The current parser does not support multi-statement SQL parsing. Is there any alternative method to solve this problem?

Open tchen-coder opened this issue 2 years ago • 0 comments

Feature Request

SQL Query

-- SQL query
set @temp=0;
select cnt into @temp from tst ORDER BY cnt DESC LIMIT 1;
Update tst set cnt=@temp+100 where id in(10);

// Go code for parsing the SQL query
sql := "set @temp=0;select cnt into @temp from tst ORDER BY cnt DESC LIMIT 1;Update tst set cnt=@temp+100 where id in(10);"
p := parser.New()
stmtNodes, _, err := p.Parse(sql, "", "")

if err != nil {
    fmt.Println("Error parsing SQL:", err)
    return
}
for _, stmtNode := range stmtNodes {
    fmt.Println("Parsed statement:", stmtNode.Text())
}

Error parsing SQL: line 1 column 27 near "into @temp from tst ORDER BY cnt DESC LIMIT 1;Update tst set cnt=@temp+100 where id in(10);"

-- SQL for creating database table
CREATE TABLE `tst` (
    `id` int(10) DEFAULT NULL,
    `cnt` int(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

tchen-coder avatar Aug 18 '23 03:08 tchen-coder