Skip to content

Commit e719537

Browse files
committed
Merge branch 'master' into cosmos-linq
2 parents 955d368 + 3e6c978 commit e719537

File tree

14 files changed

+58
-15
lines changed

14 files changed

+58
-15
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ The `Unreleased` section name is replaced by the expected version of next releas
2828

2929
### Changed
3030

31-
- `Equinox.*Store`,`Equinox.*Store.Prometheus`: Pin `Equinox` dependencies to `[4.0.0, 5.0.0)`] [#448](https://github.com/jet/equinox/pull/448)
31+
- `Equinox.*Store`,`Equinox.*Store.Prometheus`: Pin `Equinox` dependencies to `[4.0.3, 5.0.0)`] [#448](https://github.com/jet/equinox/pull/448)
3232
- `Equinox.CosmosStore`: Update `System.Text.Json` dep to `6.0.10` per [CVE-2024-43485](https://github.com/advisories/GHSA-8g4q-xg66-9fp4) [#470](https://github.com/jet/equinox/pull/470)
3333
- `Equinox.CosmosStore`: Minimum `Microsoft.Azure.Cosmos` requirement updated to `3.43.1` to avail of integrated `System.Text.Json` support [#467](https://github.com/jet/equinox/pull/467)
3434
- `Equinox.CosmosStore.CosmosStoreConnector`: Removed mandatory `requestTimeout` argument [#467](https://github.com/jet/equinox/pull/467)

src/Equinox.CosmosStore.Prometheus/Equinox.CosmosStore.Prometheus.fsproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@
99
</ItemGroup>
1010

1111
<ItemGroup>
12-
<!-- <ProjectReference Condition=" '$(Configuration)' == 'Debug' " Include="..\Equinox.CosmosStore\Equinox.CosmosStore.fsproj" />-->
13-
<!-- <PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox.CosmosStore" Version="[4.1.0, 5.0.0)" />-->
14-
<!-- For now, use a `>=` as a hack. The minute we publish CosmosStore 4.1.0, change back to the normal scheme as above -->
15-
<ProjectReference Include="..\Equinox.CosmosStore\Equinox.CosmosStore.fsproj" />
12+
<!-- <ProjectReference Condition=" '$(Configuration)' == 'Debug' " Include="..\Equinox.CosmosStore\Equinox.CosmosStore.fsproj" />-->
13+
<!-- <PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox.CosmosStore" Version="[4.1.0, 5.0.0)" />-->
14+
<!-- For now, use a `>=` as a hack. The minute we publish CosmosStore 4.1.0, change back to the normal scheme as above -->
15+
<ProjectReference Include="..\Equinox.CosmosStore\Equinox.CosmosStore.fsproj" />
1616
</ItemGroup>
1717

1818
<ItemGroup>

src/Equinox.DynamoStore.Prometheus/Equinox.DynamoStore.Prometheus.fsproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
<ItemGroup>
1212
<ProjectReference Condition=" '$(Configuration)' == 'Debug' " Include="..\Equinox.DynamoStore\Equinox.DynamoStore.fsproj" />
13-
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox.DynamoStore" Version="[4.0.0, 5.0.0)" />
13+
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox.DynamoStore" Version="[4.0.3, 5.0.0)" />
1414
</ItemGroup>
1515

1616
<ItemGroup>

src/Equinox.DynamoStore/Equinox.DynamoStore.fsproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
<ItemGroup>
1717
<ProjectReference Condition=" '$(Configuration)' == 'Debug' " Include="..\Equinox\Equinox.fsproj" />
18-
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox" Version="[4.0.0, 5.0.0)" />
18+
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox" Version="[4.0.3, 5.0.0)" />
1919
</ItemGroup>
2020

2121
<ItemGroup>

src/Equinox.EventStore/Equinox.EventStore.fsproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
<ItemGroup>
1717
<ProjectReference Condition=" '$(Configuration)' == 'Debug' " Include="..\Equinox\Equinox.fsproj" />
18-
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox" Version="[4.0.0, 5.0.0)" />
18+
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox" Version="[4.0.3, 5.0.0)" />
1919
</ItemGroup>
2020

2121
<ItemGroup>

src/Equinox.EventStoreDb/Equinox.EventStoreDb.fsproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
<ItemGroup>
1717
<ProjectReference Condition=" '$(Configuration)' == 'Debug' " Include="..\Equinox\Equinox.fsproj" />
18-
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox" Version="[4.0.0, 5.0.0)" />
18+
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox" Version="[4.0.3, 5.0.0)" />
1919
</ItemGroup>
2020

2121
<ItemGroup>

src/Equinox.MemoryStore/Equinox.MemoryStore.fsproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
<ItemGroup>
1616
<ProjectReference Condition=" '$(Configuration)' == 'Debug' " Include="..\Equinox\Equinox.fsproj" />
17-
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox" Version="[4.0.0, 5.0.0)" />
17+
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox" Version="[4.0.3, 5.0.0)" />
1818
</ItemGroup>
1919

2020
<ItemGroup>

src/Equinox.MessageDb/Equinox.MessageDb.fsproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
<ItemGroup>
1919
<ProjectReference Condition=" '$(Configuration)' == 'Debug' " Include="..\Equinox\Equinox.fsproj" />
20-
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox" Version="[4.0.0, 5.0.0)" />
20+
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox" Version="[4.0.3, 5.0.0)" />
2121
</ItemGroup>
2222

2323
<ItemGroup>

src/Equinox.SqlStreamStore.MsSql/Equinox.SqlStreamStore.MsSql.fsproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
<ItemGroup>
1616
<ProjectReference Condition=" '$(Configuration)' == 'Debug' " Include="..\Equinox.SqlStreamStore\Equinox.SqlStreamStore.fsproj" />
17-
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox.SqlStreamStore" Version="[4.0.0, 5.0.0)" />
17+
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox.SqlStreamStore" Version="[4.0.3, 5.0.0)" />
1818
</ItemGroup>
1919

2020
<ItemGroup>

src/Equinox.SqlStreamStore.MySql/Equinox.SqlStreamStore.MySql.fsproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
<ItemGroup>
1616
<ProjectReference Condition=" '$(Configuration)' == 'Debug' " Include="..\Equinox.SqlStreamStore\Equinox.SqlStreamStore.fsproj" />
17-
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox.SqlStreamStore" Version="[4.0.0, 5.0.0)" />
17+
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox.SqlStreamStore" Version="[4.0.3, 5.0.0)" />
1818
</ItemGroup>
1919

2020
<ItemGroup>

src/Equinox.SqlStreamStore.Postgres/Equinox.SqlStreamStore.Postgres.fsproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
<ItemGroup>
1616
<ProjectReference Condition=" '$(Configuration)' == 'Debug' " Include="..\Equinox.SqlStreamStore\Equinox.SqlStreamStore.fsproj" />
17-
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox.SqlStreamStore" Version="[4.0.0, 5.0.0)" />
17+
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox.SqlStreamStore" Version="[4.0.3, 5.0.0)" />
1818
</ItemGroup>
1919

2020
<ItemGroup>

src/Equinox.SqlStreamStore/Equinox.SqlStreamStore.fsproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
<ItemGroup>
1717
<ProjectReference Condition=" '$(Configuration)' == 'Debug' " Include="..\Equinox\Equinox.fsproj" />
18-
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox" Version="[4.0.0, 5.0.0)" />
18+
<PackageReference Condition=" '$(Configuration)' == 'Release' " Include="Equinox" Version="[4.0.3, 5.0.0)" />
1919
</ItemGroup>
2020

2121
<ItemGroup>

tools/Equinox.Tool/CosmosStoreLinq.fs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
namespace Equinox.CosmosStore.Linq
2+
3+
open Equinox.Core
4+
open FSharp.Control // taskSeq
5+
open Serilog
6+
open System
7+
open System.ComponentModel
8+
9+
module internal Internal =
10+
open Microsoft.Azure.Cosmos
11+
let inline miB x = float x / 1024. / 1024.
12+
module Query =
13+
let [<EditorBrowsable(EditorBrowsableState.Never)>] enum__ (iterator: FeedIterator<'T>) = taskSeq {
14+
while iterator.HasMoreResults do
15+
let! response = iterator.ReadNextAsync()
16+
let m = response.Diagnostics.GetQueryMetrics().CumulativeMetrics
17+
yield struct (response.Diagnostics.GetClientElapsedTime(), response.RequestCharge, response.Resource,
18+
int m.RetrievedDocumentCount, int m.RetrievedDocumentSize, int m.OutputDocumentSize) }
19+
let enum_<'T> (log: ILogger) (container: Container) (action: string) cat logLevel (iterator: FeedIterator<'T>) = taskSeq {
20+
let startTicks = System.Diagnostics.Stopwatch.GetTimestamp()
21+
use _ = iterator
22+
let mutable responses, items, totalRtt, totalRu, totalRdc, totalRds, totalOds = 0, 0, TimeSpan.Zero, 0., 0, 0, 0
23+
try for rtt, rc, response, rdc, rds, ods in enum__ iterator do
24+
responses <- responses + 1
25+
totalRdc <- totalRdc + rdc
26+
totalRds <- totalRds + rds
27+
totalOds <- totalOds + ods
28+
totalRu <- totalRu + rc
29+
totalRtt <- totalRtt + rtt
30+
for item in response do
31+
items <- items + 1
32+
yield item
33+
finally
34+
let interval = StopwatchInterval(startTicks, System.Diagnostics.Stopwatch.GetTimestamp())
35+
log.Write(logLevel, "EqxCosmos {action:l} {count} ({trips}r {totalRtt:f0}ms; {rdc}i {rds:f2}>{ods:f2} MiB) {rc:f2} RU {lat:f0} ms",
36+
action, items, responses, totalRtt.TotalMilliseconds, totalRdc, miB totalRds, miB totalOds, totalRu, interval.ElapsedMilliseconds) }
37+
let exec__<'R> (log: ILogger) (container: Container) cat logLevel (queryDefinition: QueryDefinition): TaskSeq<'R> =
38+
if log.IsEnabled logLevel then log.Write(logLevel, "CosmosStoreQuery.run {cat} {query}", cat, queryDefinition.QueryText)
39+
container.GetItemQueryIterator<'R> queryDefinition |> enum_ log container "Query" cat logLevel
40+
/// Execute a query, hydrating as 'R
41+
let exec<'R> (log: ILogger) (container: Container) logLevel (queryDefinition: QueryDefinition): TaskSeq<'R> =
42+
exec__<'R> log container "%" logLevel queryDefinition

tools/Equinox.Tool/Equinox.Tool.fsproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
<Compile Include="StoreClient.fs" />
1919
<Compile Include="TodoClient.fs" />
2020
<Compile Include="Tests.fs" />
21+
<Compile Include="CosmosStoreLinq.fs" />
2122
<Compile Include="Program.fs" />
2223
</ItemGroup>
2324

0 commit comments

Comments
 (0)