diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-07-22 08:23:20 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-07-22 08:23:20 -0700 |
| commit | 182288f8606bde8bfcb31509335a4c33802db254 (patch) | |
| tree | d0e0c9afca383efee7badfdbb9adc66d295fffcd /weed/filer/abstract_sql | |
| parent | 84d91f143f59d9b98ea34f9b5a2fa0340ceb31b5 (diff) | |
| download | seaweedfs-182288f8606bde8bfcb31509335a4c33802db254.tar.xz seaweedfs-182288f8606bde8bfcb31509335a4c33802db254.zip | |
filer: fix mysql, postgres batch delete error
Diffstat (limited to 'weed/filer/abstract_sql')
| -rw-r--r-- | weed/filer/abstract_sql/abstract_sql_store.go | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/weed/filer/abstract_sql/abstract_sql_store.go b/weed/filer/abstract_sql/abstract_sql_store.go index 26dff7fe7..4bf9b16fa 100644 --- a/weed/filer/abstract_sql/abstract_sql_store.go +++ b/weed/filer/abstract_sql/abstract_sql_store.go @@ -10,7 +10,6 @@ import ( "github.com/chrislusf/seaweedfs/weed/util" "strings" "sync" - "time" ) type SqlGenerator interface { @@ -262,7 +261,7 @@ func (store *AbstractSqlStore) DeleteEntry(ctx context.Context, fullpath util.Fu return nil } -func (store *AbstractSqlStore) DeleteFolderChildren(ctx context.Context, fullpath util.FullPath, limit int64) error { +func (store *AbstractSqlStore) DeleteFolderChildren(ctx context.Context, fullpath util.FullPath) error { db, bucket, shortPath, err := store.getTxOrDB(ctx, fullpath, true) if err != nil { @@ -280,22 +279,15 @@ func (store *AbstractSqlStore) DeleteFolderChildren(ctx context.Context, fullpat } } - for { - glog.V(4).Infof("delete %s SQL %s %d", string(shortPath), store.GetSqlDeleteFolderChildren(bucket), util.HashStringToLong(string(shortPath))) - res, err := db.ExecContext(ctx, store.GetSqlDeleteFolderChildren(bucket), util.HashStringToLong(string(shortPath)), string(shortPath), limit) - if err != nil { - return fmt.Errorf("deleteFolderChildren %s: %s", fullpath, err) - } + glog.V(4).Infof("delete %s SQL %s %d", string(shortPath), store.GetSqlDeleteFolderChildren(bucket), util.HashStringToLong(string(shortPath))) + res, err := db.ExecContext(ctx, store.GetSqlDeleteFolderChildren(bucket), util.HashStringToLong(string(shortPath)), string(shortPath)) + if err != nil { + return fmt.Errorf("deleteFolderChildren %s: %s", fullpath, err) + } - rowCount, err := res.RowsAffected() - if err != nil { - return fmt.Errorf("deleteFolderChildren %s but no rows affected: %s", fullpath, err) - } - if rowCount < limit { - break - } - // to give the Galera Cluster a chance to breath - time.Sleep(time.Second) + _, err = res.RowsAffected() + if err != nil { + return fmt.Errorf("deleteFolderChildren %s but no rows affected: %s", fullpath, err) } return nil } |
