(t *testing.T)
| 106 | } |
| 107 | |
| 108 | func TestExecSelectWhere(t *testing.T) { |
| 109 | sqlText := ` |
| 110 | select |
| 111 | user_id, email, referral_count * 2, 5, yy(reg_date) > 10 |
| 112 | FROM users |
| 113 | WHERE yy(reg_date) > 10 |
| 114 | ` |
| 115 | ctx := td.TestContext(sqlText) |
| 116 | job, err := exec.BuildSqlJob(ctx) |
| 117 | assert.True(t, err == nil, "no error %v", err) |
| 118 | |
| 119 | msgs := make([]schema.Message, 0) |
| 120 | resultWriter := exec.NewResultBuffer(ctx, &msgs) |
| 121 | job.RootTask.Add(resultWriter) |
| 122 | |
| 123 | err = job.Setup() |
| 124 | assert.True(t, err == nil) |
| 125 | err = job.Run() |
| 126 | time.Sleep(time.Millisecond * 10) |
| 127 | assert.True(t, err == nil, "no error %v", err) |
| 128 | assert.True(t, len(msgs) == 1, "should have filtered out 2 messages %v", len(msgs)) |
| 129 | //u.Debugf("msg: %#v", msgs[0]) |
| 130 | row := msgs[0].(*datasource.SqlDriverMessageMap).Values() |
| 131 | //u.Debugf("row: %#v", row) |
| 132 | assert.True(t, len(row) == 5, "expects 5 cols but got %v", len(row)) |
| 133 | assert.True(t, row[0] == "9Ip1aKbeZe2njCDM") |
| 134 | // I really don't like this float behavior? |
| 135 | assert.True(t, int(row[2].(float64)) == 164, "expected %v == 164 T:%T", row[2], row[2]) |
| 136 | assert.True(t, row[3] == int64(5), "wanted 5 got %v T:%T", row[3], row[3]) |
| 137 | assert.True(t, row[4] == true) |
| 138 | } |
| 139 | |
| 140 | func TestExecGroupBy(t *testing.T) { |
| 141 |
nothing calls this directly
no test coverage detected