go-gorm / go-gorm/sqlite

Incorrect ColumnType Nullable default

Open
#158 1 comment 0 reactions 1 assignee Claimed by @jinzhu View on GitHub
Dominant language
Go
Stars
231
Forks
217
PR merge metrics
No merged PRs in 30d

Description

## Description

Sqlite coumns that are neither `NOT NULL` or `NULL` are nullable by default. However, `.Nullable()` defaults to false and is only set `true` if the `CREATE TABLE` sql explicitly denotes the column as `NULL`

https://github.com/go-gorm/sqlite/blob/397ec6fa8c64060db1dd392675cf51ab919c4c3c/ddlmod.go#L122
```
columnType := migrator.ColumnType{

NullableValue: sql.NullBool{Valid: true}, //<--- .Bool implicitly false, i.e. NOT NULL

}

matchUpper := strings.ToUpper(matches[3])
if strings.Contains(matchUpper, " NOT NULL") {
columnType.NullableValue = sql.NullBool{Bool: false, Valid: true}
} else if strings.Contains(matchUpper, " NULL") {
columnType.NullableValue = sql.NullBool{Bool: true, Valid: true}
}
...
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.