|
44 | 44 | prot string
|
45 | 45 | addr string
|
46 | 46 | dbname string
|
| 47 | +vendor string |
47 | 48 | dsn string
|
48 | 49 | netAddr string
|
49 | 50 | available bool
|
@@ -202,6 +203,7 @@ func (dbt *DBTest) mustQuery(query string, args ...interface{}) (rows *sql.Rows)
|
202 | 203 | func maybeSkip(t *testing.T, err error, skipErrno uint16) {
|
203 | 204 | mySQLErr, ok := err.(*MySQLError)
|
204 | 205 | if !ok {
|
| 206 | +errLog.Print("non match") |
205 | 207 | return
|
206 | 208 | }
|
207 | 209 |
|
@@ -1345,6 +1347,49 @@ func TestFoundRows(t *testing.T) {
|
1345 | 1347 | })
|
1346 | 1348 | }
|
1347 | 1349 |
|
| 1350 | +func TestOptionalResultSetMetadata(t *testing.T) { |
| 1351 | +runTests(t, dsn+"&resultSetMetadata=none", func(dbt *DBTest) { |
| 1352 | +_, err := dbt.db.Exec("CREATE TABLE test (id INT NOT NULL ,data INT NOT NULL)") |
| 1353 | +if err == ErrNoOptionalResultSet { |
| 1354 | +t.Skip("server does not support resultset metadata") |
| 1355 | +} else if err != nil { |
| 1356 | +dbt.Fatal(err) |
| 1357 | +} |
| 1358 | +dbt.mustExec("INSERT INTO test (id, data) VALUES (0, 0),(0, 0),(1, 0),(1, 0),(1, 1)") |
| 1359 | + |
| 1360 | +row := dbt.db.QueryRow("SELECT id, data FROM test WHERE id = 1") |
| 1361 | +id, data := 0, 0 |
| 1362 | +err = row.Scan(&id, &data) |
| 1363 | +if err != nil { |
| 1364 | +dbt.Fatal(err) |
| 1365 | +} |
| 1366 | + |
| 1367 | +if id != 1 && data != 0 { |
| 1368 | +dbt.Fatal("invalid result") |
| 1369 | +} |
| 1370 | +}) |
| 1371 | +runTests(t, dsn+"&resultSetMetadata=full", func(dbt *DBTest) { |
| 1372 | +_, err := dbt.db.Exec("CREATE TABLE test (id INT NOT NULL ,data INT NOT NULL)") |
| 1373 | +if err == ErrNoOptionalResultSet { |
| 1374 | +t.Skip("server does not support resultset metadata") |
| 1375 | +} else if err != nil { |
| 1376 | +dbt.Fatal(err) |
| 1377 | +} |
| 1378 | +dbt.mustExec("INSERT INTO test (id, data) VALUES (0, 0),(0, 0),(1, 0),(1, 0),(1, 1)") |
| 1379 | + |
| 1380 | +row := dbt.db.QueryRow("SELECT id, data FROM test WHERE id = 1") |
| 1381 | +id, data := 0, 0 |
| 1382 | +err = row.Scan(&id, &data) |
| 1383 | +if err != nil { |
| 1384 | +dbt.Fatal(err) |
| 1385 | +} |
| 1386 | + |
| 1387 | +if id != 1 && data != 0 { |
| 1388 | +dbt.Fatal("invalid result") |
| 1389 | +} |
| 1390 | +}) |
| 1391 | +} |
| 1392 | + |
1348 | 1393 | func TestTLS(t *testing.T) {
|
1349 | 1394 | tlsTestReq := func(dbt *DBTest) {
|
1350 | 1395 | if err := dbt.db.Ping(); err != nil {
|
|
0 commit comments