MCPcopy Create free account
hub / github.com/araddon/qlbridge / TestExecSqlCommands

Function TestExecSqlCommands

exec/exec_test.go:42–106  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

40}
41
42func TestExecSqlCommands(t *testing.T) {
43
44 sqlText := `
45 set @myvarname = "var value"
46 `
47 ctx := td.TestContext(sqlText)
48 job, err := exec.BuildSqlJob(ctx)
49 assert.True(t, err == nil, "no error %v", err)
50
51 msgs := make([]schema.Message, 0)
52 resultWriter := exec.NewResultBuffer(ctx, &msgs)
53 job.RootTask.Add(resultWriter)
54
55 err = job.Setup()
56 assert.True(t, err == nil)
57 err = job.Run()
58 time.Sleep(time.Millisecond * 10)
59 assert.True(t, err == nil, "no error %v", err)
60 assert.True(t, len(msgs) == 0, "should not have messages %v", len(msgs))
61 //u.Debugf("msg: %#v", msgs[0])
62
63 ctx2 := td.TestContext(`SELECT 3, @myvarname;`)
64 ctx2.Session = ctx.Session
65 job, err = exec.BuildSqlJob(ctx2)
66 assert.True(t, err == nil, "no error %v", err)
67
68 msgs = make([]schema.Message, 0)
69 resultWriter = exec.NewResultBuffer(ctx2, &msgs)
70 job.RootTask.Add(resultWriter)
71
72 err = job.Setup()
73 assert.True(t, err == nil)
74 err = job.Run()
75 time.Sleep(time.Millisecond * 10)
76 assert.True(t, err == nil, "no error %v", err)
77 assert.True(t, len(msgs) == 1, "should have 1 messages %v", len(msgs))
78 msg := msgs[0].Body().(*datasource.SqlDriverMessageMap)
79
80 assert.True(t, msg.Vals[0] == int64(3), "Has 3?")
81 assert.True(t, msg.Vals[1] == "var value", "Has variable value? %v", msg.Vals[1])
82
83 cmds := []string{
84 `set sql_mode = 'NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'`,
85 `set NAMES utf8`,
86 `set CHARACTER SET utf8`,
87 `rollback`,
88 `commit`,
89 }
90
91 msgs = make([]schema.Message, 0)
92 for _, setCmd := range cmds {
93 ctx2 := td.TestContext(setCmd)
94 ctx2.Session = ctx.Session
95 job, err = exec.BuildSqlJob(ctx2)
96 assert.True(t, err == nil, "no error %v", err)
97
98 resultWriter = exec.NewResultBuffer(ctx2, &msgs)
99 job.RootTask.Add(resultWriter)

Callers

nothing calls this directly

Calls 6

BuildSqlJobFunction · 0.92
NewResultBufferFunction · 0.92
AddMethod · 0.65
SetupMethod · 0.65
RunMethod · 0.65
BodyMethod · 0.65

Tested by

no test coverage detected