DefaultColumns() helper on Table

This commit is contained in:
charlie 2025-02-06 09:34:22 +01:00
parent 00b8155f74
commit 38ea65434f
8 changed files with 50 additions and 3 deletions

View file

@ -21,3 +21,16 @@ func (t Table) MutableColumns() []Column {
return ret
}
// DefaultColumns returns list of columns with default values set for table
func (t Table) DefaultColumns() []Column {
var ret []Column
for _, column := range t.Columns {
if column.HasDefault {
ret = append(ret, column)
}
}
return ret
}

View file

@ -33,6 +33,7 @@ type {{structImplName}} struct {
AllColumns {{dialect.PackageName}}.ColumnList
MutableColumns {{dialect.PackageName}}.ColumnList
DefaultColumns {{dialect.PackageName}}.ColumnList
}
type {{tableTemplate.TypeName}} struct {
@ -78,6 +79,7 @@ func new{{tableTemplate.TypeName}}Impl(schemaName, tableName, alias string) {{st
{{- end}}
allColumns = {{dialect.PackageName}}.ColumnList{ {{columnList .Columns}} }
mutableColumns = {{dialect.PackageName}}.ColumnList{ {{columnList .MutableColumns}} }
defaultColumns = {{dialect.PackageName}}.ColumnList{ {{columnList .DefaultColumns}} }
)
return {{structImplName}}{
@ -93,6 +95,7 @@ func new{{tableTemplate.TypeName}}Impl(schemaName, tableName, alias string) {{st
AllColumns: allColumns,
MutableColumns: mutableColumns,
DefaultColumns: defaultColumns,
}
}
`

View file

@ -136,7 +136,7 @@ type TableSQLBuilderColumn struct {
Type string
}
var reservedKeywords = []string{"TableName", "Table", "SchemaName", "Alias", "AllColumns", "MutableColumns"}
var reservedKeywords = []string{"TableName", "Table", "SchemaName", "Alias", "AllColumns", "MutableColumns", "DefaultColumns"}
func renameIfReserved(name string) string {
if slices.Contains(reservedKeywords, name) {

View file

@ -22,6 +22,7 @@ func TestColumnRenameReserved(t *testing.T) {
{col: "Alias", want: "Alias_"},
{col: "AllColumns", want: "AllColumns_"},
{col: "MutableColumns", want: "MutableColumns_"},
{col: "DefaultColumns", want: "DefaultColumns_"},
{col: "OtherColumn", want: "OtherColumn"},
}