type safe predicates

Reviewed By: alexsn

Differential Revision: D16452717

fbshipit-source-id: da0a07275434d95d73a5a26830a2e5535c3abf47
This commit is contained in:
Ariel Mashraki
2019-07-24 08:32:29 -07:00
committed by Facebook Github Bot
parent ff6403b4ae
commit 2cfda7564f
82 changed files with 4106 additions and 3422 deletions

View File

@@ -6,7 +6,7 @@ func ({{ $receiver}} *{{ $builder }}) sqlExec(ctx context.Context) error {
var res sql.Result
selector := sql.Select().From(sql.Table({{ $.Package }}.Table))
for _, p := range {{ $receiver }}.predicates {
p.SQL(selector)
p(selector)
}
query, args := sql.Delete({{ $.Package }}.Table).FromSelect(selector).Query()
return {{ $receiver }}.driver.Exec(ctx, query, args, &res)

View File

@@ -75,7 +75,7 @@ func ({{ $receiver }} *{{ $builder }}) sqlQuery() *sql.Selector {
selector.Select(selector.Columns({{ $.Package }}.Columns...)...)
}
for _, p := range {{ $receiver }}.predicates {
p.SQL(selector)
p(selector)
}
for _, p := range {{ $receiver }}.order {
p.SQL(selector)

View File

@@ -9,10 +9,10 @@
func ({{ $receiver }} *{{ $builder }}) sqlSave(ctx context.Context) ({{ $ret }} {{ if $one }}*{{ $.Name }}{{ else }}int{{ end }}, err error) {
selector := sql.Select({{ $.Package }}.{{ if $one }}Columns...{{ else }}{{ $.ID.Constant }}{{ end }}).From(sql.Table({{ $.Package }}.Table))
{{- if $one }}
{{ $.Package }}.ID({{ $receiver }}.id).SQL(selector)
{{ $.Package }}.ID({{ $receiver }}.id)(selector)
{{- else }}
for _, p := range {{ $receiver }}.predicates {
p.SQL(selector)
p(selector)
}
{{- end }}
rows := &sql.Rows{}