closed all fetched rows, db was getting locked
This commit is contained in:
parent
da354c2038
commit
6721b2d993
|
@ -21,6 +21,7 @@ func GetFileName(token string) (string, error) {
|
|||
sql := "select name from files where autoName=?"
|
||||
var fileName string
|
||||
rows := database.query(sql, fileName)
|
||||
defer rows.Close()
|
||||
if rows.Next() {
|
||||
err := rows.Scan(&fileName)
|
||||
if err != nil {
|
||||
|
@ -47,6 +48,7 @@ func GetCategories(username string) []types.CategoryCount {
|
|||
var categories []types.CategoryCount
|
||||
var category types.CategoryCount
|
||||
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
err := rows.Scan(&category.Name, &category.Count)
|
||||
if err != nil {
|
||||
|
@ -54,7 +56,6 @@ func GetCategories(username string) []types.CategoryCount {
|
|||
}
|
||||
categories = append(categories, category)
|
||||
}
|
||||
rows.Close()
|
||||
return categories
|
||||
}
|
||||
|
||||
|
@ -64,6 +65,7 @@ func AddCategory(username, category string) error {
|
|||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
log.Println("executing query to add category")
|
||||
err = taskQuery("insert into category(name, user_id) values(?,?)", category, userID)
|
||||
return err
|
||||
}
|
||||
|
@ -74,7 +76,7 @@ func GetCategoryByName(username, category string) int {
|
|||
stmt := "select id from category where name=? and user_id = (select id from user where username=?)"
|
||||
rows := database.query(stmt, category, username)
|
||||
var categoryID int
|
||||
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
err := rows.Scan(&categoryID)
|
||||
if err != nil {
|
||||
|
|
12
db/tasks.go
12
db/tasks.go
|
@ -248,6 +248,7 @@ func UpdateTask(id int, title, content, category string, priority int, username
|
|||
|
||||
//taskQuery encapsulates running multiple queries which don't do much things
|
||||
func taskQuery(sql string, args ...interface{}) error {
|
||||
log.Print("inside task query")
|
||||
SQL := database.prepare(sql)
|
||||
tx := database.begin()
|
||||
_, err = tx.Stmt(SQL).Exec(args...)
|
||||
|
@ -255,7 +256,12 @@ func taskQuery(sql string, args ...interface{}) error {
|
|||
log.Println("taskQuery: ", err)
|
||||
tx.Rollback()
|
||||
} else {
|
||||
tx.Commit()
|
||||
err = tx.Commit()
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return err
|
||||
}
|
||||
log.Println("Commit successful")
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
@ -280,7 +286,7 @@ func SearchTask(username, query string) (types.Context, error) {
|
|||
stmt := "select t.id, title, content, created_date, priority, c.name from task t, category c where t.user_id=? and c.id = t.cat_id and (title like '%" + query + "%' or content like '%" + query + "%') order by created_date desc"
|
||||
|
||||
rows := database.query(stmt, userID, query, query)
|
||||
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
err := rows.Scan(&task.Id, &task.Title, &task.Content, &TaskCreated, &task.Priority, &task.Category)
|
||||
if err != nil {
|
||||
|
@ -327,6 +333,7 @@ func GetComments(username string) (map[int][]types.Comment, error) {
|
|||
stmt := "select c.id, c.taskID, c.content, c.created from comments c, task t where t.id=c.taskID and c.user_id=?;"
|
||||
rows := database.query(stmt, userID)
|
||||
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
err := rows.Scan(&comment.ID, &taskID, &comment.Content, &created)
|
||||
if err != nil {
|
||||
|
@ -337,7 +344,6 @@ func GetComments(username string) (map[int][]types.Comment, error) {
|
|||
comment.Created = created.Format("Jan 2 2006 15:04:05")
|
||||
commentMap[taskID] = append(commentMap[taskID], comment)
|
||||
}
|
||||
rows.Close()
|
||||
return commentMap, nil
|
||||
}
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ func ValidUser(username, password string) bool {
|
|||
log.Print("validating user ", username)
|
||||
rows := database.query(userSQL, username)
|
||||
|
||||
defer rows.Close()
|
||||
if rows.Next() {
|
||||
err := rows.Scan(&passwordFromDB)
|
||||
if err != nil {
|
||||
|
@ -37,12 +38,12 @@ func GetUserID(username string) (int, error) {
|
|||
userSQL := "select id from user where username=?"
|
||||
rows := database.query(userSQL, username)
|
||||
|
||||
defer rows.Close()
|
||||
if rows.Next() {
|
||||
err := rows.Scan(&userID)
|
||||
if err != nil {
|
||||
return -1, err
|
||||
}
|
||||
}
|
||||
rows.Close()
|
||||
return userID, nil
|
||||
}
|
||||
|
|
|
@ -129,7 +129,9 @@ func AddCategoryFunc(w http.ResponseWriter, r *http.Request) {
|
|||
category := r.Form.Get("category")
|
||||
if strings.Trim(category, " ") != "" {
|
||||
username := sessions.GetCurrentUserName(r)
|
||||
if err := db.AddCategory(username, category); err != nil {
|
||||
log.Println("adding category")
|
||||
err := db.AddCategory(username, category)
|
||||
if err != nil {
|
||||
message = "Error adding category"
|
||||
http.Redirect(w, r, "/", http.StatusBadRequest)
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue