Skip to content

Commit 7f59008

Browse files
committed
Fix NaN values handling in the progressPercentage property
1 parent 5a7e91d commit 7f59008

File tree

5 files changed

+37
-1
lines changed

5 files changed

+37
-1
lines changed

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ _ReSharper*/
2626
*.[Rr]e[Ss]harper
2727
*.DotSettings.user
2828

29+
# JetBrains Rider
30+
.idea/
31+
*.sln.iml
32+
2933
# NuGet
3034
*.nupkg
3135
*.snupkg

trino-csharp/Trino.Client.Test/Trino.Client.Test.csproj

+3
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@
5050
<None Update="scripts\zero_rows.txt">
5151
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
5252
</None>
53+
<None Update="scripts\nan_progress.txt">
54+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
55+
</None>
5356
</ItemGroup>
5457

5558
</Project>

trino-csharp/Trino.Client.Test/TrinoClientTests.cs

+22
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,28 @@ public void TestReadZeroRows()
6666
}
6767
}
6868

69+
/// <summary>
70+
/// Test NaN values handling in the response
71+
/// </summary>
72+
[TestMethod]
73+
public async Task TestNanProgress()
74+
{
75+
using (TrinoTestServer server = TrinoTestServer.Create("nan_progress.txt"))
76+
{
77+
var properties = server.GetConnectionProperties();
78+
properties.Catalog = "memory";
79+
80+
using (TrinoConnection tc = new(properties))
81+
{
82+
using (TrinoCommand trinoCommand = new(tc, "insert into memory.default.target_table (id) select id from memory.default.target_table"))
83+
{
84+
var result = await trinoCommand.ExecuteNonQueryAsync(CancellationToken.None);
85+
Assert.AreEqual(result, 0);
86+
}
87+
}
88+
}
89+
}
90+
6991
/// <summary>
7092
/// Test that after cancellation schema can still be retrieved.
7193
/// </summary>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Date=Tue, 05 Mar 2024 06:13:01 GMT|Connection=keep-alive|X-Content-Type-Options=nosniff|Vary=Accept-Encoding|Strict-Transport-Security=max-age=15724800; includeSubDomains|
2+
{"id":"20250221_095950_00006_p6xi8","infoUri":"http://localhost/ui/query.html?20250221_095950_00006_p6xi8","nextUri":"http://localhost/v1/statement/queued/20250221_095950_00006_p6xi8/y87e023ab1368e34a0a37242d159c67fa2b571090/2","stats":{"state":"QUEUED","queued":true,"scheduled":false,"nodes":0,"totalSplits":0,"queuedSplits":0,"runningSplits":0,"completedSplits":0,"planningTimeMillis":0,"analysisTimeMillis":0,"cpuTimeMillis":0,"wallTimeMillis":0,"queuedTimeMillis":2,"elapsedTimeMillis":2,"finishingTimeMillis":0,"physicalInputTimeMillis":0,"processedRows":0,"processedBytes":0,"physicalInputBytes":0,"physicalWrittenBytes":0,"internalNetworkInputBytes":0,"peakMemoryBytes":0,"spilledBytes":0},"warnings":[]}
3+
Date=Tue, 05 Mar 2024 06:13:01 GMT|Connection=keep-alive|X-Content-Type-Options=nosniff|Vary=Accept-Encoding|Strict-Transport-Security=max-age=15724800; includeSubDomains|
4+
{"id":"20250221_095950_00006_p6xi8","infoUri":"http://localhost/ui/query.html?20250221_095950_00006_p6xi8","nextUri":"http://localhost/v1/statement/executing/20250221_095950_00006_p6xi8/y847f29ed6cdec0bd26e63126d210ecc7a8fe1f9a/0","stats":{"state":"QUEUED","queued":true,"scheduled":false,"nodes":0,"totalSplits":0,"queuedSplits":0,"runningSplits":0,"completedSplits":0,"planningTimeMillis":0,"analysisTimeMillis":0,"cpuTimeMillis":0,"wallTimeMillis":0,"queuedTimeMillis":3,"elapsedTimeMillis":12551,"finishingTimeMillis":0,"physicalInputTimeMillis":0,"processedRows":0,"processedBytes":0,"physicalInputBytes":0,"physicalWrittenBytes":0,"internalNetworkInputBytes":0,"peakMemoryBytes":0,"spilledBytes":0},"warnings":[]}
5+
Date=Tue, 05 Mar 2024 06:13:02 GMT|Connection=keep-alive|X-Content-Type-Options=nosniff|Vary=Accept-Encoding|Strict-Transport-Security=max-age=15724800; includeSubDomains|
6+
{"id":"20250221_095950_00006_p6xi8","infoUri":"http://localhost/ui/query.html?20250221_095950_00006_p6xi8","nextUri":"http://localhost/v1/statement/executing/20250221_095950_00006_p6xi8/y45d228b42fc52c29776a876c0ab50e531346be8a/1","columns":[{"name":"rows","type":"bigint","typeSignature":{"rawType":"bigint","arguments":[]}}],"data":[[0]],"stats":{"state":"FINISHED","queued":false,"scheduled":true,"progressPercentage":"NaN","runningPercentage":"NaN","nodes":1,"totalSplits":18,"queuedSplits":0,"runningSplits":0,"completedSplits":18,"planningTimeMillis":446,"analysisTimeMillis":53,"cpuTimeMillis":277,"wallTimeMillis":338,"queuedTimeMillis":3,"elapsedTimeMillis":19819,"finishingTimeMillis":18102,"physicalInputTimeMillis":0,"processedRows":0,"processedBytes":0,"physicalInputBytes":0,"physicalWrittenBytes":0,"internalNetworkInputBytes":177,"peakMemoryBytes":265474,"spilledBytes":0,"rootStage":{"stageId":"0","state":"FINISHED","done":true,"nodes":1,"totalSplits":9,"queuedSplits":0,"runningSplits":0,"completedSplits":9,"cpuTimeMillis":35,"wallTimeMillis":59,"processedRows":2,"processedBytes":177,"physicalInputBytes":0,"failedTasks":0,"coordinatorOnly":true,"subStages":[{"stageId":"1","state":"FINISHED","done":true,"nodes":1,"totalSplits":9,"queuedSplits":0,"runningSplits":0,"completedSplits":9,"cpuTimeMillis":242,"wallTimeMillis":279,"processedRows":0,"processedBytes":0,"physicalInputBytes":0,"failedTasks":0,"coordinatorOnly":false,"subStages":[{"stageId":"2","state":"FINISHED","done":true,"nodes":1,"totalSplits":0,"queuedSplits":0,"runningSplits":0,"completedSplits":0,"cpuTimeMillis":0,"wallTimeMillis":0,"processedRows":0,"processedBytes":0,"physicalInputBytes":0,"failedTasks":0,"coordinatorOnly":false,"subStages":[]}]}]}},"warnings":[],"updateType":"INSERT","updateCount":0}
7+
Date=Tue, 05 Mar 2024 06:13:02 GMT|Connection=keep-alive|X-Content-Type-Options=nosniff|Vary=Accept-Encoding|Strict-Transport-Security=max-age=15724800; includeSubDomains|
8+
{"id":"20250221_095950_00006_p6xi8","infoUri":"http://localhost/ui/query.html?20250221_095950_00006_p6xi8","columns":[{"name":"rows","type":"bigint","typeSignature":{"rawType":"bigint","arguments":[]}}],"stats":{"state":"FINISHED","queued":false,"scheduled":true,"progressPercentage":"NaN","runningPercentage":"NaN","nodes":1,"totalSplits":18,"queuedSplits":0,"runningSplits":0,"completedSplits":18,"planningTimeMillis":446,"analysisTimeMillis":53,"cpuTimeMillis":277,"wallTimeMillis":338,"queuedTimeMillis":3,"elapsedTimeMillis":19819,"finishingTimeMillis":18102,"physicalInputTimeMillis":0,"processedRows":0,"processedBytes":0,"physicalInputBytes":0,"physicalWrittenBytes":0,"internalNetworkInputBytes":177,"peakMemoryBytes":265474,"spilledBytes":0,"rootStage":{"stageId":"0","state":"FINISHED","done":true,"nodes":1,"totalSplits":9,"queuedSplits":0,"runningSplits":0,"completedSplits":9,"cpuTimeMillis":35,"wallTimeMillis":59,"processedRows":2,"processedBytes":177,"physicalInputBytes":0,"failedTasks":0,"coordinatorOnly":true,"subStages":[{"stageId":"1","state":"FINISHED","done":true,"nodes":1,"totalSplits":9,"queuedSplits":0,"runningSplits":0,"completedSplits":9,"cpuTimeMillis":242,"wallTimeMillis":279,"processedRows":0,"processedBytes":0,"physicalInputBytes":0,"failedTasks":0,"coordinatorOnly":false,"subStages":[{"stageId":"2","state":"FINISHED","done":true,"nodes":1,"totalSplits":0,"queuedSplits":0,"runningSplits":0,"completedSplits":0,"cpuTimeMillis":0,"wallTimeMillis":0,"processedRows":0,"processedBytes":0,"physicalInputBytes":0,"failedTasks":0,"coordinatorOnly":false,"subStages":[]}]}]}},"warnings":[],"updateType":"INSERT","updateCount":0}

trino-csharp/Trino.Client/Model/StatementV1/TrinoStats.cs

-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ public bool scheduled
4747
public long processedBytes { get; set; }
4848
public long peakMemoryBytes { get; set; }
4949
public long spilledBytes { get; set; }
50-
public long progressPercentage { get; set; }
5150

5251
/// <summary>
5352
/// Get the query execution progress percentage as a ratio

0 commit comments

Comments
 (0)