MCPcopy Create free account
hub / github.com/apecloud/myduckserver / TestQuery

Method TestQuery

flightsqltest/driver_test.go:253–316  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

251}
252
253func (s *SqlTestSuite) TestQuery() {
254 t := s.T()
255
256 // Create and start the server
257 server, addr, err := s.createServer()
258 require.NoError(t, err)
259
260 var wg sync.WaitGroup
261 wg.Add(1)
262 go func() {
263 defer wg.Done()
264 require.NoError(s.T(), s.startServer(server))
265 }()
266 defer s.stopServer(server)
267 time.Sleep(100 * time.Millisecond)
268
269 // Configure client
270 cfg := s.Config
271 cfg.Address = addr
272 db, err := sql.Open("flightsql", cfg.DSN())
273 require.NoError(t, err)
274 defer db.Close()
275
276 _, err = db.Exec(fmt.Sprintf("DROP TABLE IF EXISTS %s", s.TableName))
277 require.NoError(t, err)
278
279 // Create the table
280 _, err = db.Exec(fmt.Sprintf(s.Statements["create table"], s.TableName))
281 require.NoError(t, err)
282
283 // Insert data
284 expected := map[string]int{
285 "zero": 0,
286 "one": 1,
287 "minus one": -1,
288 "twelve": 12,
289 }
290 var stmts []string
291 id := 0
292 for k, v := range expected {
293 stmts = append(stmts, fmt.Sprintf(s.Statements["insert"], s.TableName, id, k, v))
294 id++
295 }
296 _, err = db.Exec(strings.Join(stmts, "\n"))
297 require.NoError(t, err)
298
299 rows, err := db.Query(fmt.Sprintf(s.Statements["query"], s.TableName))
300 require.NoError(t, err)
301
302 // Check result
303 actual := make(map[string]int, len(expected))
304 for rows.Next() {
305 var name string
306 var id, value int
307 require.NoError(t, rows.Scan(&id, &name, &value))
308 actual[name] = value
309 }
310 require.NoError(t, db.Close())

Callers

nothing calls this directly

Calls 2

CloseMethod · 0.65
NextMethod · 0.45

Tested by

no test coverage detected