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

Function TestExecInsert

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

Source from the content-addressed store, hash-verified

240}
241
242func TestExecInsert(t *testing.T) {
243
244 // By "Loading" table we force it to exist in this non DDL mock store
245 mockcsv.LoadTable(mockcsv.SchemaName, "user_event", "id,user_id,event,date\n1,abcabcabc,signup,\"2012-12-24T17:29:39.738Z\"")
246
247 //u.Infof("%p schema", mockSchema)
248 td.TestContext("select * from user_event")
249
250 db, err := schema.OpenConn("mockcsv", "user_event")
251 assert.Equal(t, nil, err)
252 dbTable, ok := db.(*mockcsv.Table)
253 assert.True(t, ok, "Should be type StaticDataSource but was T %T", db)
254 assert.Equal(t, 1, dbTable.Length(), "Should have 1 row but was %v", dbTable.Length())
255
256 sqlText := `
257 INSERT into user_event (id, user_id, event, date)
258 VALUES
259 (uuid(), "9Ip1aKbeZe2njCDM", "logon", now())
260 `
261 ctx := td.TestContext(sqlText)
262 job, err := exec.BuildSqlJob(ctx)
263 assert.Equal(t, nil, err)
264
265 msgs := make([]schema.Message, 0)
266 resultWriter := exec.NewResultBuffer(ctx, &msgs)
267 job.RootTask.Add(resultWriter)
268
269 err = job.Setup()
270 assert.Equal(t, nil, err)
271 err = job.Run()
272 assert.Equal(t, nil, err)
273 db2, err := schema.OpenConn("mockcsv", "user_event")
274 assert.Equal(t, nil, err)
275 dbTable2, ok := db2.(*mockcsv.Table)
276 assert.True(t, ok, "Should be type StaticDataSource but was T %T", db2)
277 //u.Infof("db: %#v", dbTable2)
278 assert.True(t, dbTable2.Length() == 2, "Should have inserted 2 but was %v", dbTable2.Length())
279
280 // Now lets query it, we are going to use QLBridge Driver
281 sqlText = `
282 select id, user_id, event, date
283 FROM user_event
284 WHERE user_id = "9Ip1aKbeZe2njCDM"
285 `
286 sqlDb, err := sql.Open("qlbridge", "mockcsv")
287 assert.Equal(t, nil, err)
288 assert.True(t, sqlDb != nil, "has conn: %v", sqlDb)
289 defer func() { sqlDb.Close() }()
290
291 rows, err := sqlDb.Query(sqlText)
292 assert.Equal(t, nil, err)
293 defer rows.Close()
294 assert.True(t, rows != nil, "has results: %v", rows)
295 cols, err := rows.Columns()
296 assert.Equal(t, nil, err)
297 assert.True(t, len(cols) == 4, "4 cols: %v", cols)
298 events := make([]*UserEvent, 0)
299 for rows.Next() {

Callers

nothing calls this directly

Calls 15

LoadTableFunction · 0.92
OpenConnFunction · 0.92
BuildSqlJobFunction · 0.92
NewResultBufferFunction · 0.92
LengthMethod · 0.80
RowsAffectedMethod · 0.80
EqualMethod · 0.65
AddMethod · 0.65
SetupMethod · 0.65
RunMethod · 0.65
OpenMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected