public Task Patch() { DocumentsOperationContext context; var returnContextToPool = ContextPool.AllocateOperationContext(out context); // we don't dispose this as operation is async var reader = context.Read(RequestBodyStream(), "ScriptedPatchRequest"); var patch = PatchRequest.Parse(reader); ExecuteQueryOperation((runner, indexName, query, options, onProgress, token) => runner.ExecutePatchQuery(indexName, query, options, patch, context, onProgress, token), context, returnContextToPool, DatabaseOperations.PendingOperationType.UpdateByIndex); return(Task.CompletedTask); }
public override Task <IOperationResult> ExecutePatchQuery(IndexQueryServerSide query, QueryOperationOptions options, PatchRequest patch, BlittableJsonReaderObject patchArgs, DocumentsOperationContext context, Action <IOperationProgress> onProgress, OperationCancelToken token) { var runner = new CollectionRunner(Database, context, query); return(runner.ExecutePatch(query.Metadata.CollectionName, new CollectionOperationOptions { MaxOpsPerSecond = options.MaxOpsPerSecond }, patch, patchArgs, onProgress, token)); }
public override async Task <IOperationResult> ExecutePatchQuery(IndexQueryServerSide query, QueryOperationOptions options, PatchRequest patch, BlittableJsonReaderObject patchArgs, DocumentsOperationContext context, Action <IOperationProgress> onProgress, OperationCancelToken token) { ObjectDisposedException lastException = null; for (var i = 0; i < NumberOfRetries; i++) { try { context.CloseTransaction(); return(await GetRunner(query).ExecutePatchQuery(query, options, patch, patchArgs, context, onProgress, token)); } catch (ObjectDisposedException e) { if (Database.DatabaseShutdown.IsCancellationRequested) { throw; } lastException = e; } } throw CreateRetriesFailedException(lastException); }
public override Task <IOperationResult> ExecutePatchQuery(IndexQueryServerSide query, QueryOperationOptions options, PatchRequest patch, BlittableJsonReaderObject patchArgs, DocumentsOperationContext context, Action <IOperationProgress> onProgress, OperationCancelToken token) { var index = GetIndex(query.Metadata.IndexName); return(ExecutePatch(query, index, options, patch, patchArgs, context, onProgress, token)); }
public override async Task <IOperationResult> ExecutePatchQuery(IndexQueryServerSide query, QueryOperationOptions options, PatchRequest patch, BlittableJsonReaderObject patchArgs, DocumentsOperationContext context, Action <IOperationProgress> onProgress, OperationCancelToken token) { var index = await MatchIndex(query, true, null, context, token.Token); return(await ExecutePatch(query, index, options, patch, patchArgs, context, onProgress, token)); }
public override async Task <IOperationResult> ExecutePatchQuery(IndexQueryServerSide query, QueryOperationOptions options, PatchRequest patch, BlittableJsonReaderObject patchArgs, DocumentsOperationContext context, Action <IOperationProgress> onProgress, OperationCancelToken token) { var index = GetIndex(query.Metadata.IndexName); using (QueryRunner.MarkQueryAsRunning(index.Name, query, token)) { return(await ExecutePatch(query, index, options, patch, patchArgs, context, onProgress, token)); } }
public override Task <IOperationResult> ExecutePatchQuery(IndexQueryServerSide query, QueryOperationOptions options, PatchRequest patch, BlittableJsonReaderObject patchArgs, DocumentsOperationContext context, Action <IOperationProgress> onProgress, OperationCancelToken token) { return(GetRunner(query).ExecutePatchQuery(query, options, patch, patchArgs, context, onProgress, token)); }
public override async Task <IOperationResult> ExecutePatchQuery(IndexQueryServerSide query, QueryOperationOptions options, PatchRequest patch, BlittableJsonReaderObject patchArgs, QueryOperationContext queryContext, Action <IOperationProgress> onProgress, OperationCancelToken token) { var index = await MatchIndex(query, true, null, token.Token); queryContext.WithIndex(index); using (QueryRunner.MarkQueryAsRunning(index.Name, query, token)) { return(await ExecutePatch(query, index, options, patch, patchArgs, queryContext, onProgress, token)); } }
public override Task <IOperationResult> ExecutePatchQuery(IndexQueryServerSide query, QueryOperationOptions options, PatchRequest patch, BlittableJsonReaderObject patchArgs, QueryOperationContext queryContext, Action <IOperationProgress> onProgress, OperationCancelToken token) { throw new NotSupportedException(ErrorMessage); }
public Task <IOperationResult> ExecutePatchQuery(string indexName, IndexQueryServerSide query, QueryOperationOptions options, PatchRequest patch, DocumentsOperationContext context, Action <DeterminateProgress> onProgress, OperationCancelToken token) { return(ExecuteOperation(indexName, query, options, context, onProgress, key => _database.Patch.Apply(context, key, null, patch, null), token)); }
public override async Task <IOperationResult> ExecutePatchQuery(IndexQueryServerSide query, QueryOperationOptions options, PatchRequest patch, BlittableJsonReaderObject patchArgs, QueryOperationContext queryContext, Action <IOperationProgress> onProgress, OperationCancelToken token) { Exception lastException = null; for (var i = 0; i < NumberOfRetries; i++) { try { return(await GetRunner(query).ExecutePatchQuery(query, options, patch, patchArgs, queryContext, onProgress, token)); } catch (ObjectDisposedException e) { if (Database.DatabaseShutdown.IsCancellationRequested) { throw; } lastException = e; await WaitForIndexBeingLikelyReplacedDuringQuery(); } catch (OperationCanceledException e) { if (Database.DatabaseShutdown.IsCancellationRequested) { throw; } if (token.Token.IsCancellationRequested) { throw; } lastException = e; await WaitForIndexBeingLikelyReplacedDuringQuery(); } } throw CreateRetriesFailedException(lastException); }
public IOperationResult ExecutePatch(string collectionName, CollectionOperationOptions options, PatchRequest patch, DocumentsOperationContext context, Action <IOperationProgress> onProgress, OperationCancelToken token) { return(ExecuteOperation(collectionName, options, _context, onProgress, key => _database.Patch.Apply(context, key, null, patch, null), token)); }