func TestMatchType(t *testing.T) { m, err := sql.MatchType("int") assert.Nil(t, err) assert.Equal(t, m, "int") m, err = sql.MatchType("string") assert.Nil(t, err) assert.Equal(t, m, "varchar") m, err = sql.MatchType("time.Time") assert.Nil(t, err) assert.Equal(t, m, "timestamp") m, err = sql.MatchType("Yolo") assert.NotNil(t, err) }
func (iteration *FieldIteration) SQLOptions() (*sql.Options, error) { result, err := sql.NewOptions(iteration.TypeField().Tag.Get("sql")) if err != nil { return nil, err } if len(result.Name) == 0 { result.Name = snakecase.SnakeCase(iteration.Name()) } if len(result.Type) == 0 { sqlType, err := sql.MatchType(iteration.TypeField().Type.String()) if err != nil { return nil, err } result.Type = sqlType result.Length = sql.Types[result.Type] } return result, nil }