Example #1
0
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)
}
Example #2
0
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
}