Added SortByKeys to insert
This commit is contained in:
parent
d0b494600e
commit
a20574110c
5 changed files with 14 additions and 1 deletions
|
@ -74,6 +74,7 @@ func NonZeroDefaultSet(defaults []string, obj interface{}) []string {
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SortByKeys returns a new ordered slice based on the keys ordering
|
||||||
func SortByKeys(keys []string, strs []string) []string {
|
func SortByKeys(keys []string, strs []string) []string {
|
||||||
c := make([]string, len(strs))
|
c := make([]string, len(strs))
|
||||||
|
|
||||||
|
|
|
@ -142,6 +142,7 @@ var sqlBoilerTemplateFuncs = template.FuncMap{
|
||||||
"camelCaseSingular": strmangle.CamelCaseSingular,
|
"camelCaseSingular": strmangle.CamelCaseSingular,
|
||||||
"camelCasePlural": strmangle.CamelCasePlural,
|
"camelCasePlural": strmangle.CamelCasePlural,
|
||||||
"camelCaseCommaList": strmangle.CamelCaseCommaList,
|
"camelCaseCommaList": strmangle.CamelCaseCommaList,
|
||||||
|
"columnsToStrings": strmangle.ColumnsToStrings,
|
||||||
"commaList": strmangle.CommaList,
|
"commaList": strmangle.CommaList,
|
||||||
"makeDBName": strmangle.MakeDBName,
|
"makeDBName": strmangle.MakeDBName,
|
||||||
"selectParamNames": strmangle.SelectParamNames,
|
"selectParamNames": strmangle.SelectParamNames,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{{- $varNameSingular := camelCaseSingular .Table.Name -}}
|
{{- $varNameSingular := camelCaseSingular .Table.Name -}}
|
||||||
var {{$varNameSingular}}Columns = []string{{"{"}}{{commaList .Table.Columns}}{{"}"}}
|
var {{$varNameSingular}}Columns = []string{{"{"}}{{columnsToStrings .Table.Columns | commaList}}{{"}"}}
|
||||||
var {{$varNameSingular}}ColumnsWithoutDefault = []string{{"{"}}{{filterColumnsByDefault .Table.Columns false}}{{"}"}}
|
var {{$varNameSingular}}ColumnsWithoutDefault = []string{{"{"}}{{filterColumnsByDefault .Table.Columns false}}{{"}"}}
|
||||||
var {{$varNameSingular}}ColumnsWithDefault = []string{{"{"}}{{filterColumnsByDefault .Table.Columns true}}{{"}"}}
|
var {{$varNameSingular}}ColumnsWithDefault = []string{{"{"}}{{filterColumnsByDefault .Table.Columns true}}{{"}"}}
|
||||||
var {{$varNameSingular}}PrimaryKeyColumns = []string{{"{"}}{{commaList .Table.PKey.Columns}}{{"}"}}
|
var {{$varNameSingular}}PrimaryKeyColumns = []string{{"{"}}{{commaList .Table.PKey.Columns}}{{"}"}}
|
||||||
|
|
|
@ -19,6 +19,7 @@ func (o *{{$tableNameSingular}}) InsertX(exec boil.Executor, whitelist ... strin
|
||||||
}
|
}
|
||||||
|
|
||||||
wl = append(boil.NonZeroDefaultSet({{$varNameSingular}}ColumnsWithDefault, o), wl...)
|
wl = append(boil.NonZeroDefaultSet({{$varNameSingular}}ColumnsWithDefault, o), wl...)
|
||||||
|
wl = boil.SortByKeys({{$varNameSingular}}Columns, wl)
|
||||||
|
|
||||||
// Only return the columns with default values that are not in the insert whitelist
|
// Only return the columns with default values that are not in the insert whitelist
|
||||||
returnColumns := boil.SetComplement({{$varNameSingular}}ColumnsWithDefault, wl)
|
returnColumns := boil.SetComplement({{$varNameSingular}}ColumnsWithDefault, wl)
|
||||||
|
|
|
@ -310,6 +310,16 @@ func AutoIncPrimaryKey(cols []dbdrivers.Column, pkey *dbdrivers.PrimaryKey) stri
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ColumnsToString changes the columns into a list of column names
|
||||||
|
func ColumnsToStrings(cols []dbdrivers.Column) []string {
|
||||||
|
names := make([]string, len(cols))
|
||||||
|
for i, c := range cols {
|
||||||
|
names[i] = c.Name
|
||||||
|
}
|
||||||
|
|
||||||
|
return names
|
||||||
|
}
|
||||||
|
|
||||||
// CommaList returns a comma seperated list: "col1", "col2", "col3"
|
// CommaList returns a comma seperated list: "col1", "col2", "col3"
|
||||||
func CommaList(cols []string) string {
|
func CommaList(cols []string) string {
|
||||||
return fmt.Sprintf(`"%s"`, strings.Join(cols, `", "`))
|
return fmt.Sprintf(`"%s"`, strings.Join(cols, `", "`))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue