Gozero sqlgen patch (#119)

* merge upstream

* optimize insert logic

* reactor functions
This commit is contained in:
Keson
2020-10-11 21:55:44 +08:00
committed by GitHub
parent 7a134ec64d
commit 7e61555d42
10 changed files with 77 additions and 35 deletions

View File

@@ -113,7 +113,8 @@ func (g *defaultGenerator) genFromDDL(withCache bool) (map[string]string, error)
type (
Table struct {
parser.Table
CacheKey map[string]Key
CacheKey map[string]Key
ContainsUniqueKey bool
}
)
@@ -135,6 +136,14 @@ func (g *defaultGenerator) genModel(in parser.Table, withCache bool) (string, er
var table Table
table.Table = in
table.CacheKey = m
var containsUniqueCache = false
for _, item := range table.Fields {
if item.IsUniqueKey {
containsUniqueCache = true
break
}
}
table.ContainsUniqueKey = containsUniqueCache
varsCode, err := genVars(table, withCache)
if err != nil {
@@ -162,7 +171,7 @@ func (g *defaultGenerator) genModel(in parser.Table, withCache bool) (string, er
return "", err
}
findOneByFieldCode, err := genFindOneByField(table, withCache)
findOneByFieldCode, extraMethod, err := genFindOneByField(table, withCache)
if err != nil {
return "", err
}
@@ -179,14 +188,15 @@ func (g *defaultGenerator) genModel(in parser.Table, withCache bool) (string, er
}
output, err := t.Execute(map[string]interface{}{
"imports": importsCode,
"vars": varsCode,
"types": typesCode,
"new": newCode,
"insert": insertCode,
"find": strings.Join(findCode, "\n"),
"update": updateCode,
"delete": deleteCode,
"imports": importsCode,
"vars": varsCode,
"types": typesCode,
"new": newCode,
"insert": insertCode,
"find": strings.Join(findCode, "\n"),
"update": updateCode,
"delete": deleteCode,
"extraMethod": extraMethod,
})
if err != nil {
return "", err