Remove helpers in favor of more optimized paths
This commit is contained in:
parent
7e4113272d
commit
a426f09a75
8 changed files with 18 additions and 100 deletions
|
@ -27,6 +27,7 @@ type (
|
|||
var (
|
||||
{{$varNameSingular}}Type = reflect.TypeOf(&{{$tableNameSingular}}{})
|
||||
{{$varNameSingular}}Mapping = queries.MakeStructMapping({{$varNameSingular}}Type)
|
||||
{{$varNameSingular}}PrimaryKeyMapping, _ = queries.BindMapping({{$varNameSingular}}Type, {{$varNameSingular}}Mapping, {{$varNameSingular}}PrimaryKeyColumns)
|
||||
{{$varNameSingular}}InsertCacheMut sync.RWMutex
|
||||
{{$varNameSingular}}InsertCache = make(map[string]insertCache)
|
||||
{{$varNameSingular}}UpdateCacheMut sync.RWMutex
|
||||
|
|
|
@ -156,7 +156,10 @@ func (o {{$tableNameSingular}}Slice) UpdateAll(exec boil.Executor, cols M) error
|
|||
}
|
||||
|
||||
// Append all of the primary key values for each column
|
||||
args = append(args, o.inPrimaryKeyArgs()...)
|
||||
for _, obj := range o {
|
||||
pkeyArgs := queries.ValuesFromMapping(reflect.Indirect(reflect.ValueOf(obj)), {{$varNameSingular}}PrimaryKeyMapping)
|
||||
args = append(args, pkeyArgs...)
|
||||
}
|
||||
|
||||
sql := fmt.Sprintf(
|
||||
"UPDATE {{$schemaTable}} SET %s WHERE ({{.LQ}}{{.Table.PKey.Columns | join (printf "%s,%s" .LQ .RQ)}}{{.RQ}}) IN (%s)",
|
||||
|
|
|
@ -42,8 +42,7 @@ func (o *{{$tableNameSingular}}) Delete(exec boil.Executor) error {
|
|||
}
|
||||
{{- end}}
|
||||
|
||||
args := o.inPrimaryKeyArgs()
|
||||
|
||||
args := queries.ValuesFromMapping(reflect.Indirect(reflect.ValueOf(o)), {{$varNameSingular}}PrimaryKeyMapping)
|
||||
sql := "DELETE FROM {{$schemaTable}} WHERE {{if .Dialect.IndexPlaceholders}}{{whereClause .LQ .RQ 1 .Table.PKey.Columns}}{{else}}{{whereClause .LQ .RQ 0 .Table.PKey.Columns}}{{end}}"
|
||||
|
||||
if boil.DebugMode {
|
||||
|
@ -130,7 +129,11 @@ func (o {{$tableNameSingular}}Slice) DeleteAll(exec boil.Executor) error {
|
|||
}
|
||||
{{- end}}
|
||||
|
||||
args := o.inPrimaryKeyArgs()
|
||||
var args []interface{}
|
||||
for _, obj := range o {
|
||||
pkeyArgs := queries.ValuesFromMapping(reflect.Indirect(reflect.ValueOf(obj)), {{$varNameSingular}}PrimaryKeyMapping)
|
||||
args = append(args, pkeyArgs...)
|
||||
}
|
||||
|
||||
sql := fmt.Sprintf(
|
||||
"DELETE FROM {{$schemaTable}} WHERE (%s) IN (%s)",
|
||||
|
|
|
@ -73,7 +73,11 @@ func (o *{{$tableNameSingular}}Slice) ReloadAll(exec boil.Executor) error {
|
|||
}
|
||||
|
||||
{{$varNamePlural}} := {{$tableNameSingular}}Slice{}
|
||||
args := o.inPrimaryKeyArgs()
|
||||
var args []interface{}
|
||||
for _, obj := range *o {
|
||||
pkeyArgs := queries.ValuesFromMapping(reflect.Indirect(reflect.ValueOf(obj)), {{$varNameSingular}}PrimaryKeyMapping)
|
||||
args = append(args, pkeyArgs...)
|
||||
}
|
||||
|
||||
sql := fmt.Sprintf(
|
||||
"SELECT {{$schemaTable}}.* FROM {{$schemaTable}} WHERE (%s) IN (%s)",
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
{{- $varNameSingular := .Table.Name | singular | camelCase -}}
|
||||
{{- $tableNameSingular := .Table.Name | singular | titleCase -}}
|
||||
func (o {{$tableNameSingular}}) inPrimaryKeyArgs() []interface{} {
|
||||
var args []interface{}
|
||||
|
||||
{{- range $key, $value := .Table.PKey.Columns }}
|
||||
args = append(args, o.{{titleCase $value}})
|
||||
{{ end -}}
|
||||
|
||||
return args
|
||||
}
|
||||
|
||||
func (o {{$tableNameSingular}}Slice) inPrimaryKeyArgs() []interface{} {
|
||||
var args []interface{}
|
||||
|
||||
for i := 0; i < len(o); i++ {
|
||||
{{- range $key, $value := .Table.PKey.Columns }}
|
||||
args = append(args, o[i].{{titleCase $value}})
|
||||
{{ end -}}
|
||||
}
|
||||
|
||||
return args
|
||||
}
|
|
@ -1,61 +0,0 @@
|
|||
{{- $tableNameSingular := .Table.Name | singular | titleCase -}}
|
||||
{{- $tableNamePlural := .Table.Name | plural | titleCase -}}
|
||||
{{- $varNamePlural := .Table.Name | plural | camelCase -}}
|
||||
{{- $varNameSingular := .Table.Name | singular | camelCase -}}
|
||||
var {{$varNameSingular}}DBTypes = map[string]string{{"{"}}{{.Table.Columns | columnDBTypes | makeStringMap}}{{"}"}}
|
||||
|
||||
func test{{$tableNamePlural}}InPrimaryKeyArgs(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
var err error
|
||||
var o {{$tableNameSingular}}
|
||||
o = {{$tableNameSingular}}{}
|
||||
|
||||
seed := randomize.NewSeed()
|
||||
if err = randomize.Struct(seed, &o, {{$varNameSingular}}DBTypes, true); err != nil {
|
||||
t.Errorf("Could not randomize struct: %s", err)
|
||||
}
|
||||
|
||||
args := o.inPrimaryKeyArgs()
|
||||
|
||||
if len(args) != len({{$varNameSingular}}PrimaryKeyColumns) {
|
||||
t.Errorf("Expected args to be len %d, but got %d", len({{$varNameSingular}}PrimaryKeyColumns), len(args))
|
||||
}
|
||||
|
||||
{{range $key, $value := .Table.PKey.Columns}}
|
||||
if o.{{titleCase $value}} != args[{{$key}}] {
|
||||
t.Errorf("Expected args[{{$key}}] to be value of o.{{titleCase $value}}, but got %#v", args[{{$key}}])
|
||||
}
|
||||
{{- end}}
|
||||
}
|
||||
|
||||
func test{{$tableNamePlural}}SliceInPrimaryKeyArgs(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
var err error
|
||||
o := make({{$tableNameSingular}}Slice, 3)
|
||||
|
||||
seed := randomize.NewSeed()
|
||||
for i := range o {
|
||||
o[i] = &{{$tableNameSingular}}{}
|
||||
if err = randomize.Struct(seed, o[i], {{$varNameSingular}}DBTypes, true); err != nil {
|
||||
t.Errorf("Could not randomize struct: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
args := o.inPrimaryKeyArgs()
|
||||
|
||||
if len(args) != len({{$varNameSingular}}PrimaryKeyColumns) * 3 {
|
||||
t.Errorf("Expected args to be len %d, but got %d", len({{$varNameSingular}}PrimaryKeyColumns) * 3, len(args))
|
||||
}
|
||||
|
||||
argC := 0
|
||||
for i := 0; i < 3; i++ {
|
||||
{{range $key, $value := .Table.PKey.Columns}}
|
||||
if o[i].{{titleCase $value}} != args[argC] {
|
||||
t.Errorf("Expected args[%d] to be value of o.{{titleCase $value}}, but got %#v", i, args[i])
|
||||
}
|
||||
argC++
|
||||
{{- end}}
|
||||
}
|
||||
}
|
|
@ -104,17 +104,6 @@ func TestCount(t *testing.T) {
|
|||
{{- end -}}
|
||||
}
|
||||
|
||||
func TestHelpers(t *testing.T) {
|
||||
{{- range $index, $table := .Tables}}
|
||||
{{- if $table.IsJoinTable -}}
|
||||
{{- else -}}
|
||||
{{- $tableName := $table.Name | plural | titleCase -}}
|
||||
t.Run("{{$tableName}}", test{{$tableName}}InPrimaryKeyArgs)
|
||||
t.Run("{{$tableName}}", test{{$tableName}}SliceInPrimaryKeyArgs)
|
||||
{{end -}}
|
||||
{{- end -}}
|
||||
}
|
||||
|
||||
{{if eq .NoHooks false -}}
|
||||
func TestHooks(t *testing.T) {
|
||||
{{- range $index, $table := .Tables}}
|
||||
|
|
2
templates_test/types.tpl
Normal file
2
templates_test/types.tpl
Normal file
|
@ -0,0 +1,2 @@
|
|||
{{- $varNameSingular := .Table.Name | singular | camelCase -}}
|
||||
var {{$varNameSingular}}DBTypes = map[string]string{{"{"}}{{.Table.Columns | columnDBTypes | makeStringMap}}{{"}"}}
|
Loading…
Add table
Reference in a new issue