MCPcopy
hub / github.com/go-sql-driver/mysql / TestNULL

Function TestNULL

driver_test.go:1076–1225  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1074}
1075
1076func TestNULL(t *testing.T) {
1077 runTestsParallel(t, dsn, func(dbt *DBTest, tbl string) {
1078 nullStmt, err := dbt.db.Prepare("SELECT NULL")
1079 if err != nil {
1080 dbt.Fatal(err)
1081 }
1082 defer nullStmt.Close()
1083
1084 nonNullStmt, err := dbt.db.Prepare("SELECT 1")
1085 if err != nil {
1086 dbt.Fatal(err)
1087 }
1088 defer nonNullStmt.Close()
1089
1090 // NullBool
1091 var nb sql.NullBool
1092 // Invalid
1093 if err = nullStmt.QueryRow().Scan(&nb); err != nil {
1094 dbt.Fatal(err)
1095 }
1096 if nb.Valid {
1097 dbt.Error("valid NullBool which should be invalid")
1098 }
1099 // Valid
1100 if err = nonNullStmt.QueryRow().Scan(&nb); err != nil {
1101 dbt.Fatal(err)
1102 }
1103 if !nb.Valid {
1104 dbt.Error("invalid NullBool which should be valid")
1105 } else if nb.Bool != true {
1106 dbt.Errorf("Unexpected NullBool value: %t (should be true)", nb.Bool)
1107 }
1108
1109 // NullFloat64
1110 var nf sql.NullFloat64
1111 // Invalid
1112 if err = nullStmt.QueryRow().Scan(&nf); err != nil {
1113 dbt.Fatal(err)
1114 }
1115 if nf.Valid {
1116 dbt.Error("valid NullFloat64 which should be invalid")
1117 }
1118 // Valid
1119 if err = nonNullStmt.QueryRow().Scan(&nf); err != nil {
1120 dbt.Fatal(err)
1121 }
1122 if !nf.Valid {
1123 dbt.Error("invalid NullFloat64 which should be valid")
1124 } else if nf.Float64 != float64(1) {
1125 dbt.Errorf("unexpected NullFloat64 value: %f (should be 1.0)", nf.Float64)
1126 }
1127
1128 // NullInt64
1129 var ni sql.NullInt64
1130 // Invalid
1131 if err = nullStmt.QueryRow().Scan(&ni); err != nil {
1132 dbt.Fatal(err)
1133 }

Callers

nothing calls this directly

Calls 8

runTestsParallelFunction · 0.85
PrepareMethod · 0.80
ScanMethod · 0.80
mustExecMethod · 0.80
mustQueryMethod · 0.80
CloseMethod · 0.45
ErrorMethod · 0.45
NextMethod · 0.45

Tested by

no test coverage detected