Skip to content

Commit 24ee22c

Browse files
committed
cleanup code
1 parent 16ef988 commit 24ee22c

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

sql/analyzer/resolve_column_defaults.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -273,16 +273,15 @@ func validateColumnDefault(ctx *sql.Context, col *sql.Column, colDefault *sql.Co
273273
return err
274274
}
275275

276-
// For enum literal defaults, use stricter validation than runtime conversion
276+
// validate type of default expression
277+
if err = colDefault.CheckType(ctx); err != nil {
278+
return err
279+
}
280+
277281
if enumType, isEnum := col.Type.(sql.EnumType); isEnum && colDefault.IsLiteral() {
278282
if err = validateEnumLiteralDefault(enumType, colDefault, col.Name, ctx); err != nil {
279283
return err
280284
}
281-
} else {
282-
// validate type of default expression
283-
if err = colDefault.CheckType(ctx); err != nil {
284-
return err
285-
}
286285
}
287286

288287
return nil

sql/types/enum.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,8 @@ func (t EnumType) Convert(ctx context.Context, v interface{}) (interface{}, sql.
165165

166166
switch value := v.(type) {
167167
case int:
168-
// Check for 0 value in strict mode - MySQL behavior
169168
// MySQL rejects 0 values in strict mode regardless of enum definition
170-
if value == 0 && t.isStrictMode(ctx) {
169+
if value == 0 && t.validateScrictMode(ctx) {
171170
return nil, sql.OutOfRange, ErrConvertingToEnum.New(value)
172171
}
173172
if _, ok := t.At(value); ok {
@@ -216,8 +215,8 @@ func (t EnumType) Convert(ctx context.Context, v interface{}) (interface{}, sql.
216215
return nil, sql.InRange, ErrConvertingToEnum.New(v)
217216
}
218217

219-
// isStrictMode checks if STRICT_TRANS_TABLES or STRICT_ALL_TABLES is enabled
220-
func (t EnumType) isStrictMode(ctx context.Context) bool {
218+
// validateScrictMode checks if STRICT_TRANS_TABLES or STRICT_ALL_TABLES is enabled
219+
func (t EnumType) validateScrictMode(ctx context.Context) bool {
221220
if sqlCtx, ok := ctx.(*sql.Context); ok {
222221
sqlMode := sql.LoadSqlMode(sqlCtx)
223222
return sqlMode.ModeEnabled("STRICT_TRANS_TABLES") || sqlMode.ModeEnabled("STRICT_ALL_TABLES")

0 commit comments

Comments
 (0)