Commit d4af08c
committed
PostgreSQL: bulk AppendMessages in a single round-trip
Move the per-flow AppendMessages SQL into SqlGenerator and have the
bulk overload group by StoredId, build one append command per flow,
and execute together with the interrupt in a single NpgsqlBatch.
This drops the separate GetMaxPositions round-trip — positions are now
computed server-side via COALESCE(MAX(position), -1) + random base +
unnest(...) WITH ORDINALITY, so the SQL string is constant regardless
of batch size and the prepared statement cache is reused across calls.1 parent 0c8e1f6 commit d4af08c
2 files changed
Lines changed: 50 additions & 50 deletions
File tree
- Stores/PostgreSQL/Cleipnir.ResilientFunctions.PostgreSQL
Lines changed: 12 additions & 50 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
| 1 | + | |
3 | 2 | | |
4 | 3 | | |
5 | 4 | | |
| |||
60 | 59 | | |
61 | 60 | | |
62 | 61 | | |
63 | | - | |
64 | | - | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
65 | 66 | | |
66 | 67 | | |
67 | 68 | | |
68 | 69 | | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
94 | 74 | | |
95 | 75 | | |
96 | | - | |
97 | | - | |
98 | | - | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
99 | 79 | | |
100 | 80 | | |
101 | 81 | | |
102 | 82 | | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | 83 | | |
122 | 84 | | |
123 | 85 | | |
| |||
Lines changed: 38 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
452 | 452 | | |
453 | 453 | | |
454 | 454 | | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
455 | 493 | | |
456 | 494 | | |
457 | 495 | | |
| |||
0 commit comments