diff options
| author | Chris Lu <chris.lu@gmail.com> | 2020-12-13 19:45:47 -0800 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2020-12-13 19:45:47 -0800 |
| commit | 23280257dfb851ae645257c252bb1f66bcc59819 (patch) | |
| tree | 5eabc5db9e2bd78145e8cf714a574abd3cf3d2b4 | |
| parent | 813453f3e1d6b6939aaee3d94b4491c928b2d2fb (diff) | |
| download | seaweedfs-23280257dfb851ae645257c252bb1f66bcc59819.tar.xz seaweedfs-23280257dfb851ae645257c252bb1f66bcc59819.zip | |
sql put kv: avoid unnecessary update
| -rw-r--r-- | weed/filer/abstract_sql/abstract_sql_store_kv.go | 13 |
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 |
