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

Function TestExecDelete

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

Source from the content-addressed store, hash-verified

441}
442
443func TestExecDelete(t *testing.T) {
444
445 // By "Loading" table we force it to exist in this non DDL mock store
446 mockcsv.LoadTable(mockcsv.SchemaName, "user_event2",
447 "id,user_id,event,date\n1,abcd,signup,\"2012-12-24T17:29:39.738Z\"")
448
449 sqlText := `
450 INSERT into user_event2 (id, user_id, event, date)
451 VALUES
452 (uuid(), "9Ip1aKbeZe2njCDM", "logon", now())
453 , (uuid(), "9Ip1aKbeZe2njCDM", "click", now())
454 , (uuid(), "abcd", "logon", now())
455 , (uuid(), "abcd", "click", now())
456 `
457
458 ctx := td.TestContext(sqlText)
459 job, err := exec.BuildSqlJob(ctx)
460 assert.True(t, err == nil, "build job failed ", err)
461 job.Setup()
462 err = job.Run()
463 assert.True(t, err == nil)
464
465 db, err := schema.OpenConn("mockcsv", "user_event2")
466 assert.True(t, err == nil, "%v", err)
467 userEvt2, ok := db.(*mockcsv.Table)
468 assert.True(t, ok, "Should be type StaticDataSource %p %v", userEvt2, userEvt2)
469 //u.Warnf("how many? %v", userEvt2.Length())
470 assert.True(t, userEvt2.Length() == 5, "Should have inserted 4, for 5 total rows but %p has: %d", userEvt2, userEvt2.Length())
471
472 /*
473 dbTable, ok := db.(*mockcsv.MockCsvTable)
474 assert.True(t, ok, "Should be type StaticDataSource but was T %T", db)
475 assert.True(t, dbTable.Length() == 1, "Should have inserted 1 but was %v", dbTable.Length())
476 */
477 // Now lets delete a few rows
478 sqlText = `
479 DELETE FROM user_event2
480 WHERE user_id = "abcd"
481 `
482 // This is a go sql/driver not same as qlbridge db above
483 sqlDb, err := sql.Open("qlbridge", "mockcsv")
484 assert.True(t, err == nil, "no error: %v", err)
485 assert.True(t, sqlDb != nil, "has conn: %v", sqlDb)
486 defer func() { sqlDb.Close() }()
487
488 result, err := sqlDb.Exec(sqlText)
489 assert.True(t, err == nil, "error: %v", err)
490 assert.True(t, result != nil, "has results: %v", result)
491 delCt, err := result.RowsAffected()
492 assert.True(t, err == nil, "no error: %v", err)
493 assert.True(t, delCt == 3, "should have deleted 3 but was %v", delCt)
494}
495
496// sub-select not implemented in exec yet
497func testSubselect(t *testing.T) {

Callers

nothing calls this directly

Calls 10

LoadTableFunction · 0.92
BuildSqlJobFunction · 0.92
OpenConnFunction · 0.92
LengthMethod · 0.80
RowsAffectedMethod · 0.80
SetupMethod · 0.65
RunMethod · 0.65
OpenMethod · 0.65
CloseMethod · 0.65
ExecMethod · 0.45

Tested by

no test coverage detected