aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2020-12-13 19:45:47 -0800
committerChris Lu <chris.lu@gmail.com>2020-12-13 19:45:47 -0800
commit23280257dfb851ae645257c252bb1f66bcc59819 (patch)
tree5eabc5db9e2bd78145e8cf714a574abd3cf3d2b4
parent813453f3e1d6b6939aaee3d94b4491c928b2d2fb (diff)
downloadseaweedfs-23280257dfb851ae645257c252bb1f66bcc59819.tar.xz
seaweedfs-23280257dfb851ae645257c252bb1f66bcc59819.zip
sql put kv: avoid unnecessary update
-rw-r--r--weed/filer/abstract_sql/abstract_sql_store_kv.go13
1 files changed, 7 insertions, 6 deletions
diff --git a/weed/filer/abstract_sql/abstract_sql_store_kv.go b/weed/filer/abstract_sql/abstract_sql_store_kv.go
index c368059df..49db8af65 100644
--- a/weed/filer/abstract_sql/abstract_sql_store_kv.go
+++ b/weed/filer/abstract_sql/abstract_sql_store_kv.go
@@ -5,11 +5,10 @@ import (
"database/sql"
"encoding/base64"
"fmt"
- "strings"
-
"github.com/chrislusf/seaweedfs/weed/filer"
"github.com/chrislusf/seaweedfs/weed/glog"
"github.com/chrislusf/seaweedfs/weed/util"
+ "strings"
)
func (store *AbstractSqlStore) KvPut(ctx context.Context, key []byte, value []byte) (err error) {
@@ -17,10 +16,12 @@ func (store *AbstractSqlStore) KvPut(ctx context.Context, key []byte, value []by
dirStr, dirHash, name := genDirAndName(key)
res, err := store.getTxOrDB(ctx).ExecContext(ctx, store.SqlInsert, dirHash, name, dirStr, value)
- if err != nil {
- if !strings.Contains(strings.ToLower(err.Error()), "duplicate") {
- return fmt.Errorf("kv insert: %s", err)
- }
+ if err == nil {
+ return
+ }
+
+ if !strings.Contains(strings.ToLower(err.Error()), "duplicate") {
+ return fmt.Errorf("kv insert: %s", err)
}
// now the insert failed possibly due to duplication constraints