fix postgres insert on conflict not returning id
This commit is contained in:
@@ -168,6 +168,7 @@ func (database *Database) Walk(root string, pattern []string, tagIDs []int64, us
|
|||||||
insertFileStmt := tx.Stmt(database.stmt.insertFile)
|
insertFileStmt := tx.Stmt(database.stmt.insertFile)
|
||||||
putTagOnFileStmt := tx.Stmt(database.stmt.putTagOnFile)
|
putTagOnFileStmt := tx.Stmt(database.stmt.putTagOnFile)
|
||||||
findFolderStmt := tx.Stmt(database.stmt.findFolder)
|
findFolderStmt := tx.Stmt(database.stmt.findFolder)
|
||||||
|
findFileStmt := tx.Stmt(database.stmt.findFile)
|
||||||
|
|
||||||
err = filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
|
err = filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -205,11 +206,25 @@ func (database *Database) Walk(root string, pattern []string, tagIDs []int64, us
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
result, err := insertFileStmt.Query(folderID, filename, filename, info.Size())
|
|
||||||
|
// try find file id
|
||||||
|
var fileID int64
|
||||||
|
result, err := findFileStmt.Query(folderID, filename)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
for result.Next() {
|
||||||
|
err = result.Scan(&fileID)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// insert new file
|
||||||
|
result, err = insertFileStmt.Query(folderID, filename, filename, info.Size())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
var fileID int64
|
|
||||||
for result.Next() {
|
for result.Next() {
|
||||||
err = result.Scan(&fileID)
|
err = result.Scan(&fileID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user