mirror of
https://github.com/ent/ent.git
synced 2026-05-24 09:31:56 +03:00
dialect.sql/schema.Column ScanDefault allowed uuid default to function (#1537)
This commit is contained in:
@@ -263,8 +263,13 @@ func (c *Column) ScanDefault(value string) error {
|
||||
c.Default = v.String
|
||||
case c.Type == field.TypeBytes:
|
||||
c.Default = []byte(value)
|
||||
case c.Type == field.TypeUUID:
|
||||
// skip function
|
||||
if !strings.Contains(value, "()") {
|
||||
c.Default = value
|
||||
}
|
||||
default:
|
||||
return fmt.Errorf("unsupported default type: %v", c.Type)
|
||||
return fmt.Errorf("unsupported default type: %v default to %q", c.Type, value)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -94,4 +94,10 @@ func TestColumn_ScanDefault(t *testing.T) {
|
||||
require.NoError(t, c1.ScanDefault("false"))
|
||||
require.Equal(t, false, c1.Default)
|
||||
require.Error(t, c1.ScanDefault("foo"))
|
||||
|
||||
c1 = &Column{Type: field.TypeUUID}
|
||||
require.NoError(t, c1.ScanDefault("gen_random_uuid()"))
|
||||
require.Equal(t, nil, c1.Default)
|
||||
require.NoError(t, c1.ScanDefault("00000000-0000-0000-0000-000000000000"))
|
||||
require.Equal(t, "00000000-0000-0000-0000-000000000000", c1.Default)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user