Skip to content

Commit e67a091

Browse files
Merge branch 'master' into users/ntripician/hpkwithid
2 parents d5dc241 + d4c91a0 commit e67a091

27 files changed

Lines changed: 191 additions & 134 deletions

CODEOWNERS

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@
55
# the repo. Unless a later match takes precedence,
66
# @global-owner1 and @global-owner2 will be requested for
77
# review when someone opens a pull request.
8-
* @kirankumarkolli @FabianMeiswinkel @sboshra @Pilchie
9-
Microsoft.Azure.Cosmos/src/Json @adityasa @neildsh @kirankumarkolli @sboshra
10-
Microsoft.Azure.Cosmos/src/Query @adityasa @neildsh @kirankumarkolli @sboshra
11-
Microsoft.Azure.Cosmos/src/CosmosElements @adityasa @neildsh @kirankumarkolli @sboshra
12-
Microsoft.Azure.Cosmos/src/SqlObjects @leminh98 @adityasa @kirankumarkolli @sboshra
13-
Microsoft.Azure.Cosmos/src/Linq @khdang @adityasa @sboshra @kirankumarkolli
14-
Microsoft.Azure.Cosmos/src/Spatial @neildsh @adityasa @sboshra @kirankumarkolli
15-
Microsoft.Azure.Cosmos/tests @khdang @sboshra @adityasa @neildsh @kirankumarkolli @FabianMeiswinkel @kirillg
16-
Microsoft.Azure.Cosmos.Samples @khdang @sboshra @adityasa @neildsh @kirankumarkolli @FabianMeiswinkel @kirillg
8+
* @kirankumarkolli @FabianMeiswinkel @sboshra @Pilchie @kushagraThapar
9+
Microsoft.Azure.Cosmos/src/Json @adityasa @neildsh @kirankumarkolli @sboshra @kushagraThapar
10+
Microsoft.Azure.Cosmos/src/Query @adityasa @neildsh @kirankumarkolli @sboshra @kushagraThapar
11+
Microsoft.Azure.Cosmos/src/CosmosElements @adityasa @neildsh @kirankumarkolli @sboshra @kushagraThapar
12+
Microsoft.Azure.Cosmos/src/SqlObjects @leminh98 @adityasa @kirankumarkolli @sboshra @kushagraThapar
13+
Microsoft.Azure.Cosmos/src/Linq @khdang @adityasa @sboshra @kirankumarkolli @kushagraThapar
14+
Microsoft.Azure.Cosmos/src/Spatial @neildsh @adityasa @sboshra @kirankumarkolli @kushagraThapar
15+
Microsoft.Azure.Cosmos/tests @khdang @sboshra @adityasa @neildsh @kirankumarkolli @FabianMeiswinkel @kirillg @kushagraThapar
16+
Microsoft.Azure.Cosmos.Samples @khdang @sboshra @adityasa @neildsh @kirankumarkolli @FabianMeiswinkel @kirillg @kushagraThapar
1717

1818
# Order is important; the last matching pattern takes the most precedence
19-
Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.Tests/Contracts @kirillg @kirankumarkolli @FabianMeiswinkel
20-
Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/Contracts @kirillg @kirankumarkolli @FabianMeiswinkel
19+
Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.Tests/Contracts @kirillg @kirankumarkolli @FabianMeiswinkel @kushagraThapar
20+
Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/Contracts @kirillg @kirankumarkolli @FabianMeiswinkel @kushagraThapar
2121
Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.Tests/Contracts/DotNetSDKAPI.json @Azure/azure-cosmosdb-lt
2222
Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.Tests/Contracts/DotNetPreviewSDKAPI.json @Azure/azure-cosmosdb-lt
2323
Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.Tests/Contracts/DotNetSDKTelemetryAPI.json @Azure/azure-cosmosdb-lt

Microsoft.Azure.Cosmos/src/DistributedTransaction/DistributedTransactionOperation.cs

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// ------------------------------------------------------------
1+
// ------------------------------------------------------------
22
// Copyright (c) Microsoft Corporation. All rights reserved.
33
// ------------------------------------------------------------
44

@@ -78,19 +78,6 @@ internal virtual async Task MaterializeResourceAsync(CosmosSerializerCore serial
7878

7979
internal class DistributedTransactionOperation<T> : DistributedTransactionOperation
8080
{
81-
public DistributedTransactionOperation(
82-
Documents.OperationType operationType,
83-
int operationIndex,
84-
string database,
85-
string container,
86-
PartitionKey partitionKey,
87-
T resource,
88-
DistributedTransactionRequestOptions requestOptions = null)
89-
: base(operationType, operationIndex, database, container, partitionKey, id: null, requestOptions)
90-
{
91-
this.Resource = resource;
92-
}
93-
9481
public DistributedTransactionOperation(
9582
Documents.OperationType operationType,
9683
int operationIndex,

Microsoft.Azure.Cosmos/src/DistributedTransaction/DistributedTransactionSerializer.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ namespace Microsoft.Azure.Cosmos
66
{
77
using System;
88
using System.Collections.Generic;
9+
using System.Diagnostics;
910
using System.IO;
1011
using System.Text.Json;
1112
using Microsoft.Azure.Documents;
@@ -62,6 +63,9 @@ private static void WriteOperation(Utf8JsonWriter jsonWriter, DistributedTransac
6263
// collectionName
6364
jsonWriter.WriteString("collectionName", operation.Container);
6465

66+
// id
67+
jsonWriter.WriteString("id", operation.Id);
68+
6569
// collectionResourceId
6670
if (operation.CollectionResourceId != null)
6771
{
@@ -74,12 +78,6 @@ private static void WriteOperation(Utf8JsonWriter jsonWriter, DistributedTransac
7478
jsonWriter.WriteString("databaseResourceId", operation.DatabaseResourceId);
7579
}
7680

77-
// id
78-
if (operation.Id != null)
79-
{
80-
jsonWriter.WriteString("id", operation.Id);
81-
}
82-
8381
// partitionKey
8482
if (operation.PartitionKeyJson != null)
8583
{

Microsoft.Azure.Cosmos/src/DistributedTransaction/DistributedWriteTransaction.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,15 @@ abstract class DistributedWriteTransaction : DistributedTransaction
2424
/// <param name="database">The name of the database containing the container.</param>
2525
/// <param name="collection">The name of the container where the item will be created.</param>
2626
/// <param name="partitionKey">The partition key for the item.</param>
27+
/// <param name="id">The unique identifier of the item to create.</param>
2728
/// <param name="resource">The resource to create.</param>
2829
/// <param name="requestOptions">Options for the create operation.</param>
2930
/// <returns>The current <see cref="DistributedWriteTransaction"/> instance for method chaining.</returns>
3031
public abstract DistributedWriteTransaction CreateItem<T>(
3132
string database,
3233
string collection,
3334
PartitionKey partitionKey,
35+
string id,
3436
T resource,
3537
DistributedTransactionRequestOptions requestOptions = null);
3638

@@ -40,13 +42,15 @@ public abstract DistributedWriteTransaction CreateItem<T>(
4042
/// <param name="database">The name of the database containing the container.</param>
4143
/// <param name="collection">The name of the container where the item will be created.</param>
4244
/// <param name="partitionKey">The partition key for the item.</param>
45+
/// <param name="id">The unique identifier of the item to create.</param>
4346
/// <param name="streamPayload">A <see cref="Stream"/> containing the JSON serialization of the item.</param>
4447
/// <param name="requestOptions">Options for the create operation.</param>
4548
/// <returns>The current <see cref="DistributedWriteTransaction"/> instance for method chaining.</returns>
4649
public abstract DistributedWriteTransaction CreateItemStream(
4750
string database,
4851
string collection,
4952
PartitionKey partitionKey,
53+
string id,
5054
Stream streamPayload,
5155
DistributedTransactionRequestOptions requestOptions = null);
5256

@@ -147,13 +151,15 @@ public abstract DistributedWriteTransaction PatchItemStream(
147151
/// <param name="database">The name of the database containing the container.</param>
148152
/// <param name="collection">The name of the container where the item will be upserted.</param>
149153
/// <param name="partitionKey">The partition key for the item.</param>
154+
/// <param name="id">The unique identifier of the item to upsert.</param>
150155
/// <param name="resource">The resource to upsert.</param>
151156
/// <param name="requestOptions">Options for the upsert operation.</param>
152157
/// <returns>The current <see cref="DistributedWriteTransaction"/> instance for method chaining.</returns>
153158
public abstract DistributedWriteTransaction UpsertItem<T>(
154159
string database,
155160
string collection,
156161
PartitionKey partitionKey,
162+
string id,
157163
T resource,
158164
DistributedTransactionRequestOptions requestOptions = null);
159165

@@ -164,13 +170,15 @@ public abstract DistributedWriteTransaction UpsertItem<T>(
164170
/// <param name="database">The name of the database containing the container.</param>
165171
/// <param name="collection">The name of the container where the item will be upserted.</param>
166172
/// <param name="partitionKey">The partition key for the item.</param>
173+
/// <param name="id">The unique identifier of the item to upsert.</param>
167174
/// <param name="streamPayload">A <see cref="Stream"/> containing the JSON serialization of the item.</param>
168175
/// <param name="requestOptions">Options for the upsert operation.</param>
169176
/// <returns>The current <see cref="DistributedWriteTransaction"/> instance for method chaining.</returns>
170177
public abstract DistributedWriteTransaction UpsertItemStream(
171178
string database,
172179
string collection,
173180
PartitionKey partitionKey,
181+
string id,
174182
Stream streamPayload,
175183
DistributedTransactionRequestOptions requestOptions = null);
176184
}

Microsoft.Azure.Cosmos/src/DistributedTransaction/DistributedWriteTransactionCore.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,12 @@ public override DistributedWriteTransaction CreateItem<T>(
2727
string database,
2828
string collection,
2929
PartitionKey partitionKey,
30+
string id,
3031
T resource,
3132
DistributedTransactionRequestOptions requestOptions = null)
3233
{
3334
DistributedWriteTransactionCore.ValidateContainerReference(database, collection);
35+
DistributedWriteTransactionCore.ValidateItemId(id);
3436
DistributedWriteTransactionCore.ValidateResource(resource);
3537

3638
this.operations.Add(
@@ -40,6 +42,7 @@ public override DistributedWriteTransaction CreateItem<T>(
4042
database,
4143
collection,
4244
partitionKey,
45+
id,
4346
resource,
4447
requestOptions));
4548
return this;
@@ -49,10 +52,12 @@ public override DistributedWriteTransaction CreateItemStream(
4952
string database,
5053
string collection,
5154
PartitionKey partitionKey,
55+
string id,
5256
Stream streamPayload,
5357
DistributedTransactionRequestOptions requestOptions = null)
5458
{
5559
DistributedWriteTransactionCore.ValidateContainerReference(database, collection);
60+
DistributedWriteTransactionCore.ValidateItemId(id);
5661
if (streamPayload == null)
5762
{
5863
throw new ArgumentNullException(nameof(streamPayload));
@@ -65,6 +70,7 @@ public override DistributedWriteTransaction CreateItemStream(
6570
database: database,
6671
container: collection,
6772
partitionKey: partitionKey,
73+
id: id,
6874
requestOptions: requestOptions)
6975
{
7076
ResourceStream = streamPayload
@@ -214,10 +220,12 @@ public override DistributedWriteTransaction UpsertItem<T>(
214220
string database,
215221
string collection,
216222
PartitionKey partitionKey,
223+
string id,
217224
T resource,
218225
DistributedTransactionRequestOptions requestOptions = null)
219226
{
220227
DistributedWriteTransactionCore.ValidateContainerReference(database, collection);
228+
DistributedWriteTransactionCore.ValidateItemId(id);
221229
DistributedWriteTransactionCore.ValidateResource(resource);
222230

223231
this.operations.Add(
@@ -227,6 +235,7 @@ public override DistributedWriteTransaction UpsertItem<T>(
227235
database,
228236
collection,
229237
partitionKey,
238+
id,
230239
resource,
231240
requestOptions));
232241
return this;
@@ -236,10 +245,12 @@ public override DistributedWriteTransaction UpsertItemStream(
236245
string database,
237246
string collection,
238247
PartitionKey partitionKey,
248+
string id,
239249
Stream streamPayload,
240250
DistributedTransactionRequestOptions requestOptions = null)
241251
{
242252
DistributedWriteTransactionCore.ValidateContainerReference(database, collection);
253+
DistributedWriteTransactionCore.ValidateItemId(id);
243254
if (streamPayload == null)
244255
{
245256
throw new ArgumentNullException(nameof(streamPayload));
@@ -252,6 +263,7 @@ public override DistributedWriteTransaction UpsertItemStream(
252263
database: database,
253264
container: collection,
254265
partitionKey: partitionKey,
266+
id: id,
255267
requestOptions: requestOptions)
256268
{
257269
ResourceStream = streamPayload

Microsoft.Azure.Cosmos/src/Resource/Container/Container.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1757,11 +1757,14 @@ public abstract ChangeFeedProcessorBuilder GetChangeFeedProcessorBuilderWithManu
17571757
/// ]]>
17581758
/// </code>
17591759
/// </example>
1760-
public abstract Task<SemanticRerankResult> SemanticRerankAsync(
1760+
public virtual Task<SemanticRerankResult> SemanticRerankAsync(
17611761
string rerankContext,
17621762
IEnumerable<string> documents,
1763-
IDictionary<string, object> options = null,
1764-
CancellationToken cancellationToken = default);
1763+
IDictionary<string, object> options = null,
1764+
CancellationToken cancellationToken = default)
1765+
{
1766+
throw new NotImplementedException();
1767+
}
17651768
#endif
17661769

17671770
/// <summary>

Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/CosmosItemIntegrationTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,7 @@ public async Task AddressRefreshTimeoutTest()
381381
}
382382
}
383383

384+
[TestMethod]
384385
[Owner("dkunda")]
385386
[TestCategory("MultiRegion")]
386387
[DataRow(true, DisplayName = "Test scenario when binary encoding is enabled at client level.")]
@@ -2243,7 +2244,7 @@ public async Task ClinetOverrides0msRequestTimeoutValueForPPAF()
22432244

22442245
CrossRegionHedgingAvailabilityStrategy strat = cosmosClient.DocumentClient.ConnectionPolicy.AvailabilityStrategy as CrossRegionHedgingAvailabilityStrategy;
22452246
Assert.IsNotNull(strat);
2246-
Assert.AreNotEqual(0, strat.Threshold);
2247+
Assert.AreNotEqual(TimeSpan.Zero, strat.Threshold);
22472248
}
22482249

22492250

Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/CosmosItemTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2390,7 +2390,7 @@ public async Task ItemRequestOptionAccessConditionTest(bool binaryEncodingEnable
23902390
Assert.IsNotNull(responseMessage);
23912391
Assert.IsNull(responseMessage.Content);
23922392
Assert.AreEqual(HttpStatusCode.PreconditionFailed, responseMessage.StatusCode, responseMessage.ErrorMessage);
2393-
Assert.AreNotEqual(responseMessage.Headers.ActivityId, Guid.Empty);
2393+
Assert.AreNotEqual(Guid.Empty.ToString(), responseMessage.Headers.ActivityId);
23942394
Assert.IsTrue(responseMessage.Headers.RequestCharge > 0);
23952395
Assert.IsFalse(string.IsNullOrEmpty(responseMessage.ErrorMessage));
23962396
Assert.IsTrue(responseMessage.ErrorMessage.Contains("One of the specified pre-condition is not met"));
@@ -2407,7 +2407,7 @@ public async Task ItemRequestOptionAccessConditionTest(bool binaryEncodingEnable
24072407
{
24082408
Assert.IsNotNull(e);
24092409
Assert.AreEqual(HttpStatusCode.PreconditionFailed, e.StatusCode, e.Message);
2410-
Assert.AreNotEqual(e.ActivityId, Guid.Empty);
2410+
Assert.AreNotEqual(Guid.Empty.ToString(), e.ActivityId);
24112411
Assert.IsTrue(e.RequestCharge > 0);
24122412
string expectedResponseBody = $"{Environment.NewLine}Errors : [{Environment.NewLine} \"One of the specified pre-condition is not met. Learn more: https://aka.ms/CosmosDB/sql/errors/precondition-failed\"{Environment.NewLine}]{Environment.NewLine}";
24132413
Assert.AreEqual(expectedResponseBody, e.ResponseBody);

0 commit comments

Comments
 (0)