Skip to content

Commit 202d9e8

Browse files
authored
Add doc’s sequence number + primary term to get responses (#3767)
Add doc’s sequence number + primary term to get responses
1 parent 1cc18f1 commit 202d9e8

File tree

5 files changed

+34
-0
lines changed

5 files changed

+34
-0
lines changed

src/Nest/Document/Multiple/MultiGet/Response/MultiGetHit.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ public interface IMultiGetHit<out TDocument> where TDocument : class
2323
string Type { get; }
2424

2525
long Version { get; }
26+
27+
long PrimaryTerm { get; }
28+
29+
long SequenceNumber { get; }
2630
}
2731

2832
[JsonObject]
@@ -58,5 +62,11 @@ public class MultiGetHit<TDocument> : IMultiGetHit<TDocument>
5862

5963
[JsonProperty("_version")]
6064
public long Version { get; internal set; }
65+
66+
[JsonProperty("_primary_term")]
67+
public long PrimaryTerm { get; internal set; }
68+
69+
[JsonProperty("_seq_no")]
70+
public long SequenceNumber { get; internal set; }
6171
}
6272
}

src/Nest/Document/Single/Get/GetResponse.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ public interface IGetResponse<out TDocument> : IResponse where TDocument : class
3333

3434
[JsonProperty("_version")]
3535
long Version { get; }
36+
37+
[JsonProperty("_primary_term")]
38+
long? PrimaryTerm { get; }
39+
40+
[JsonProperty("_seq_no")]
41+
long? SequenceNumber { get; }
3642
}
3743

3844
[JsonObject(MemberSerialization.OptIn)]
@@ -47,5 +53,7 @@ public class GetResponse<TDocument> : ResponseBase, IGetResponse<TDocument> wher
4753
public TDocument Source { get; internal set; }
4854
public string Type { get; internal set; }
4955
public long Version { get; internal set; }
56+
public long? PrimaryTerm { get; internal set; }
57+
public long? SequenceNumber { get; internal set; }
5058
}
5159
}

src/Tests/Tests/Document/Multiple/MultiGet/MultiGetApiTests.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,11 @@ protected override void ExpectResponse(IMultiGetResponse response)
170170
hit.Id.Should().NotBeNullOrWhiteSpace();
171171
hit.Found.Should().BeTrue();
172172
hit.Version.Should().Be(1);
173+
if (base.Cluster.ClusterConfiguration.Version >= "6.8.0")
174+
{
175+
hit.PrimaryTerm.Should().BeGreaterOrEqualTo(1);
176+
hit.SequenceNumber.Should().BeGreaterOrEqualTo(0);
177+
}
173178
hit.Source.ShouldAdhereToSourceSerializerWhenSet();
174179
}
175180
}

src/Tests/Tests/Document/Single/DocumentCrudTests.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,11 @@ [I] protected async Task DocumentIsUpdated() => await AssertOnGetAfterUpdate(r =
7878
{
7979
r.Source.Should().NotBeNull();
8080
r.Version.Should().BeGreaterThan(1);
81+
if (base.Cluster.ClusterConfiguration.Version >= "6.8.0")
82+
{
83+
r.SequenceNumber.Should().BeGreaterOrEqualTo(1);
84+
r.PrimaryTerm.Should().BeGreaterThan(0);
85+
}
8186
r.Source.Description.Should().EndWith("updated");
8287
});
8388

src/Tests/Tests/Document/Single/Get/GetApiTests.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,12 @@ protected override void ExpectResponse(IGetResponse<Project> response)
4545
response.Source.Should().NotBeNull();
4646
response.Source.Name.Should().Be(ProjectId);
4747
response.Source.ShouldAdhereToSourceSerializerWhenSet();
48+
49+
if (base.Cluster.ClusterConfiguration.Version >= "6.8.0")
50+
{
51+
response.SequenceNumber.Should().BeGreaterOrEqualTo(0);
52+
response.PrimaryTerm.Should().BeGreaterOrEqualTo(1);
53+
}
4854
}
4955
}
5056

0 commit comments

Comments
 (0)