/// <summary> /// Delete a single row from the table, by primary key. /// </summary> /// <param name="request"></param> /// <returns></returns> public DeleteRowResponse DeleteRow(DeleteRowRequest request) { var uriStr = $"{GetEndPoint(NoSQLServices.Tables, this.Region)}/{request.TableNameOrId}/rows"; var optional = request.GetOptionalQuery(); if (!string.IsNullOrEmpty(optional)) { uriStr = $"{uriStr}?{optional}"; } var uri = new Uri(uriStr); var httpRequestHeaderParam = new HttpRequestHeaderParam() { IfMatch = request.IfMatch, OpcRequestId = request.OpcRequestId }; using (var webResponse = this.RestClient.Delete(uri, httpRequestHeaderParam)) using (var stream = webResponse.GetResponseStream()) using (var reader = new StreamReader(stream)) { var response = reader.ReadToEnd(); return(new DeleteRowResponse() { DeleteRowResult = this.JsonSerializer.Deserialize <DeleteRowResult>(response), OpcRequestId = webResponse.Headers.Get("opc-request-id") }); } }
protected override void ProcessRecord() { base.ProcessRecord(); if (!ConfirmDelete("OCINosqlRow", "Remove")) { return; } DeleteRowRequest request; try { request = new DeleteRowRequest { TableNameOrId = TableNameOrId, Key = Key, CompartmentId = CompartmentId, IsGetReturnRow = IsGetReturnRow, TimeoutInMs = TimeoutInMs, IfMatch = IfMatch, OpcRequestId = OpcRequestId }; response = client.DeleteRow(request).GetAwaiter().GetResult(); WriteOutput(response, response.DeleteRowResult); FinishProcessing(response); } catch (Exception ex) { TerminatingErrorDuringExecution(ex); } }
public void Delete_row_request() { var request = new DeleteRowRequest(new AtsTable("A"), new TableEntity()); AssertOperationType(request.Operation, TableOperationType.Delete); AssertName(request); }
public static void ConditionDeleteRow() { Console.WriteLine("Start delete row..."); PrepareTable(); OTSClient otsClient = Config.GetClient(); // 定义行的主键,必须与创建表时的TableMeta中定义的一致 PrimaryKey primaryKey = new PrimaryKey(); primaryKey.Add("pk0", new ColumnValue(2)); primaryKey.Add("pk1", new ColumnValue("abc")); // 定义要写入改行的属性列 AttributeColumns attribute = new AttributeColumns(); attribute.Add("col0", new ColumnValue(2)); attribute.Add("col1", new ColumnValue("a")); attribute.Add("col2", new ColumnValue(true)); PutRowRequest putRequest = new PutRowRequest(tableName, new Condition(RowExistenceExpectation.IGNORE), primaryKey, attribute); // 新创建一行数据 try { otsClient.PutRow(putRequest); Console.WriteLine("Put row succeeded."); } catch (Exception ex) { Console.WriteLine("Put row failed. error:{0}", ex.Message); } // 当col2列的值等于true的时候,允许删除 try { // 构造条件语句:col2列的值等于true var condition = new Condition(RowExistenceExpectation.EXPECT_EXIST); condition.ColumnCondition = new RelationalCondition("col2", CompareOperator.EQUAL, new ColumnValue(true)); // 构造删除请求 var deleteRequest = new DeleteRowRequest(tableName, condition, primaryKey); // 删除满足条件的特定行 otsClient.DeleteRow(deleteRequest); Console.WriteLine("Delete row succeeded."); } catch (Exception ex) { Console.WriteLine("Delete row failed. error:{0}", ex.Message); } Console.WriteLine("Delete row succeeded."); }
/// <summary> /// Deletes a row in table /// </summary> /// <param name="deleteRow">Data for deleting table</param> public void DeleteRow(DeleteRowRequest deleteRow) { using (MySqlConnection connection = WebApiConfig.Connection()) using (MySqlCommand command = new MySqlCommand($"DELETE FROM `{deleteRow.TableName}` WHERE Id = {deleteRow.Id}", connection)) { connection.Open(); command.ExecuteNonQuery(); } }
private void DeleteRow(OTSClient client, String tableName) { var primaryKey = new PrimaryKey(); primaryKey.Add(COLUMN_GID_NAME, new ColumnValue(1)); primaryKey.Add(COLUMN_UID_NAME, new ColumnValue(101)); Condition condition = new Condition(RowExistenceExpectation.IGNORE); DeleteRowRequest req = new DeleteRowRequest(tableName, condition, primaryKey); client.DeleteRow(req); Console.WriteLine("DeleteRow success"); }
/// <summary>Snippet for DeleteRow</summary> /// <remarks> /// This snippet has been automatically generated for illustrative purposes only. /// It may require modifications to work in your environment. /// </remarks> public void DeleteRowRequestObject() { // Create client TablesServiceClient tablesServiceClient = TablesServiceClient.Create(); // Initialize request argument(s) DeleteRowRequest request = new DeleteRowRequest { RowName = RowName.FromTableRow("[TABLE]", "[ROW]"), }; // Make the request tablesServiceClient.DeleteRow(request); }
/// <summary>Snippet for DeleteRowAsync</summary> /// <remarks> /// This snippet has been automatically generated for illustrative purposes only. /// It may require modifications to work in your environment. /// </remarks> public async Task DeleteRowRequestObjectAsync() { // Create client TablesServiceClient tablesServiceClient = await TablesServiceClient.CreateAsync(); // Initialize request argument(s) DeleteRowRequest request = new DeleteRowRequest { RowName = RowName.FromTableRow("[TABLE]", "[ROW]"), }; // Make the request await tablesServiceClient.DeleteRowAsync(request); }
public void DeleteRowResourceNames() { moq::Mock <TablesService.TablesServiceClient> mockGrpcClient = new moq::Mock <TablesService.TablesServiceClient>(moq::MockBehavior.Strict); DeleteRowRequest request = new DeleteRowRequest { RowName = RowName.FromTableRow("[TABLE]", "[ROW]"), }; wkt::Empty expectedResponse = new wkt::Empty { }; mockGrpcClient.Setup(x => x.DeleteRow(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(expectedResponse); TablesServiceClient client = new TablesServiceClientImpl(mockGrpcClient.Object, null); client.DeleteRow(request.RowName); mockGrpcClient.VerifyAll(); }
/// <summary>Snippet for DeleteRowAsync</summary> public async Task DeleteRowRequestObjectAsync() { // Snippet: DeleteRowAsync(DeleteRowRequest, CallSettings) // Additional: DeleteRowAsync(DeleteRowRequest, CancellationToken) // Create client TablesServiceClient tablesServiceClient = await TablesServiceClient.CreateAsync(); // Initialize request argument(s) DeleteRowRequest request = new DeleteRowRequest { RowName = RowName.FromTableRow("[TABLE]", "[ROW]"), }; // Make the request await tablesServiceClient.DeleteRowAsync(request); // End snippet }
public async stt::Task DeleteRowResourceNamesAsync() { moq::Mock <TablesService.TablesServiceClient> mockGrpcClient = new moq::Mock <TablesService.TablesServiceClient>(moq::MockBehavior.Strict); DeleteRowRequest request = new DeleteRowRequest { RowName = RowName.FromTableRow("[TABLE]", "[ROW]"), }; wkt::Empty expectedResponse = new wkt::Empty { }; mockGrpcClient.Setup(x => x.DeleteRowAsync(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(new grpccore::AsyncUnaryCall <wkt::Empty>(stt::Task.FromResult(expectedResponse), null, null, null, null)); TablesServiceClient client = new TablesServiceClientImpl(mockGrpcClient.Object, null); await client.DeleteRowAsync(request.RowName, gaxgrpc::CallSettings.FromCancellationToken(st::CancellationToken.None)); await client.DeleteRowAsync(request.RowName, st::CancellationToken.None); mockGrpcClient.VerifyAll(); }
public void DeleteRowTest() { CreateTable(); var otsClient = OTSClient; var primaryKey = new PrimaryKey(); primaryKey.Add("PK0", new ColumnValue("ABC")); primaryKey.Add("PK1", new ColumnValue(123)); var deleteRowRequest = new DeleteRowRequest( "SampleTable", new Condition(RowExistenceExpectation.IGNORE), primaryKey); var deleteRowResponse = otsClient.DeleteRow(deleteRowRequest); System.Console.WriteLine("DeleteRow CU Consumed: Read {0} Write {0}", deleteRowResponse.ConsumedCapacityUnit.Read, deleteRowResponse.ConsumedCapacityUnit.Write); DeleteTable(); }
private bool DeleteRow(String tableName, Int64 pk, ColumnCondition cond) { var primaryKey = new PrimaryKey(); primaryKey.Add("PK0", new ColumnValue(pk)); Condition c = new Condition(RowExistenceExpectation.IGNORE); c.ColumnCondition = cond; var request = new DeleteRowRequest(tableName, c, primaryKey); bool success = true; try { OTSClient.DeleteRow(request); } catch (OTSServerException e) { Console.WriteLine("DeleteRow fail:{0}", e.ErrorMessage); success = false; } return(success); }
public void DeleteRowTest() { CreateTable(); PutRow(); var otsClient = OTSClient; var primaryKey = new PrimaryKey { { "PK0", new ColumnValue("ABC") }, { "PK1", new ColumnValue(123) } }; var deleteRowRequest = new DeleteRowRequest( TestTableName, new Condition(RowExistenceExpectation.IGNORE), primaryKey); var deleteRowResponse = otsClient.DeleteRow(deleteRowRequest); Console.WriteLine("DeleteRow CU Consumed: Read {0} Write {1}", deleteRowResponse.ConsumedCapacityUnit.Read, deleteRowResponse.ConsumedCapacityUnit.Write); DeleteTable(); }
/// <summary> /// 指定表名和主键,删除一行数据。 /// </summary> /// <param name="request">请求实例</param> /// <returns>响应实例</returns> /// <example> /// 删除一行 /// <code> /// var primaryKey = new PrimaryKey(); /// primaryKey.Add("PK0", new ColumnValue("ABC")); /// primaryKey.Add("PK1", new ColumnValue(123)); /// /// var deleteRowRequest = new DeleteRowRequest( /// "SampleTableName", /// Condition.EXPECT_EXIST, /// primaryKey); /// /// var deleteRowResponse = otsClient.DeleteRow(deleteRowRequest); /// System.Console.WriteLine("DeleteRow CU Consumed: Read {0} Write {0}", /// deleteRowResponse.ConsumedCapacityUnit.Read, /// deleteRowResponse.ConsumedCapacityUnit.Write); /// </code> /// </example> public DeleteRowResponse DeleteRow(DeleteRowRequest request) { return(GetResponseFromAsyncTask(DeleteRowAsync(request))); }
public void TestAPIWithParameter(string apiName) { var tableName = TestContext.tableName; var pkSchema = TestContext.pkSchema; var reservedThroughput = TestContext.reservedThroughput; var primaryKey = TestContext.primaryKey; var attribute = TestContext.attribute; var condition = TestContext.condition; var startPrimaryKey = TestContext.startPrimaryKey; var endPrimaryKey = TestContext.endPrimaryKey; var putRowConsumed = TestContext.putRowConsumed; var getRowConsumed = TestContext.getRowConsumed; var updateRowConsumed = TestContext.updateRowConsumed; var deleteRowConsumed = TestContext.deleteRowConsumed; var getRangeConsumed = TestContext.getRangeConsumed; var updateOfAttributeForPut = TestContext.updateOfAttributeForPut; var updateOfAttributeForDelete = TestContext.updateOfAttributeForDelete; var columnsToGet = TestContext.columnsToGet; var limit = TestContext.limit; var direction = TestContext.direction; var tableMeta = new TableMeta(tableName, pkSchema); switch (apiName) { case "CreateTable": var request0 = new CreateTableRequest(tableMeta, reservedThroughput); OTSClient.CreateTable(request0); return; case "ListTable": var request1 = new ListTableRequest(); var response1 = OTSClient.ListTable(request1); Assert.AreEqual(new List <string>() { tableName }, response1.TableNames); return; case "UpdateTable": var request2 = new UpdateTableRequest(tableName, reservedThroughput); var response2 = OTSClient.UpdateTable(request2); if (reservedThroughput.Read.HasValue && reservedThroughput.Write.HasValue) { AssertCapacityUnit( reservedThroughput, response2.ReservedThroughputDetails.CapacityUnit); } Assert.IsTrue(response2.ReservedThroughputDetails.LastDecreaseTime >= 0); Assert.IsTrue(response2.ReservedThroughputDetails.LastIncreaseTime >= 0); Assert.IsTrue(response2.ReservedThroughputDetails.NumberOfDecreasesToday >= 0); return; case "DeleteTable": var request3 = new DeleteTableRequest(tableName); OTSClient.DeleteTable(request3); var request31 = new ListTableRequest(); var response31 = OTSClient.ListTable(request31); Assert.AreEqual(new List <string>() { }, response31.TableNames); return; case "DescribeTable": var request4 = new DescribeTableRequest(tableName); var response4 = OTSClient.DescribeTable(request4); Assert.AreEqual(tableName, response4.TableMeta.TableName); AssertPrimaryKeySchema(pkSchema, response4.TableMeta.PrimaryKeySchema); AssertCapacityUnit(reservedThroughput, response4.ReservedThroughputDetails.CapacityUnit); Assert.IsTrue(response4.ReservedThroughputDetails.LastDecreaseTime >= 0); Assert.IsTrue(response4.ReservedThroughputDetails.LastIncreaseTime >= 0); Assert.IsTrue(response4.ReservedThroughputDetails.NumberOfDecreasesToday >= 0); return; case "PutRow": var request5 = new PutRowRequest(tableName, condition, primaryKey, attribute); var response5 = OTSClient.PutRow(request5); AssertCapacityUnit(putRowConsumed, response5.ConsumedCapacityUnit); return; case "GetRow": var request6 = new GetRowRequest(tableName, primaryKey, columnsToGet); var response6 = OTSClient.GetRow(request6); AssertPrimaryKey(primaryKey, response6.PrimaryKey, columnsToGet); AssertAttribute(attribute, response6.Attribute, columnsToGet); AssertCapacityUnit(getRowConsumed, response6.ConsumedCapacityUnit); return; case "DeleteRow": var request7 = new DeleteRowRequest(tableName, condition, primaryKey); var response7 = OTSClient.DeleteRow(request7); AssertCapacityUnit(deleteRowConsumed, response7.ConsumedCapacityUnit); var request71 = new GetRowRequest(tableName, primaryKey); var response71 = OTSClient.GetRow(request71); AssertPrimaryKey(new PrimaryKey(), response71.PrimaryKey); AssertAttribute(new AttributeColumns(), response71.Attribute); return; case "UpdateRow_Put": var request8 = new UpdateRowRequest(tableName, condition, primaryKey, updateOfAttributeForPut); var response8 = OTSClient.UpdateRow(request8); AssertCapacityUnit(updateRowConsumed, response8.ConsumedCapacityUnit); var request81 = new GetRowRequest(tableName, primaryKey); var response81 = OTSClient.GetRow(request81); AssertPrimaryKey(primaryKey, response81.PrimaryKey); AssertAttribute(attribute, response81.Attribute); AssertCapacityUnit(getRowConsumed, response81.ConsumedCapacityUnit); return; case "UpdateRow_Delete": var request9 = new UpdateRowRequest(tableName, condition, primaryKey, updateOfAttributeForDelete); var response9 = OTSClient.UpdateRow(request9); AssertCapacityUnit(deleteRowConsumed, response9.ConsumedCapacityUnit); var request91 = new GetRowRequest(tableName, primaryKey); var response91 = OTSClient.GetRow(request91); // Don't assert primary key AssertAttribute(new AttributeColumns(), response91.Attribute); return; case "BatchGetRow": var request11 = new BatchGetRowRequest(); request11.Add(tableName, new List <PrimaryKey>() { primaryKey }, columnsToGet); var response11 = OTSClient.BatchGetRow(request11); Assert.AreEqual(1, response11.RowDataGroupByTable.Count); Assert.IsTrue(response11.RowDataGroupByTable.ContainsKey(tableName)); Assert.AreEqual(1, response11.RowDataGroupByTable[tableName].Count); if (!response11.RowDataGroupByTable[tableName][0].IsOK) { throw new OTSServerException(apiName, HttpStatusCode.OK, response11.RowDataGroupByTable[tableName][0].ErrorCode, response11.RowDataGroupByTable[tableName][0].ErrorMessage); } AssertPrimaryKey(primaryKey, response11.RowDataGroupByTable[tableName][0].PrimaryKey); AssertAttribute(attribute, response11.RowDataGroupByTable[tableName][0].Attribute); AssertCapacityUnit(getRowConsumed, response11.RowDataGroupByTable[tableName][0].Consumed); return; case "BatchWriteRow_Put": var request12 = new BatchWriteRowRequest(); var rowChanges = new RowChanges(); rowChanges.AddPut(condition, primaryKey, attribute); request12.Add(tableName, rowChanges); var response12 = OTSClient.BatchWriteRow(request12); Assert.AreEqual(1, response12.TableRespones.Count); Assert.IsTrue(response12.TableRespones.ContainsKey(tableName)); Assert.AreEqual(1, response12.TableRespones[tableName].PutResponses.Count); Assert.AreEqual(0, response12.TableRespones[tableName].UpdateResponses.Count); Assert.AreEqual(0, response12.TableRespones[tableName].DeleteResponses.Count); if (response12.TableRespones[tableName].PutResponses[0].IsOK) { AssertCapacityUnit(putRowConsumed, response12.TableRespones[tableName].PutResponses[0].Consumed); } else { throw new OTSServerException("/BatchWriteRow", HttpStatusCode.OK, response12.TableRespones[tableName].PutResponses[0].ErrorCode, response12.TableRespones[tableName].PutResponses[0].ErrorMessage); } var request121 = new GetRowRequest(tableName, primaryKey); var response121 = OTSClient.GetRow(request121); AssertPrimaryKey(primaryKey, response121.PrimaryKey); AssertAttribute(attribute, response121.Attribute); AssertCapacityUnit(getRowConsumed, response121.ConsumedCapacityUnit); return; case "BatchWriteRow_Update": var request13 = new BatchWriteRowRequest(); var rowChanges2 = new RowChanges(); rowChanges2.AddUpdate(condition, primaryKey, updateOfAttributeForPut); request13.Add(tableName, rowChanges2); var response13 = OTSClient.BatchWriteRow(request13); Assert.AreEqual(1, response13.TableRespones.Count); Assert.IsTrue(response13.TableRespones.ContainsKey(tableName)); Assert.AreEqual(0, response13.TableRespones[tableName].PutResponses.Count); Assert.AreEqual(1, response13.TableRespones[tableName].UpdateResponses.Count); Assert.AreEqual(0, response13.TableRespones[tableName].DeleteResponses.Count); if (response13.TableRespones[tableName].UpdateResponses[0].IsOK) { AssertCapacityUnit(updateRowConsumed, response13.TableRespones[tableName].UpdateResponses[0].Consumed); } else { throw new OTSServerException("/BatchWriteRow", HttpStatusCode.OK, response13.TableRespones[tableName].UpdateResponses[0].ErrorCode, response13.TableRespones[tableName].UpdateResponses[0].ErrorMessage); } var request131 = new GetRowRequest(tableName, primaryKey); var response131 = OTSClient.GetRow(request131); AssertPrimaryKey(primaryKey, response131.PrimaryKey); AssertAttribute(attribute, response131.Attribute); AssertCapacityUnit(getRowConsumed, response131.ConsumedCapacityUnit); return; case "BatchWriteRow_Delete": var request14 = new BatchWriteRowRequest(); var rowChanges3 = new RowChanges(); rowChanges3.AddDelete(condition, primaryKey); request14.Add(tableName, rowChanges3); var response14 = OTSClient.BatchWriteRow(request14); Assert.AreEqual(1, response14.TableRespones.Count); Assert.IsTrue(response14.TableRespones.ContainsKey(tableName)); Assert.AreEqual(0, response14.TableRespones[tableName].PutResponses.Count); Assert.AreEqual(0, response14.TableRespones[tableName].UpdateResponses.Count); Assert.AreEqual(1, response14.TableRespones[tableName].DeleteResponses.Count); if (response14.TableRespones[tableName].DeleteResponses[0].IsOK) { AssertCapacityUnit(deleteRowConsumed, response14.TableRespones[tableName].DeleteResponses[0].Consumed); } else { throw new OTSServerException("/BatchWriteRow", HttpStatusCode.OK, response14.TableRespones[tableName].DeleteResponses[0].ErrorCode, response14.TableRespones[tableName].DeleteResponses[0].ErrorMessage); } var request141 = new GetRowRequest(tableName, primaryKey); var response141 = OTSClient.GetRow(request141); AssertPrimaryKey(new PrimaryKey(), response141.PrimaryKey); AssertAttribute(new AttributeColumns(), response141.Attribute); return; case "GetRange": var request15 = new GetRangeRequest(tableName, direction, startPrimaryKey, endPrimaryKey, columnsToGet, limit); var response15 = OTSClient.GetRange(request15); Assert.AreEqual(1, response15.RowDataList.Count); Assert.AreEqual(null, response15.NextPrimaryKey); AssertCapacityUnit(getRangeConsumed, response15.ConsumedCapacityUnit); AssertPrimaryKey(primaryKey, response15.RowDataList[0].PrimaryKey, columnsToGet); AssertAttribute(attribute, response15.RowDataList[0].Attribute, columnsToGet); return; default: throw new Exception(String.Format("invalid api name: {0}", apiName)); } }
/// <summary> /// DeleteRow的异步形式。 /// </summary> /// <param name="request"></param> /// <returns></returns> /// public Task <DeleteRowResponse> DeleteRowAsync(DeleteRowRequest request) { return(CallAsync <DeleteRowRequest, DeleteRowResponse>("/DeleteRow", request)); }