forked from ALHP/ALHP.GO
simplify SQL statement
This commit is contained in:
23
utils.go
23
utils.go
@@ -409,30 +409,15 @@ func getPkgbaseFromPkgfile(pkg string) (*ent.DbPackage, error) {
|
|||||||
|
|
||||||
dbLock.RLock()
|
dbLock.RLock()
|
||||||
defer dbLock.RUnlock()
|
defer dbLock.RUnlock()
|
||||||
dbPkg, dbErr := db.DbPackage.Query().Where(dbpackage.Pkgbase(pkgname)).Only(context.Background())
|
dbPkg, dbErr := db.DbPackage.Query().Where(func(s *sql.Selector) {
|
||||||
|
s.Where(sqljson.ValueContains(dbpackage.FieldPackages, pkgname)).Or().Where(sql.EQ(s.C(dbpackage.FieldPkgbase), pkgname))
|
||||||
if dbErr != nil {
|
|
||||||
switch dbErr.(type) {
|
|
||||||
case *ent.NotFoundError:
|
|
||||||
log.Debugf("Not found as a pkgbase: %s. Assuming split-package", pkgname)
|
|
||||||
break
|
|
||||||
default:
|
|
||||||
log.Errorf("Problem querying db for package %s: %v", pkgname, dbErr)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return dbPkg, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// search in split-packages
|
|
||||||
dbPkg, dbErr = db.DbPackage.Query().Where(func(s *sql.Selector) {
|
|
||||||
s.Where(sqljson.ValueContains(dbpackage.FieldPackages, sqljson.Path(pkgname)))
|
|
||||||
}).Only(context.Background())
|
}).Only(context.Background())
|
||||||
|
|
||||||
if dbErr != nil {
|
if dbErr != nil {
|
||||||
switch dbErr.(type) {
|
switch dbErr.(type) {
|
||||||
case *ent.NotFoundError:
|
case *ent.NotFoundError:
|
||||||
log.Warningf("Not a split-package: %s: Package not found!", pkgname)
|
log.Debugf("Not found in database: %s", pkgname)
|
||||||
break
|
return nil, fmt.Errorf("package not found in DB: %s", pkgname)
|
||||||
default:
|
default:
|
||||||
log.Errorf("Problem querying db for package %s: %v", pkgname, dbErr)
|
log.Errorf("Problem querying db for package %s: %v", pkgname, dbErr)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user