(t *testing.T)
| 441 | } |
| 442 | |
| 443 | func 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 |
| 497 | func testSubselect(t *testing.T) { |
nothing calls this directly
no test coverage detected