| 97 | } |
| 98 | |
| 99 | func TestFileSelectSimple(t *testing.T) { |
| 100 | |
| 101 | sqlText := `SELECT playerid, yearid, teamid |
| 102 | FROM appearances |
| 103 | WHERE playerid = "barnero01" AND yearid = "1871"; |
| 104 | ` |
| 105 | db, err := sql.Open("qlbridge", "testcsvs") |
| 106 | assert.Equal(t, nil, err, "no error: %v", err) |
| 107 | assert.NotEqual(t, nil, db, "has conn: ", db) |
| 108 | |
| 109 | defer func() { |
| 110 | if err := db.Close(); err != nil { |
| 111 | t.Fatalf("Should not error on close: %v", err) |
| 112 | } |
| 113 | }() |
| 114 | |
| 115 | rows, err := db.Query(sqlText) |
| 116 | assert.True(t, err == nil, "no error: %v", err) |
| 117 | defer rows.Close() |
| 118 | assert.True(t, rows != nil, "has results: %v", rows) |
| 119 | cols, err := rows.Columns() |
| 120 | assert.True(t, err == nil, "no error: %v", err) |
| 121 | assert.True(t, len(cols) == 3, "3 cols: %v", cols) |
| 122 | players := make([]player, 0) |
| 123 | for rows.Next() { |
| 124 | var p player |
| 125 | err = rows.Scan(&p.PlayerId, &p.YearId, &p.TeamId) |
| 126 | assert.True(t, err == nil, "no error: %v", err) |
| 127 | u.Debugf("player=%+v", p) |
| 128 | players = append(players, p) |
| 129 | } |
| 130 | assert.True(t, rows.Err() == nil, "no error: %v", err) |
| 131 | assert.True(t, len(players) == 1, "has 1 players row: %+v", players) |
| 132 | |
| 133 | p1 := players[0] |
| 134 | assert.True(t, p1.PlayerId == "barnero01") |
| 135 | assert.True(t, p1.YearId == "1871") |
| 136 | assert.True(t, p1.TeamId == "BS1") |
| 137 | |
| 138 | // r := datasource.DataSourcesRegistry() |
| 139 | // u.Debugf("tables: %v", r.Tables()) |
| 140 | } |
| 141 | |
| 142 | // go test -bench="FileSqlWhere" --run="FileSqlWhere" |
| 143 | // |