Parcourir la source

bug fixed for invoke QueryRow & travis config remove unused

xormplus il y a 9 ans
Parent
commit
6e209884e9
1 fichiers modifiés avec 22 ajouts et 18 suppressions
  1. 22 18
      session.go

+ 22 - 18
session.go

@@ -1121,11 +1121,12 @@ func (session *Session) Count(bean interface{}) (int64, error) {
 	} else {
 		err = session.Tx.QueryRow(sqlStr, args...).Scan(&total)
 	}
-	if err != nil {
-		return 0, err
+
+	if err == sql.ErrNoRows || err == nil {
+		return total, nil
 	}
 
-	return total, nil
+	return 0, err
 }
 
 // Sum call sum some column. bean's non-empty fields are conditions.
@@ -1153,11 +1154,11 @@ func (session *Session) Sum(bean interface{}, columnName string) (float64, error
 	} else {
 		err = session.Tx.QueryRow(sqlStr, args...).Scan(&res)
 	}
-	if err != nil {
-		return 0, err
-	}
 
-	return res, nil
+	if err == sql.ErrNoRows || err == nil {
+		return res, nil
+	}
+	return 0, err
 }
 
 // Sums call sum some columns. bean's non-empty fields are conditions.
@@ -1185,11 +1186,11 @@ func (session *Session) Sums(bean interface{}, columnNames ...string) ([]float64
 	} else {
 		err = session.Tx.QueryRow(sqlStr, args...).ScanSlice(&res)
 	}
-	if err != nil {
-		return nil, err
-	}
 
-	return res, nil
+	if err == sql.ErrNoRows || err == nil {
+		return res, nil
+	}
+	return nil, err
 }
 
 // SumsInt sum specify columns and return as []int64 instead of []float64
@@ -1217,11 +1218,11 @@ func (session *Session) SumsInt(bean interface{}, columnNames ...string) ([]int6
 	} else {
 		err = session.Tx.QueryRow(sqlStr, args...).ScanSlice(&res)
 	}
-	if err != nil {
-		return nil, err
-	}
 
-	return res, nil
+	if err == sql.ErrNoRows || err == nil {
+		return res, nil
+	}
+	return nil, err
 }
 
 func (session *Session) noCacheFind(sliceValue reflect.Value, sqlStr string, args ...interface{}) error {
@@ -1519,10 +1520,13 @@ func (session *Session) isTableEmpty(tableName string) (bool, error) {
 	}
 
 	var total int64
-	sql := fmt.Sprintf("select count(*) from %s", session.Engine.Quote(tableName))
-	err := session.DB().QueryRow(sql).Scan(&total)
-	session.saveLastSQL(sql)
+	sqlStr := fmt.Sprintf("select count(*) from %s", session.Engine.Quote(tableName))
+	err := session.DB().QueryRow(sqlStr).Scan(&total)
+	session.saveLastSQL(sqlStr)
 	if err != nil {
+		if err == sql.ErrNoRows {
+			err = nil
+		}
 		return true, err
 	}