Skip to content

Commit 2f1daeb

Browse files
authored
missed case for nullable enums (#3043)
1 parent cf1535b commit 2f1daeb

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

enginetest/queries/script_queries.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8082,6 +8082,27 @@ where
80828082
},
80838083
},
80848084
},
8085+
{
8086+
Name: "ensure that special case does not apply for nullable enums",
8087+
Dialect: "mysql",
8088+
SetUpScript: []string{
8089+
"create table t (i int primary key, e enum('abc', 'def', 'ghi'));",
8090+
},
8091+
Assertions: []ScriptTestAssertion{
8092+
{
8093+
Query: "insert into t(i) values (1)",
8094+
Expected: []sql.Row{
8095+
{types.NewOkResult(1)},
8096+
},
8097+
},
8098+
{
8099+
Query: "select * from t;",
8100+
Expected: []sql.Row{
8101+
{1, nil},
8102+
},
8103+
},
8104+
},
8105+
},
80858106
{
80868107
Name: "not expression optimization",
80878108
Dialect: "mysql",

sql/rowexec/insert.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ func (i *insertIter) Next(ctx *sql.Context) (returnRow sql.Row, returnErr error)
8787
break
8888
}
8989
_, isColDefVal := i.insertExprs[idx].(*sql.ColumnDefaultValue)
90-
if row[idx] == nil && types.IsEnum(col.Type) && isColDefVal {
90+
if row[idx] == nil && !col.Nullable && types.IsEnum(col.Type) && isColDefVal {
9191
row[idx] = 1
9292
}
9393
}

0 commit comments

Comments
 (0)