-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathget_root-test.lua
35 lines (31 loc) · 992 Bytes
/
get_root-test.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
dumper = require ("tbdumper")
parser = require("sqlparser")
p = parser.NewParser(2)
query = "select * from tb1 where col1='A';"
assert(0 == p:check_syntax(query))
-- dumper.print(p:tokenize(query))
assert(1 == p:get_statement_count())
s = p:get_statement(0)
assert(nil ~= getmetatable(p))
assert(nil ~= getmetatable(s))
print("-----")
n = s:get_root()
--n = parser.NewNode()
assert(nil ~= getmetatable(parser.NewNode()))
assert(nil ~= getmetatable(n))
print("get_root return:", n)
print("get_statement return:", s)
dumper.print(getmetatable(s), 2)
print("statemtn table end ")
dumper.print(getmetatable(n), 1)
-- print(n:node_type)
dumper.print(n, 1)
print("get_txt:",n:get_text())
p2 = parser.NewParser(2)
assert(0 == p2:check_syntax("insert into tab1(a,b) values(1,2),(3,4);"))
r = p2:get_statement(0):get_root()
dumper.print(getmetatable(r), 1)
dumper.print(getmetatable(n), 2)
print(r == n)
print(type(r))
assert(getmetatable(p:get_statement(0)) == getmetatable(p2:get_statement(0)))