litedbmodel 2.0.2 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/README.md +7 -0
  2. package/dist/DBConditions.d.ts.map +1 -1
  3. package/dist/DBConditions.js +16 -1
  4. package/dist/DBConditions.js.map +1 -1
  5. package/dist/DBHandler.d.ts.map +1 -1
  6. package/dist/DBHandler.js +6 -0
  7. package/dist/DBHandler.js.map +1 -1
  8. package/dist/DBModel.d.ts +84 -2
  9. package/dist/DBModel.d.ts.map +1 -1
  10. package/dist/DBModel.js +312 -29
  11. package/dist/DBModel.js.map +1 -1
  12. package/dist/decorators.d.ts +52 -0
  13. package/dist/decorators.d.ts.map +1 -1
  14. package/dist/decorators.js +127 -24
  15. package/dist/decorators.js.map +1 -1
  16. package/dist/drivers/mysql.d.ts.map +1 -1
  17. package/dist/drivers/mysql.js +12 -2
  18. package/dist/drivers/mysql.js.map +1 -1
  19. package/dist/drivers/postgres.d.ts.map +1 -1
  20. package/dist/drivers/postgres.js +13 -2
  21. package/dist/drivers/postgres.js.map +1 -1
  22. package/dist/drivers/sqlite.d.ts +2 -0
  23. package/dist/drivers/sqlite.d.ts.map +1 -1
  24. package/dist/drivers/sqlite.js +49 -4
  25. package/dist/drivers/sqlite.js.map +1 -1
  26. package/dist/index.cjs +10741 -0
  27. package/dist/index.d.cts +1 -0
  28. package/dist/scp/coltype.d.ts +108 -0
  29. package/dist/scp/coltype.d.ts.map +1 -1
  30. package/dist/scp/coltype.js +293 -6
  31. package/dist/scp/coltype.js.map +1 -1
  32. package/dist/scp/connection-routing.d.ts +312 -0
  33. package/dist/scp/connection-routing.d.ts.map +1 -0
  34. package/dist/scp/connection-routing.js +394 -0
  35. package/dist/scp/connection-routing.js.map +1 -0
  36. package/dist/scp/dbmodel-runtime.d.ts +101 -0
  37. package/dist/scp/dbmodel-runtime.d.ts.map +1 -0
  38. package/dist/scp/dbmodel-runtime.js +174 -0
  39. package/dist/scp/dbmodel-runtime.js.map +1 -0
  40. package/dist/scp/decorator-adapter.d.ts +196 -0
  41. package/dist/scp/decorator-adapter.d.ts.map +1 -0
  42. package/dist/scp/decorator-adapter.js +286 -0
  43. package/dist/scp/decorator-adapter.js.map +1 -0
  44. package/dist/scp/emit/emitter.d.ts +108 -0
  45. package/dist/scp/emit/emitter.d.ts.map +1 -0
  46. package/dist/scp/emit/emitter.js +782 -0
  47. package/dist/scp/emit/emitter.js.map +1 -0
  48. package/dist/scp/emit/endpoint.d.ts +248 -0
  49. package/dist/scp/emit/endpoint.d.ts.map +1 -0
  50. package/dist/scp/emit/endpoint.js +20 -0
  51. package/dist/scp/emit/endpoint.js.map +1 -0
  52. package/dist/scp/emit/index.d.ts +11 -0
  53. package/dist/scp/emit/index.d.ts.map +1 -0
  54. package/dist/scp/emit/index.js +13 -0
  55. package/dist/scp/emit/index.js.map +1 -0
  56. package/dist/scp/errors.d.ts +45 -1
  57. package/dist/scp/errors.d.ts.map +1 -1
  58. package/dist/scp/errors.js +47 -1
  59. package/dist/scp/errors.js.map +1 -1
  60. package/dist/scp/exec-context.d.ts +390 -0
  61. package/dist/scp/exec-context.d.ts.map +1 -0
  62. package/dist/scp/exec-context.js +540 -0
  63. package/dist/scp/exec-context.js.map +1 -0
  64. package/dist/scp/grouping.d.ts +32 -0
  65. package/dist/scp/grouping.d.ts.map +1 -0
  66. package/dist/scp/grouping.js +0 -0
  67. package/dist/scp/grouping.js.map +1 -0
  68. package/dist/scp/index.cjs +6432 -17579
  69. package/dist/scp/index.d.cts +1 -0
  70. package/dist/scp/index.d.mts +1 -0
  71. package/dist/scp/index.d.ts +51 -52
  72. package/dist/scp/index.d.ts.map +1 -1
  73. package/dist/scp/index.js +189 -152
  74. package/dist/scp/index.js.map +1 -1
  75. package/dist/scp/index.mjs +6067 -3659
  76. package/dist/scp/leaf-transport.d.ts +50 -0
  77. package/dist/scp/leaf-transport.d.ts.map +1 -0
  78. package/dist/scp/leaf-transport.js +92 -0
  79. package/dist/scp/leaf-transport.js.map +1 -0
  80. package/dist/scp/leaves.d.ts +174 -0
  81. package/dist/scp/leaves.d.ts.map +1 -0
  82. package/dist/scp/leaves.js +287 -0
  83. package/dist/scp/leaves.js.map +1 -0
  84. package/dist/scp/limit-config.d.ts +118 -0
  85. package/dist/scp/limit-config.d.ts.map +1 -0
  86. package/dist/scp/limit-config.js +126 -0
  87. package/dist/scp/limit-config.js.map +1 -0
  88. package/dist/scp/makesql/compile-relation.d.ts +49 -23
  89. package/dist/scp/makesql/compile-relation.d.ts.map +1 -1
  90. package/dist/scp/makesql/compile-relation.js +101 -76
  91. package/dist/scp/makesql/compile-relation.js.map +1 -1
  92. package/dist/scp/makesql/compile-select.d.ts +45 -10
  93. package/dist/scp/makesql/compile-select.d.ts.map +1 -1
  94. package/dist/scp/makesql/compile-select.js +50 -10
  95. package/dist/scp/makesql/compile-select.js.map +1 -1
  96. package/dist/scp/makesql/handler.d.ts +1 -1
  97. package/dist/scp/makesql/handler.d.ts.map +1 -1
  98. package/dist/scp/makesql/index.d.ts +7 -10
  99. package/dist/scp/makesql/index.d.ts.map +1 -1
  100. package/dist/scp/makesql/index.js +19 -30
  101. package/dist/scp/makesql/index.js.map +1 -1
  102. package/dist/scp/makesql/json-array.d.ts +65 -0
  103. package/dist/scp/makesql/json-array.d.ts.map +1 -1
  104. package/dist/scp/makesql/json-array.js +99 -10
  105. package/dist/scp/makesql/json-array.js.map +1 -1
  106. package/dist/scp/makesql/json-batch.d.ts.map +1 -1
  107. package/dist/scp/makesql/json-batch.js +21 -19
  108. package/dist/scp/makesql/json-batch.js.map +1 -1
  109. package/dist/scp/makesql/makesql.d.ts +1 -1
  110. package/dist/scp/makesql/makesql.d.ts.map +1 -1
  111. package/dist/scp/makesql/mysql-returning.d.ts +93 -0
  112. package/dist/scp/makesql/mysql-returning.d.ts.map +1 -0
  113. package/dist/scp/makesql/mysql-returning.js +215 -0
  114. package/dist/scp/makesql/mysql-returning.js.map +1 -0
  115. package/dist/scp/makesql/outtype.d.ts +75 -34
  116. package/dist/scp/makesql/outtype.d.ts.map +1 -1
  117. package/dist/scp/makesql/outtype.js +91 -118
  118. package/dist/scp/makesql/outtype.js.map +1 -1
  119. package/dist/scp/makesql/pool-executor.d.ts +135 -13
  120. package/dist/scp/makesql/pool-executor.d.ts.map +1 -1
  121. package/dist/scp/makesql/pool-executor.js +229 -21
  122. package/dist/scp/makesql/pool-executor.js.map +1 -1
  123. package/dist/scp/makesql/tx.d.ts +107 -22
  124. package/dist/scp/makesql/tx.d.ts.map +1 -1
  125. package/dist/scp/makesql/tx.js +451 -97
  126. package/dist/scp/makesql/tx.js.map +1 -1
  127. package/dist/scp/makesql/writeouttype.d.ts +7 -8
  128. package/dist/scp/makesql/writeouttype.d.ts.map +1 -1
  129. package/dist/scp/makesql/writeouttype.js +8 -7
  130. package/dist/scp/makesql/writeouttype.js.map +1 -1
  131. package/dist/scp/middleware.d.ts +287 -0
  132. package/dist/scp/middleware.d.ts.map +1 -0
  133. package/dist/scp/middleware.js +358 -0
  134. package/dist/scp/middleware.js.map +1 -0
  135. package/dist/scp/relation.d.ts +80 -9
  136. package/dist/scp/relation.d.ts.map +1 -1
  137. package/dist/scp/relation.js +198 -78
  138. package/dist/scp/relation.js.map +1 -1
  139. package/dist/scp/tx-options.d.ts +136 -0
  140. package/dist/scp/tx-options.d.ts.map +1 -0
  141. package/dist/scp/tx-options.js +184 -0
  142. package/dist/scp/tx-options.js.map +1 -0
  143. package/dist/scp/write-bundle.d.ts +131 -0
  144. package/dist/scp/write-bundle.d.ts.map +1 -0
  145. package/dist/scp/write-bundle.js +160 -0
  146. package/dist/scp/write-bundle.js.map +1 -0
  147. package/dist/types.d.ts +7 -0
  148. package/dist/types.d.ts.map +1 -1
  149. package/dist/types.js.map +1 -1
  150. package/docs/BENCHMARK.md +58 -56
  151. package/docs/benchmark-chart.svg +166 -166
  152. package/docs/design/phase-a-execution-context.md +139 -0
  153. package/package.json +16 -9
  154. package/dist/scp/authoring-sql.d.ts +0 -134
  155. package/dist/scp/authoring-sql.d.ts.map +0 -1
  156. package/dist/scp/authoring-sql.js +0 -191
  157. package/dist/scp/authoring-sql.js.map +0 -1
  158. package/dist/scp/authoring.d.ts +0 -155
  159. package/dist/scp/authoring.d.ts.map +0 -1
  160. package/dist/scp/authoring.js +0 -162
  161. package/dist/scp/authoring.js.map +0 -1
  162. package/dist/scp/catalog.d.ts +0 -94
  163. package/dist/scp/catalog.d.ts.map +0 -1
  164. package/dist/scp/catalog.js +0 -234
  165. package/dist/scp/catalog.js.map +0 -1
  166. package/dist/scp/codegen.d.ts +0 -189
  167. package/dist/scp/codegen.d.ts.map +0 -1
  168. package/dist/scp/codegen.js +0 -421
  169. package/dist/scp/codegen.js.map +0 -1
  170. package/dist/scp/find-filter-guard.d.ts +0 -68
  171. package/dist/scp/find-filter-guard.d.ts.map +0 -1
  172. package/dist/scp/find-filter-guard.js +0 -88
  173. package/dist/scp/find-filter-guard.js.map +0 -1
  174. package/dist/scp/guard.d.ts +0 -43
  175. package/dist/scp/guard.d.ts.map +0 -1
  176. package/dist/scp/guard.js +0 -134
  177. package/dist/scp/guard.js.map +0 -1
  178. package/dist/scp/makesql/authoring-compile.d.ts +0 -90
  179. package/dist/scp/makesql/authoring-compile.d.ts.map +0 -1
  180. package/dist/scp/makesql/authoring-compile.js +0 -494
  181. package/dist/scp/makesql/authoring-compile.js.map +0 -1
  182. package/dist/scp/makesql/ir.d.ts +0 -42
  183. package/dist/scp/makesql/ir.d.ts.map +0 -1
  184. package/dist/scp/makesql/ir.js +0 -66
  185. package/dist/scp/makesql/ir.js.map +0 -1
  186. package/dist/scp/makesql/static-bundle.d.ts +0 -187
  187. package/dist/scp/makesql/static-bundle.d.ts.map +0 -1
  188. package/dist/scp/makesql/static-bundle.js +0 -1113
  189. package/dist/scp/makesql/static-bundle.js.map +0 -1
  190. package/dist/scp/runtime.d.ts +0 -242
  191. package/dist/scp/runtime.d.ts.map +0 -1
  192. package/dist/scp/runtime.js +0 -400
  193. package/dist/scp/runtime.js.map +0 -1
@@ -48,218 +48,218 @@
48
48
  <line x1="80" y1="-5" x2="80" y2="1975" class="baseline" />
49
49
  <text x="-10" y="40" text-anchor="end" dominant-baseline="middle" class="op-label">Find all (limit 100)</text>
50
50
  <rect x="0" y="0" width="80" height="12" fill="#3b82f6" rx="2" />
51
- <text x="85" y="7" dominant-baseline="middle" class="value-label">1.00x (0.70ms)</text>
52
- <rect x="0" y="16" width="74.2857142857143" height="12" fill="#22c55e" rx="2" />
53
- <text x="79.2857142857143" y="23" dominant-baseline="middle" class="value-label">0.93x (0.65ms)</text>
54
- <rect x="0" y="32" width="73.14285714285715" height="12" fill="#f59e0b" rx="2" />
55
- <text x="78.14285714285715" y="39" dominant-baseline="middle" class="value-label">0.91x (0.64ms)</text>
56
- <rect x="0" y="48" width="82.28571428571429" height="12" fill="#ef4444" rx="2" />
57
- <text x="87.28571428571429" y="55" dominant-baseline="middle" class="value-label">1.03x (0.72ms)</text>
58
- <rect x="0" y="64" width="154.2857142857143" height="12" fill="#8b5cf6" rx="2" />
59
- <text x="159.2857142857143" y="71" dominant-baseline="middle" class="value-label">1.93x (1.35ms)</text>
51
+ <text x="85" y="7" dominant-baseline="middle" class="value-label">1.00x (0.48ms)</text>
52
+ <rect x="0" y="16" width="91.66666666666667" height="12" fill="#22c55e" rx="2" />
53
+ <text x="96.66666666666667" y="23" dominant-baseline="middle" class="value-label">1.15x (0.55ms)</text>
54
+ <rect x="0" y="32" width="96.66666666666666" height="12" fill="#f59e0b" rx="2" />
55
+ <text x="101.66666666666666" y="39" dominant-baseline="middle" class="value-label">1.21x (0.58ms)</text>
56
+ <rect x="0" y="48" width="106.66666666666669" height="12" fill="#ef4444" rx="2" />
57
+ <text x="111.66666666666669" y="55" dominant-baseline="middle" class="value-label">1.33x (0.64ms)</text>
58
+ <rect x="0" y="64" width="161.66666666666666" height="12" fill="#8b5cf6" rx="2" />
59
+ <text x="166.66666666666666" y="71" dominant-baseline="middle" class="value-label">2.02x (0.97ms)</text>
60
60
  <text x="-10" y="145" text-anchor="end" dominant-baseline="middle" class="op-label">Filter, paginate &amp; sort</text>
61
61
  <rect x="0" y="105" width="80" height="12" fill="#3b82f6" rx="2" />
62
- <text x="85" y="112" dominant-baseline="middle" class="value-label">1.00x (0.58ms)</text>
63
- <rect x="0" y="121" width="88.27586206896554" height="12" fill="#22c55e" rx="2" />
64
- <text x="93.27586206896554" y="128" dominant-baseline="middle" class="value-label">1.10x (0.64ms)</text>
65
- <rect x="0" y="137" width="81.37931034482759" height="12" fill="#f59e0b" rx="2" />
66
- <text x="86.37931034482759" y="144" dominant-baseline="middle" class="value-label">1.02x (0.59ms)</text>
67
- <rect x="0" y="153" width="91.0344827586207" height="12" fill="#ef4444" rx="2" />
68
- <text x="96.0344827586207" y="160" dominant-baseline="middle" class="value-label">1.14x (0.66ms)</text>
69
- <rect x="0" y="169" width="151.7241379310345" height="12" fill="#8b5cf6" rx="2" />
70
- <text x="156.7241379310345" y="176" dominant-baseline="middle" class="value-label">1.90x (1.10ms)</text>
62
+ <text x="85" y="112" dominant-baseline="middle" class="value-label">1.00x (0.52ms)</text>
63
+ <rect x="0" y="121" width="87.69230769230768" height="12" fill="#22c55e" rx="2" />
64
+ <text x="92.69230769230768" y="128" dominant-baseline="middle" class="value-label">1.10x (0.57ms)</text>
65
+ <rect x="0" y="137" width="92.3076923076923" height="12" fill="#f59e0b" rx="2" />
66
+ <text x="97.3076923076923" y="144" dominant-baseline="middle" class="value-label">1.15x (0.60ms)</text>
67
+ <rect x="0" y="153" width="98.46153846153847" height="12" fill="#ef4444" rx="2" />
68
+ <text x="103.46153846153847" y="160" dominant-baseline="middle" class="value-label">1.23x (0.64ms)</text>
69
+ <rect x="0" y="169" width="123.07692307692308" height="12" fill="#8b5cf6" rx="2" />
70
+ <text x="128.0769230769231" y="176" dominant-baseline="middle" class="value-label">1.54x (0.80ms)</text>
71
71
  <text x="-10" y="250" text-anchor="end" dominant-baseline="middle" class="op-label">Nested find all (include posts)</text>
72
72
  <rect x="0" y="210" width="80" height="12" fill="#3b82f6" rx="2" />
73
- <text x="85" y="217" dominant-baseline="middle" class="value-label">1.00x (3.64ms)</text>
74
- <rect x="0" y="226" width="101.0989010989011" height="12" fill="#22c55e" rx="2" />
75
- <text x="106.0989010989011" y="233" dominant-baseline="middle" class="value-label">1.26x (4.60ms)</text>
76
- <rect x="0" y="242" width="102.41758241758241" height="12" fill="#f59e0b" rx="2" />
77
- <text x="107.41758241758241" y="249" dominant-baseline="middle" class="value-label">1.28x (4.66ms)</text>
78
- <rect x="0" y="258" width="183.2967032967033" height="12" fill="#ef4444" rx="2" />
79
- <text x="188.2967032967033" y="265" dominant-baseline="middle" class="value-label">2.29x (8.34ms)</text>
80
- <rect x="0" y="274" width="265.0549450549451" height="12" fill="#8b5cf6" rx="2" />
81
- <text x="270.0549450549451" y="281" dominant-baseline="middle" class="value-label">3.31x (12.06ms)</text>
73
+ <text x="85" y="217" dominant-baseline="middle" class="value-label">1.00x (2.16ms)</text>
74
+ <rect x="0" y="226" width="113.70370370370368" height="12" fill="#22c55e" rx="2" />
75
+ <text x="118.70370370370368" y="233" dominant-baseline="middle" class="value-label">1.42x (3.07ms)</text>
76
+ <rect x="0" y="242" width="161.85185185185182" height="12" fill="#f59e0b" rx="2" />
77
+ <text x="166.85185185185182" y="249" dominant-baseline="middle" class="value-label">2.02x (4.37ms)</text>
78
+ <rect x="0" y="258" width="218.5185185185185" height="12" fill="#ef4444" rx="2" />
79
+ <text x="223.5185185185185" y="265" dominant-baseline="middle" class="value-label">2.73x (5.90ms)</text>
80
+ <rect x="0" y="274" width="272.96296296296293" height="12" fill="#8b5cf6" rx="2" />
81
+ <text x="277.96296296296293" y="281" dominant-baseline="middle" class="value-label">3.41x (7.37ms)</text>
82
82
  <text x="-10" y="355" text-anchor="end" dominant-baseline="middle" class="op-label">Find first</text>
83
83
  <rect x="0" y="315" width="80" height="12" fill="#3b82f6" rx="2" />
84
- <text x="85" y="322" dominant-baseline="middle" class="value-label">1.00x (0.37ms)</text>
85
- <rect x="0" y="331" width="69.1891891891892" height="12" fill="#22c55e" rx="2" />
86
- <text x="74.1891891891892" y="338" dominant-baseline="middle" class="value-label">0.86x (0.32ms)</text>
87
- <rect x="0" y="347" width="77.83783783783782" height="12" fill="#f59e0b" rx="2" />
88
- <text x="82.83783783783782" y="354" dominant-baseline="middle" class="value-label">0.97x (0.36ms)</text>
89
- <rect x="0" y="363" width="86.48648648648648" height="12" fill="#ef4444" rx="2" />
90
- <text x="91.48648648648648" y="370" dominant-baseline="middle" class="value-label">1.08x (0.40ms)</text>
91
- <rect x="0" y="379" width="127.56756756756755" height="12" fill="#8b5cf6" rx="2" />
92
- <text x="132.56756756756755" y="386" dominant-baseline="middle" class="value-label">1.59x (0.59ms)</text>
84
+ <text x="85" y="322" dominant-baseline="middle" class="value-label">1.00x (0.31ms)</text>
85
+ <rect x="0" y="331" width="82.58064516129032" height="12" fill="#22c55e" rx="2" />
86
+ <text x="87.58064516129032" y="338" dominant-baseline="middle" class="value-label">1.03x (0.32ms)</text>
87
+ <rect x="0" y="347" width="74.83870967741935" height="12" fill="#f59e0b" rx="2" />
88
+ <text x="79.83870967741935" y="354" dominant-baseline="middle" class="value-label">0.94x (0.29ms)</text>
89
+ <rect x="0" y="363" width="85.16129032258067" height="12" fill="#ef4444" rx="2" />
90
+ <text x="90.16129032258067" y="370" dominant-baseline="middle" class="value-label">1.06x (0.33ms)</text>
91
+ <rect x="0" y="379" width="126.4516129032258" height="12" fill="#8b5cf6" rx="2" />
92
+ <text x="131.4516129032258" y="386" dominant-baseline="middle" class="value-label">1.58x (0.49ms)</text>
93
93
  <text x="-10" y="460" text-anchor="end" dominant-baseline="middle" class="op-label">Nested find first (include posts)</text>
94
94
  <rect x="0" y="420" width="80" height="12" fill="#3b82f6" rx="2" />
95
- <text x="85" y="427" dominant-baseline="middle" class="value-label">1.00x (0.65ms)</text>
96
- <rect x="0" y="436" width="75.07692307692308" height="12" fill="#22c55e" rx="2" />
97
- <text x="80.07692307692308" y="443" dominant-baseline="middle" class="value-label">0.94x (0.61ms)</text>
98
- <rect x="0" y="452" width="87.38461538461537" height="12" fill="#f59e0b" rx="2" />
99
- <text x="92.38461538461537" y="459" dominant-baseline="middle" class="value-label">1.09x (0.71ms)</text>
100
- <rect x="0" y="468" width="64" height="12" fill="#ef4444" rx="2" />
101
- <text x="69" y="475" dominant-baseline="middle" class="value-label">0.80x (0.52ms)</text>
102
- <rect x="0" y="484" width="130.46153846153845" height="12" fill="#8b5cf6" rx="2" />
103
- <text x="135.46153846153845" y="491" dominant-baseline="middle" class="value-label">1.63x (1.06ms)</text>
95
+ <text x="85" y="427" dominant-baseline="middle" class="value-label">1.00x (0.51ms)</text>
96
+ <rect x="0" y="436" width="80" height="12" fill="#22c55e" rx="2" />
97
+ <text x="85" y="443" dominant-baseline="middle" class="value-label">1.00x (0.51ms)</text>
98
+ <rect x="0" y="452" width="87.84313725490198" height="12" fill="#f59e0b" rx="2" />
99
+ <text x="92.84313725490198" y="459" dominant-baseline="middle" class="value-label">1.10x (0.56ms)</text>
100
+ <rect x="0" y="468" width="73.72549019607843" height="12" fill="#ef4444" rx="2" />
101
+ <text x="78.72549019607843" y="475" dominant-baseline="middle" class="value-label">0.92x (0.47ms)</text>
102
+ <rect x="0" y="484" width="116.078431372549" height="12" fill="#8b5cf6" rx="2" />
103
+ <text x="121.078431372549" y="491" dominant-baseline="middle" class="value-label">1.45x (0.74ms)</text>
104
104
  <text x="-10" y="565" text-anchor="end" dominant-baseline="middle" class="op-label">Find unique (by email)</text>
105
105
  <rect x="0" y="525" width="80" height="12" fill="#3b82f6" rx="2" />
106
- <text x="85" y="532" dominant-baseline="middle" class="value-label">1.00x (0.29ms)</text>
107
- <rect x="0" y="541" width="85.51724137931036" height="12" fill="#22c55e" rx="2" />
108
- <text x="90.51724137931036" y="548" dominant-baseline="middle" class="value-label">1.07x (0.31ms)</text>
109
- <rect x="0" y="557" width="82.75862068965519" height="12" fill="#f59e0b" rx="2" />
110
- <text x="87.75862068965519" y="564" dominant-baseline="middle" class="value-label">1.03x (0.30ms)</text>
111
- <rect x="0" y="573" width="88.27586206896554" height="12" fill="#ef4444" rx="2" />
112
- <text x="93.27586206896554" y="580" dominant-baseline="middle" class="value-label">1.10x (0.32ms)</text>
113
- <rect x="0" y="589" width="146.20689655172416" height="12" fill="#8b5cf6" rx="2" />
114
- <text x="151.20689655172416" y="596" dominant-baseline="middle" class="value-label">1.83x (0.53ms)</text>
106
+ <text x="85" y="532" dominant-baseline="middle" class="value-label">1.00x (0.27ms)</text>
107
+ <rect x="0" y="541" width="80" height="12" fill="#22c55e" rx="2" />
108
+ <text x="85" y="548" dominant-baseline="middle" class="value-label">1.00x (0.27ms)</text>
109
+ <rect x="0" y="557" width="85.92592592592592" height="12" fill="#f59e0b" rx="2" />
110
+ <text x="90.92592592592592" y="564" dominant-baseline="middle" class="value-label">1.07x (0.29ms)</text>
111
+ <rect x="0" y="573" width="94.81481481481481" height="12" fill="#ef4444" rx="2" />
112
+ <text x="99.81481481481481" y="580" dominant-baseline="middle" class="value-label">1.19x (0.32ms)</text>
113
+ <rect x="0" y="589" width="130.37037037037035" height="12" fill="#8b5cf6" rx="2" />
114
+ <text x="135.37037037037035" y="596" dominant-baseline="middle" class="value-label">1.63x (0.44ms)</text>
115
115
  <text x="-10" y="670" text-anchor="end" dominant-baseline="middle" class="op-label">Nested find unique (include posts)</text>
116
116
  <rect x="0" y="630" width="80" height="12" fill="#3b82f6" rx="2" />
117
- <text x="85" y="637" dominant-baseline="middle" class="value-label">1.00x (0.57ms)</text>
118
- <rect x="0" y="646" width="81.40350877192984" height="12" fill="#22c55e" rx="2" />
119
- <text x="86.40350877192984" y="653" dominant-baseline="middle" class="value-label">1.02x (0.58ms)</text>
120
- <rect x="0" y="662" width="82.80701754385966" height="12" fill="#f59e0b" rx="2" />
121
- <text x="87.80701754385966" y="669" dominant-baseline="middle" class="value-label">1.04x (0.59ms)</text>
122
- <rect x="0" y="678" width="147.3684210526316" height="12" fill="#ef4444" rx="2" />
123
- <text x="152.3684210526316" y="685" dominant-baseline="middle" class="value-label">1.84x (1.05ms)</text>
124
- <rect x="0" y="694" width="131.9298245614035" height="12" fill="#8b5cf6" rx="2" />
125
- <text x="136.9298245614035" y="701" dominant-baseline="middle" class="value-label">1.65x (0.94ms)</text>
117
+ <text x="85" y="637" dominant-baseline="middle" class="value-label">1.00x (0.54ms)</text>
118
+ <rect x="0" y="646" width="72.59259259259258" height="12" fill="#22c55e" rx="2" />
119
+ <text x="77.59259259259258" y="653" dominant-baseline="middle" class="value-label">0.91x (0.49ms)</text>
120
+ <rect x="0" y="662" width="80" height="12" fill="#f59e0b" rx="2" />
121
+ <text x="85" y="669" dominant-baseline="middle" class="value-label">1.00x (0.54ms)</text>
122
+ <rect x="0" y="678" width="143.7037037037037" height="12" fill="#ef4444" rx="2" />
123
+ <text x="148.7037037037037" y="685" dominant-baseline="middle" class="value-label">1.80x (0.97ms)</text>
124
+ <rect x="0" y="694" width="106.66666666666667" height="12" fill="#8b5cf6" rx="2" />
125
+ <text x="111.66666666666667" y="701" dominant-baseline="middle" class="value-label">1.33x (0.72ms)</text>
126
126
  <text x="-10" y="775" text-anchor="end" dominant-baseline="middle" class="op-label">Create</text>
127
127
  <rect x="0" y="735" width="80" height="12" fill="#3b82f6" rx="2" />
128
- <text x="85" y="742" dominant-baseline="middle" class="value-label">1.00x (0.69ms)</text>
129
- <rect x="0" y="751" width="78.84057971014494" height="12" fill="#22c55e" rx="2" />
130
- <text x="83.84057971014494" y="758" dominant-baseline="middle" class="value-label">0.99x (0.68ms)</text>
131
- <rect x="0" y="767" width="88.1159420289855" height="12" fill="#f59e0b" rx="2" />
132
- <text x="93.1159420289855" y="774" dominant-baseline="middle" class="value-label">1.10x (0.76ms)</text>
133
- <rect x="0" y="783" width="91.59420289855073" height="12" fill="#ef4444" rx="2" />
134
- <text x="96.59420289855073" y="790" dominant-baseline="middle" class="value-label">1.14x (0.79ms)</text>
135
- <rect x="0" y="799" width="117.10144927536233" height="12" fill="#8b5cf6" rx="2" />
136
- <text x="122.10144927536233" y="806" dominant-baseline="middle" class="value-label">1.46x (1.01ms)</text>
128
+ <text x="85" y="742" dominant-baseline="middle" class="value-label">1.00x (0.70ms)</text>
129
+ <rect x="0" y="751" width="77.71428571428572" height="12" fill="#22c55e" rx="2" />
130
+ <text x="82.71428571428572" y="758" dominant-baseline="middle" class="value-label">0.97x (0.68ms)</text>
131
+ <rect x="0" y="767" width="81.14285714285714" height="12" fill="#f59e0b" rx="2" />
132
+ <text x="86.14285714285714" y="774" dominant-baseline="middle" class="value-label">1.01x (0.71ms)</text>
133
+ <rect x="0" y="783" width="86.85714285714286" height="12" fill="#ef4444" rx="2" />
134
+ <text x="91.85714285714286" y="790" dominant-baseline="middle" class="value-label">1.09x (0.76ms)</text>
135
+ <rect x="0" y="799" width="106.28571428571429" height="12" fill="#8b5cf6" rx="2" />
136
+ <text x="111.28571428571429" y="806" dominant-baseline="middle" class="value-label">1.33x (0.93ms)</text>
137
137
  <text x="-10" y="880" text-anchor="end" dominant-baseline="middle" class="op-label">Nested create (with post)</text>
138
138
  <rect x="0" y="840" width="80" height="12" fill="#3b82f6" rx="2" />
139
- <text x="85" y="847" dominant-baseline="middle" class="value-label">1.00x (0.90ms)</text>
140
- <rect x="0" y="856" width="85.33333333333333" height="12" fill="#22c55e" rx="2" />
141
- <text x="90.33333333333333" y="863" dominant-baseline="middle" class="value-label">1.07x (0.96ms)</text>
142
- <rect x="0" y="872" width="91.55555555555554" height="12" fill="#f59e0b" rx="2" />
143
- <text x="96.55555555555554" y="879" dominant-baseline="middle" class="value-label">1.14x (1.03ms)</text>
144
- <rect x="0" y="888" width="108.44444444444443" height="12" fill="#ef4444" rx="2" />
145
- <text x="113.44444444444443" y="895" dominant-baseline="middle" class="value-label">1.36x (1.22ms)</text>
146
- <rect x="0" y="904" width="160.88888888888889" height="12" fill="#8b5cf6" rx="2" />
147
- <text x="165.88888888888889" y="911" dominant-baseline="middle" class="value-label">2.01x (1.81ms)</text>
139
+ <text x="85" y="847" dominant-baseline="middle" class="value-label">1.00x (0.82ms)</text>
140
+ <rect x="0" y="856" width="86.82926829268294" height="12" fill="#22c55e" rx="2" />
141
+ <text x="91.82926829268294" y="863" dominant-baseline="middle" class="value-label">1.09x (0.89ms)</text>
142
+ <rect x="0" y="872" width="88.78048780487806" height="12" fill="#f59e0b" rx="2" />
143
+ <text x="93.78048780487806" y="879" dominant-baseline="middle" class="value-label">1.11x (0.91ms)</text>
144
+ <rect x="0" y="888" width="106.34146341463415" height="12" fill="#ef4444" rx="2" />
145
+ <text x="111.34146341463415" y="895" dominant-baseline="middle" class="value-label">1.33x (1.09ms)</text>
146
+ <rect x="0" y="904" width="139.5121951219512" height="12" fill="#8b5cf6" rx="2" />
147
+ <text x="144.5121951219512" y="911" dominant-baseline="middle" class="value-label">1.74x (1.43ms)</text>
148
148
  <text x="-10" y="985" text-anchor="end" dominant-baseline="middle" class="op-label">Update</text>
149
149
  <rect x="0" y="945" width="80" height="12" fill="#3b82f6" rx="2" />
150
- <text x="85" y="952" dominant-baseline="middle" class="value-label">1.00x (0.63ms)</text>
151
- <rect x="0" y="961" width="77.46031746031747" height="12" fill="#22c55e" rx="2" />
152
- <text x="82.46031746031747" y="968" dominant-baseline="middle" class="value-label">0.97x (0.61ms)</text>
153
- <rect x="0" y="977" width="83.80952380952381" height="12" fill="#f59e0b" rx="2" />
154
- <text x="88.80952380952381" y="984" dominant-baseline="middle" class="value-label">1.05x (0.66ms)</text>
155
- <rect x="0" y="993" width="85.07936507936508" height="12" fill="#ef4444" rx="2" />
156
- <text x="90.07936507936508" y="1000" dominant-baseline="middle" class="value-label">1.06x (0.67ms)</text>
157
- <rect x="0" y="1009" width="142.22222222222223" height="12" fill="#8b5cf6" rx="2" />
158
- <text x="147.22222222222223" y="1016" dominant-baseline="middle" class="value-label">1.78x (1.12ms)</text>
150
+ <text x="85" y="952" dominant-baseline="middle" class="value-label">1.00x (0.61ms)</text>
151
+ <rect x="0" y="961" width="85.24590163934427" height="12" fill="#22c55e" rx="2" />
152
+ <text x="90.24590163934427" y="968" dominant-baseline="middle" class="value-label">1.07x (0.65ms)</text>
153
+ <rect x="0" y="977" width="86.55737704918035" height="12" fill="#f59e0b" rx="2" />
154
+ <text x="91.55737704918035" y="984" dominant-baseline="middle" class="value-label">1.08x (0.66ms)</text>
155
+ <rect x="0" y="993" width="97.04918032786885" height="12" fill="#ef4444" rx="2" />
156
+ <text x="102.04918032786885" y="1000" dominant-baseline="middle" class="value-label">1.21x (0.74ms)</text>
157
+ <rect x="0" y="1009" width="136.39344262295083" height="12" fill="#8b5cf6" rx="2" />
158
+ <text x="141.39344262295083" y="1016" dominant-baseline="middle" class="value-label">1.70x (1.04ms)</text>
159
159
  <text x="-10" y="1090" text-anchor="end" dominant-baseline="middle" class="op-label">Nested update (update user + post)</text>
160
160
  <rect x="0" y="1050" width="80" height="12" fill="#3b82f6" rx="2" />
161
- <text x="85" y="1057" dominant-baseline="middle" class="value-label">1.00x (0.94ms)</text>
162
- <rect x="0" y="1066" width="85.1063829787234" height="12" fill="#22c55e" rx="2" />
163
- <text x="90.1063829787234" y="1073" dominant-baseline="middle" class="value-label">1.06x (1.00ms)</text>
164
- <rect x="0" y="1082" width="78.29787234042553" height="12" fill="#f59e0b" rx="2" />
165
- <text x="83.29787234042553" y="1089" dominant-baseline="middle" class="value-label">0.98x (0.92ms)</text>
166
- <rect x="0" y="1098" width="86.80851063829789" height="12" fill="#ef4444" rx="2" />
167
- <text x="91.80851063829789" y="1105" dominant-baseline="middle" class="value-label">1.09x (1.02ms)</text>
168
- <rect x="0" y="1114" width="194.04255319148933" height="12" fill="#8b5cf6" rx="2" />
169
- <text x="199.04255319148933" y="1121" dominant-baseline="middle" class="value-label">2.43x (2.28ms)</text>
161
+ <text x="85" y="1057" dominant-baseline="middle" class="value-label">1.00x (0.89ms)</text>
162
+ <rect x="0" y="1066" width="85.39325842696628" height="12" fill="#22c55e" rx="2" />
163
+ <text x="90.39325842696628" y="1073" dominant-baseline="middle" class="value-label">1.07x (0.95ms)</text>
164
+ <rect x="0" y="1082" width="83.59550561797754" height="12" fill="#f59e0b" rx="2" />
165
+ <text x="88.59550561797754" y="1089" dominant-baseline="middle" class="value-label">1.04x (0.93ms)</text>
166
+ <rect x="0" y="1098" width="90.78651685393257" height="12" fill="#ef4444" rx="2" />
167
+ <text x="95.78651685393257" y="1105" dominant-baseline="middle" class="value-label">1.13x (1.01ms)</text>
168
+ <rect x="0" y="1114" width="186.06741573033705" height="12" fill="#8b5cf6" rx="2" />
169
+ <text x="191.06741573033705" y="1121" dominant-baseline="middle" class="value-label">2.33x (2.07ms)</text>
170
170
  <text x="-10" y="1195" text-anchor="end" dominant-baseline="middle" class="op-label">Upsert</text>
171
171
  <rect x="0" y="1155" width="80" height="12" fill="#3b82f6" rx="2" />
172
- <text x="85" y="1162" dominant-baseline="middle" class="value-label">1.00x (0.71ms)</text>
173
- <rect x="0" y="1171" width="83.38028169014085" height="12" fill="#22c55e" rx="2" />
174
- <text x="88.38028169014085" y="1178" dominant-baseline="middle" class="value-label">1.04x (0.74ms)</text>
175
- <rect x="0" y="1187" width="74.3661971830986" height="12" fill="#f59e0b" rx="2" />
176
- <text x="79.3661971830986" y="1194" dominant-baseline="middle" class="value-label">0.93x (0.66ms)</text>
177
- <rect x="0" y="1203" width="84.50704225352113" height="12" fill="#ef4444" rx="2" />
178
- <text x="89.50704225352113" y="1210" dominant-baseline="middle" class="value-label">1.06x (0.75ms)</text>
179
- <rect x="0" y="1219" width="233.2394366197183" height="12" fill="#8b5cf6" rx="2" />
180
- <text x="238.2394366197183" y="1226" dominant-baseline="middle" class="value-label">2.92x (2.07ms)</text>
172
+ <text x="85" y="1162" dominant-baseline="middle" class="value-label">1.00x (0.65ms)</text>
173
+ <rect x="0" y="1171" width="78.76923076923077" height="12" fill="#22c55e" rx="2" />
174
+ <text x="83.76923076923077" y="1178" dominant-baseline="middle" class="value-label">0.98x (0.64ms)</text>
175
+ <rect x="0" y="1187" width="86.15384615384615" height="12" fill="#f59e0b" rx="2" />
176
+ <text x="91.15384615384615" y="1194" dominant-baseline="middle" class="value-label">1.08x (0.70ms)</text>
177
+ <rect x="0" y="1203" width="89.84615384615384" height="12" fill="#ef4444" rx="2" />
178
+ <text x="94.84615384615384" y="1210" dominant-baseline="middle" class="value-label">1.12x (0.73ms)</text>
179
+ <rect x="0" y="1219" width="188.30769230769232" height="12" fill="#8b5cf6" rx="2" />
180
+ <text x="193.30769230769232" y="1226" dominant-baseline="middle" class="value-label">2.35x (1.53ms)</text>
181
181
  <text x="-10" y="1300" text-anchor="end" dominant-baseline="middle" class="op-label">Nested upsert (user + post)</text>
182
182
  <rect x="0" y="1260" width="80" height="12" fill="#3b82f6" rx="2" />
183
- <text x="85" y="1267" dominant-baseline="middle" class="value-label">1.00x (1.00ms)</text>
184
- <rect x="0" y="1276" width="80" height="12" fill="#22c55e" rx="2" />
185
- <text x="85" y="1283" dominant-baseline="middle" class="value-label">1.00x (1.00ms)</text>
186
- <rect x="0" y="1292" width="80" height="12" fill="#f59e0b" rx="2" />
187
- <text x="85" y="1299" dominant-baseline="middle" class="value-label">1.00x (1.00ms)</text>
188
- <rect x="0" y="1308" width="91.19999999999999" height="12" fill="#ef4444" rx="2" />
189
- <text x="96.19999999999999" y="1315" dominant-baseline="middle" class="value-label">1.14x (1.14ms)</text>
190
- <rect x="0" y="1324" width="181.6" height="12" fill="#8b5cf6" rx="2" />
191
- <text x="186.6" y="1331" dominant-baseline="middle" class="value-label">2.27x (2.27ms)</text>
183
+ <text x="85" y="1267" dominant-baseline="middle" class="value-label">1.00x (0.85ms)</text>
184
+ <rect x="0" y="1276" width="102.58823529411765" height="12" fill="#22c55e" rx="2" />
185
+ <text x="107.58823529411765" y="1283" dominant-baseline="middle" class="value-label">1.28x (1.09ms)</text>
186
+ <rect x="0" y="1292" width="102.58823529411765" height="12" fill="#f59e0b" rx="2" />
187
+ <text x="107.58823529411765" y="1299" dominant-baseline="middle" class="value-label">1.28x (1.09ms)</text>
188
+ <rect x="0" y="1308" width="103.5294117647059" height="12" fill="#ef4444" rx="2" />
189
+ <text x="108.5294117647059" y="1315" dominant-baseline="middle" class="value-label">1.29x (1.10ms)</text>
190
+ <rect x="0" y="1324" width="177.88235294117646" height="12" fill="#8b5cf6" rx="2" />
191
+ <text x="182.88235294117646" y="1331" dominant-baseline="middle" class="value-label">2.22x (1.89ms)</text>
192
192
  <text x="-10" y="1405" text-anchor="end" dominant-baseline="middle" class="op-label">Delete</text>
193
193
  <rect x="0" y="1365" width="80" height="12" fill="#3b82f6" rx="2" />
194
- <text x="85" y="1372" dominant-baseline="middle" class="value-label">1.00x (0.97ms)</text>
195
- <rect x="0" y="1381" width="82.47422680412372" height="12" fill="#22c55e" rx="2" />
196
- <text x="87.47422680412372" y="1388" dominant-baseline="middle" class="value-label">1.03x (1.00ms)</text>
197
- <rect x="0" y="1397" width="80.82474226804123" height="12" fill="#f59e0b" rx="2" />
198
- <text x="85.82474226804123" y="1404" dominant-baseline="middle" class="value-label">1.01x (0.98ms)</text>
199
- <rect x="0" y="1413" width="90.72164948453609" height="12" fill="#ef4444" rx="2" />
200
- <text x="95.72164948453609" y="1420" dominant-baseline="middle" class="value-label">1.13x (1.10ms)</text>
201
- <rect x="0" y="1429" width="141.85567010309276" height="12" fill="#8b5cf6" rx="2" />
202
- <text x="146.85567010309276" y="1436" dominant-baseline="middle" class="value-label">1.77x (1.72ms)</text>
194
+ <text x="85" y="1372" dominant-baseline="middle" class="value-label">1.00x (0.83ms)</text>
195
+ <rect x="0" y="1381" width="91.56626506024097" height="12" fill="#22c55e" rx="2" />
196
+ <text x="96.56626506024097" y="1388" dominant-baseline="middle" class="value-label">1.14x (0.95ms)</text>
197
+ <rect x="0" y="1397" width="93.49397590361447" height="12" fill="#f59e0b" rx="2" />
198
+ <text x="98.49397590361447" y="1404" dominant-baseline="middle" class="value-label">1.17x (0.97ms)</text>
199
+ <rect x="0" y="1413" width="104.09638554216869" height="12" fill="#ef4444" rx="2" />
200
+ <text x="109.09638554216869" y="1420" dominant-baseline="middle" class="value-label">1.30x (1.08ms)</text>
201
+ <rect x="0" y="1429" width="115.66265060240963" height="12" fill="#8b5cf6" rx="2" />
202
+ <text x="120.66265060240963" y="1436" dominant-baseline="middle" class="value-label">1.45x (1.20ms)</text>
203
203
  <text x="-10" y="1510" text-anchor="end" dominant-baseline="middle" class="op-label">Create Many (10 records)</text>
204
204
  <rect x="0" y="1470" width="80" height="12" fill="#3b82f6" rx="2" />
205
- <text x="85" y="1477" dominant-baseline="middle" class="value-label">1.00x (0.77ms)</text>
206
- <rect x="0" y="1486" width="74.8051948051948" height="12" fill="#22c55e" rx="2" />
207
- <text x="79.8051948051948" y="1493" dominant-baseline="middle" class="value-label">0.94x (0.72ms)</text>
208
- <rect x="0" y="1502" width="92.46753246753248" height="12" fill="#f59e0b" rx="2" />
209
- <text x="97.46753246753248" y="1509" dominant-baseline="middle" class="value-label">1.16x (0.89ms)</text>
210
- <rect x="0" y="1518" width="103.89610389610388" height="12" fill="#ef4444" rx="2" />
211
- <text x="108.89610389610388" y="1525" dominant-baseline="middle" class="value-label">1.30x (1.00ms)</text>
212
- <rect x="0" y="1534" width="124.67532467532467" height="12" fill="#8b5cf6" rx="2" />
213
- <text x="129.67532467532467" y="1541" dominant-baseline="middle" class="value-label">1.56x (1.20ms)</text>
205
+ <text x="85" y="1477" dominant-baseline="middle" class="value-label">1.00x (0.72ms)</text>
206
+ <rect x="0" y="1486" width="83.33333333333334" height="12" fill="#22c55e" rx="2" />
207
+ <text x="88.33333333333334" y="1493" dominant-baseline="middle" class="value-label">1.04x (0.75ms)</text>
208
+ <rect x="0" y="1502" width="96.66666666666669" height="12" fill="#f59e0b" rx="2" />
209
+ <text x="101.66666666666669" y="1509" dominant-baseline="middle" class="value-label">1.21x (0.87ms)</text>
210
+ <rect x="0" y="1518" width="103.33333333333334" height="12" fill="#ef4444" rx="2" />
211
+ <text x="108.33333333333334" y="1525" dominant-baseline="middle" class="value-label">1.29x (0.93ms)</text>
212
+ <rect x="0" y="1534" width="116.66666666666667" height="12" fill="#8b5cf6" rx="2" />
213
+ <text x="121.66666666666667" y="1541" dominant-baseline="middle" class="value-label">1.46x (1.05ms)</text>
214
214
  <text x="-10" y="1615" text-anchor="end" dominant-baseline="middle" class="op-label">Upsert Many (10 records)</text>
215
215
  <rect x="0" y="1575" width="80" height="12" fill="#3b82f6" rx="2" />
216
- <text x="85" y="1582" dominant-baseline="middle" class="value-label">1.00x (0.88ms)</text>
217
- <rect x="0" y="1591" width="81.81818181818181" height="12" fill="#22c55e" rx="2" />
218
- <text x="86.81818181818181" y="1598" dominant-baseline="middle" class="value-label">1.02x (0.90ms)</text>
219
- <rect x="0" y="1607" width="93.63636363636363" height="12" fill="#f59e0b" rx="2" />
220
- <text x="98.63636363636363" y="1614" dominant-baseline="middle" class="value-label">1.17x (1.03ms)</text>
221
- <rect x="0" y="1623" width="96.36363636363636" height="12" fill="#ef4444" rx="2" />
222
- <text x="101.36363636363636" y="1630" dominant-baseline="middle" class="value-label">1.20x (1.06ms)</text>
216
+ <text x="85" y="1582" dominant-baseline="middle" class="value-label">1.00x (0.76ms)</text>
217
+ <rect x="0" y="1591" width="90.52631578947367" height="12" fill="#22c55e" rx="2" />
218
+ <text x="95.52631578947367" y="1598" dominant-baseline="middle" class="value-label">1.13x (0.86ms)</text>
219
+ <rect x="0" y="1607" width="113.68421052631578" height="12" fill="#f59e0b" rx="2" />
220
+ <text x="118.68421052631578" y="1614" dominant-baseline="middle" class="value-label">1.42x (1.08ms)</text>
221
+ <rect x="0" y="1623" width="114.73684210526316" height="12" fill="#ef4444" rx="2" />
222
+ <text x="119.73684210526316" y="1630" dominant-baseline="middle" class="value-label">1.43x (1.09ms)</text>
223
223
  <rect x="0" y="1639" width="400" height="12" fill="#8b5cf6" rx="2" />
224
224
  <line x1="397" y1="1639" x2="400" y2="1651" class="overflow-line" />
225
225
  <line x1="394" y1="1639" x2="397" y2="1651" class="overflow-line" />
226
- <text x="405" y="1646" dominant-baseline="middle" class="value-overflow">⚠️ 13.51x (11.89ms)</text>
226
+ <text x="405" y="1646" dominant-baseline="middle" class="value-overflow">⚠️ 13.08x (9.94ms)</text>
227
227
  <text x="-10" y="1720" text-anchor="end" dominant-baseline="middle" class="op-label">Update Many (10 different values)</text>
228
228
  <rect x="0" y="1680" width="80" height="12" fill="#3b82f6" rx="2" />
229
- <text x="85" y="1687" dominant-baseline="middle" class="value-label">1.00x (0.70ms)</text>
230
- <rect x="0" y="1696" width="323.4285714285715" height="12" fill="#22c55e" rx="2" />
231
- <text x="328.4285714285715" y="1703" dominant-baseline="middle" class="value-label">4.04x (2.83ms)</text>
232
- <rect x="0" y="1712" width="314.28571428571433" height="12" fill="#f59e0b" rx="2" />
233
- <text x="319.28571428571433" y="1719" dominant-baseline="middle" class="value-label">3.93x (2.75ms)</text>
234
- <rect x="0" y="1728" width="345.1428571428572" height="12" fill="#ef4444" rx="2" />
235
- <text x="350.1428571428572" y="1735" dominant-baseline="middle" class="value-label">4.31x (3.02ms)</text>
229
+ <text x="85" y="1687" dominant-baseline="middle" class="value-label">1.00x (0.67ms)</text>
230
+ <rect x="0" y="1696" width="325.9701492537313" height="12" fill="#22c55e" rx="2" />
231
+ <text x="330.9701492537313" y="1703" dominant-baseline="middle" class="value-label">4.07x (2.73ms)</text>
232
+ <rect x="0" y="1712" width="308.0597014925373" height="12" fill="#f59e0b" rx="2" />
233
+ <text x="313.0597014925373" y="1719" dominant-baseline="middle" class="value-label">3.85x (2.58ms)</text>
234
+ <rect x="0" y="1728" width="331.9402985074626" height="12" fill="#ef4444" rx="2" />
235
+ <text x="336.9402985074626" y="1735" dominant-baseline="middle" class="value-label">4.15x (2.78ms)</text>
236
236
  <rect x="0" y="1744" width="400" height="12" fill="#8b5cf6" rx="2" />
237
237
  <line x1="397" y1="1744" x2="400" y2="1756" class="overflow-line" />
238
238
  <line x1="394" y1="1744" x2="397" y2="1756" class="overflow-line" />
239
- <text x="405" y="1751" dominant-baseline="middle" class="value-overflow">⚠️ 7.59x (5.31ms)</text>
239
+ <text x="405" y="1751" dominant-baseline="middle" class="value-overflow">⚠️ 6.55x (4.39ms)</text>
240
240
  <text x="-10" y="1825" text-anchor="end" dominant-baseline="middle" class="op-label">Nested relations (100→1000→10000)</text>
241
241
  <rect x="0" y="1785" width="80" height="12" fill="#3b82f6" rx="2" />
242
- <text x="85" y="1792" dominant-baseline="middle" class="value-label">1.00x (25.82ms)</text>
243
- <rect x="0" y="1801" width="76.37490317583269" height="12" fill="#22c55e" rx="2" />
244
- <text x="81.37490317583269" y="1808" dominant-baseline="middle" class="value-label">0.95x (24.65ms)</text>
245
- <rect x="0" y="1817" width="75.13555383423703" height="12" fill="#f59e0b" rx="2" />
246
- <text x="80.13555383423703" y="1824" dominant-baseline="middle" class="value-label">0.94x (24.25ms)</text>
247
- <rect x="0" y="1833" width="249.60495739736638" height="12" fill="#ef4444" rx="2" />
248
- <text x="254.60495739736638" y="1840" dominant-baseline="middle" class="value-label">3.12x (80.56ms)</text>
249
- <rect x="0" y="1849" width="260.57319907048793" height="12" fill="#8b5cf6" rx="2" />
250
- <text x="265.57319907048793" y="1856" dominant-baseline="middle" class="value-label">3.26x (84.10ms)</text>
242
+ <text x="85" y="1792" dominant-baseline="middle" class="value-label">1.00x (12.18ms)</text>
243
+ <rect x="0" y="1801" width="106.5353037766831" height="12" fill="#22c55e" rx="2" />
244
+ <text x="111.5353037766831" y="1808" dominant-baseline="middle" class="value-label">1.33x (16.22ms)</text>
245
+ <rect x="0" y="1817" width="127.0279146141215" height="12" fill="#f59e0b" rx="2" />
246
+ <text x="132.0279146141215" y="1824" dominant-baseline="middle" class="value-label">1.59x (19.34ms)</text>
247
+ <rect x="0" y="1833" width="360.7881773399015" height="12" fill="#ef4444" rx="2" />
248
+ <text x="365.7881773399015" y="1840" dominant-baseline="middle" class="value-label">4.51x (54.93ms)</text>
249
+ <rect x="0" y="1849" width="394.54844006568146" height="12" fill="#8b5cf6" rx="2" />
250
+ <text x="399.54844006568146" y="1856" dominant-baseline="middle" class="value-label">4.93x (60.07ms)</text>
251
251
  <text x="-10" y="1930" text-anchor="end" dominant-baseline="middle" class="op-label">Nested relations (composite key, 5 tenants)</text>
252
252
  <rect x="0" y="1890" width="80" height="12" fill="#3b82f6" rx="2" />
253
- <text x="85" y="1897" dominant-baseline="middle" class="value-label">1.00x (22.41ms)</text>
253
+ <text x="85" y="1897" dominant-baseline="middle" class="value-label">1.00x (14.62ms)</text>
254
254
  <text x="5" y="1913" dominant-baseline="middle" class="na-text">N/A</text>
255
- <rect x="0" y="1922" width="58.04551539491298" height="12" fill="#f59e0b" rx="2" />
256
- <text x="63.04551539491298" y="1929" dominant-baseline="middle" class="value-label">0.73x (16.26ms)</text>
257
- <rect x="0" y="1938" width="140.1160196340919" height="12" fill="#ef4444" rx="2" />
258
- <text x="145.1160196340919" y="1945" dominant-baseline="middle" class="value-label">1.75x (39.25ms)</text>
255
+ <rect x="0" y="1922" width="77.92065663474693" height="12" fill="#f59e0b" rx="2" />
256
+ <text x="82.92065663474693" y="1929" dominant-baseline="middle" class="value-label">0.97x (14.24ms)</text>
257
+ <rect x="0" y="1938" width="159.8358413132695" height="12" fill="#ef4444" rx="2" />
258
+ <text x="164.8358413132695" y="1945" dominant-baseline="middle" class="value-label">2.00x (29.21ms)</text>
259
259
  <rect x="0" y="1954" width="400" height="12" fill="#8b5cf6" rx="2" />
260
260
  <line x1="397" y1="1954" x2="400" y2="1966" class="overflow-line" />
261
261
  <line x1="394" y1="1954" x2="397" y2="1966" class="overflow-line" />
262
- <text x="405" y="1961" dominant-baseline="middle" class="value-overflow">⚠️ 9.77x (219.00ms)</text>
262
+ <text x="405" y="1961" dominant-baseline="middle" class="value-overflow">⚠️ 13.39x (195.74ms)</text>
263
263
  </g>
264
264
 
265
265
  <!-- Legend -->