@antelopejs/postgres 0.2.2 → 0.2.3

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 (280) hide show
  1. package/README.md +6 -5
  2. package/dist/config.d.ts +1 -0
  3. package/dist/config.js +7 -3
  4. package/dist/config.js.map +1 -1
  5. package/dist/connect-failure.d.ts +1 -0
  6. package/dist/connect-failure.js +39 -0
  7. package/dist/connect-failure.js.map +1 -0
  8. package/dist/connection.d.ts +2 -1
  9. package/dist/connection.js +19 -2
  10. package/dist/connection.js.map +1 -1
  11. package/dist/implementations/catalog/index.js +3 -6
  12. package/dist/implementations/catalog/index.js.map +1 -1
  13. package/dist/implementations/database/coerce.js +20 -20
  14. package/dist/implementations/database/coerce.js.map +1 -1
  15. package/dist/implementations/database/context.d.ts +1 -0
  16. package/dist/implementations/database/context.js +4 -0
  17. package/dist/implementations/database/context.js.map +1 -1
  18. package/dist/implementations/database/convergence.d.ts +22 -0
  19. package/dist/implementations/database/convergence.js +183 -0
  20. package/dist/implementations/database/convergence.js.map +1 -0
  21. package/dist/implementations/database/cursors.js +3 -0
  22. package/dist/implementations/database/cursors.js.map +1 -1
  23. package/dist/implementations/database/ddl.d.ts +5 -26
  24. package/dist/implementations/database/ddl.js +15 -191
  25. package/dist/implementations/database/ddl.js.map +1 -1
  26. package/dist/implementations/database/external-column-profile.js +6 -1
  27. package/dist/implementations/database/external-column-profile.js.map +1 -1
  28. package/dist/implementations/database/external-discovery.js +5 -5
  29. package/dist/implementations/database/external-discovery.js.map +1 -1
  30. package/dist/implementations/database/external-measures.js.map +1 -1
  31. package/dist/implementations/database/external-payload.d.ts +2 -2
  32. package/dist/implementations/database/external-payload.js +23 -13
  33. package/dist/implementations/database/external-payload.js.map +1 -1
  34. package/dist/implementations/database/external-schema.d.ts +2 -2
  35. package/dist/implementations/database/external-schema.js +3 -3
  36. package/dist/implementations/database/external-schema.js.map +1 -1
  37. package/dist/implementations/database/external-types.js +23 -16
  38. package/dist/implementations/database/external-types.js.map +1 -1
  39. package/dist/implementations/database/external-writes.d.ts +7 -1
  40. package/dist/implementations/database/external-writes.js +22 -21
  41. package/dist/implementations/database/external-writes.js.map +1 -1
  42. package/dist/implementations/database/feed-pipeline.js +3 -2
  43. package/dist/implementations/database/feed-pipeline.js.map +1 -1
  44. package/dist/implementations/database/feeds.d.ts +1 -1
  45. package/dist/implementations/database/feeds.js +36 -45
  46. package/dist/implementations/database/feeds.js.map +1 -1
  47. package/dist/implementations/database/fields.d.ts +9 -13
  48. package/dist/implementations/database/fields.js +25 -21
  49. package/dist/implementations/database/fields.js.map +1 -1
  50. package/dist/implementations/database/guards.d.ts +5 -0
  51. package/dist/implementations/database/guards.js +23 -0
  52. package/dist/implementations/database/guards.js.map +1 -0
  53. package/dist/implementations/database/introspect.d.ts +1 -1
  54. package/dist/implementations/database/listener.js +9 -3
  55. package/dist/implementations/database/listener.js.map +1 -1
  56. package/dist/implementations/database/migrate.d.ts +2 -2
  57. package/dist/implementations/database/migrate.js +10 -10
  58. package/dist/implementations/database/migrate.js.map +1 -1
  59. package/dist/implementations/database/payload.d.ts +3 -3
  60. package/dist/implementations/database/payload.js +4 -4
  61. package/dist/implementations/database/pipeline.d.ts +6 -2
  62. package/dist/implementations/database/pipeline.js +4 -1
  63. package/dist/implementations/database/pipeline.js.map +1 -1
  64. package/dist/implementations/database/query.js +12 -7
  65. package/dist/implementations/database/query.js.map +1 -1
  66. package/dist/implementations/database/reaper.js +6 -4
  67. package/dist/implementations/database/reaper.js.map +1 -1
  68. package/dist/implementations/database/relation.d.ts +2 -12
  69. package/dist/implementations/database/relation.js +5 -141
  70. package/dist/implementations/database/relation.js.map +1 -1
  71. package/dist/implementations/database/render.d.ts +11 -0
  72. package/dist/implementations/database/render.js +147 -0
  73. package/dist/implementations/database/render.js.map +1 -0
  74. package/dist/implementations/database/result.d.ts +2 -2
  75. package/dist/implementations/database/result.js +18 -19
  76. package/dist/implementations/database/result.js.map +1 -1
  77. package/dist/implementations/database/row-source.d.ts +10 -10
  78. package/dist/implementations/database/row-source.js +22 -19
  79. package/dist/implementations/database/row-source.js.map +1 -1
  80. package/dist/implementations/database/schema.d.ts +2 -2
  81. package/dist/implementations/database/schema.js +19 -19
  82. package/dist/implementations/database/schema.js.map +1 -1
  83. package/dist/implementations/database/selection.js +13 -7
  84. package/dist/implementations/database/selection.js.map +1 -1
  85. package/dist/implementations/database/sql.d.ts +7 -3
  86. package/dist/implementations/database/sql.js.map +1 -1
  87. package/dist/implementations/database/stage.js +3 -2
  88. package/dist/implementations/database/stage.js.map +1 -1
  89. package/dist/implementations/database/stages-aggregate.js +7 -5
  90. package/dist/implementations/database/stages-aggregate.js.map +1 -1
  91. package/dist/implementations/database/stages-array.js.map +1 -1
  92. package/dist/implementations/database/stages-core.js +2 -1
  93. package/dist/implementations/database/stages-core.js.map +1 -1
  94. package/dist/implementations/database/stages-date.js +2 -1
  95. package/dist/implementations/database/stages-date.js.map +1 -1
  96. package/dist/implementations/database/stages-group.js +11 -6
  97. package/dist/implementations/database/stages-group.js.map +1 -1
  98. package/dist/implementations/database/stages-join.js +13 -11
  99. package/dist/implementations/database/stages-join.js.map +1 -1
  100. package/dist/implementations/database/stages-numeric.js.map +1 -1
  101. package/dist/implementations/database/stages-object.js +1 -1
  102. package/dist/implementations/database/stages-object.js.map +1 -1
  103. package/dist/implementations/database/stages-projection.js +9 -8
  104. package/dist/implementations/database/stages-projection.js.map +1 -1
  105. package/dist/implementations/database/stages-rows.js +10 -8
  106. package/dist/implementations/database/stages-rows.js.map +1 -1
  107. package/dist/implementations/database/stages-selection.js +6 -4
  108. package/dist/implementations/database/stages-selection.js.map +1 -1
  109. package/dist/implementations/database/stages-string.js +7 -6
  110. package/dist/implementations/database/stages-string.js.map +1 -1
  111. package/dist/implementations/database/subquery.d.ts +1 -1
  112. package/dist/implementations/database/subquery.js +7 -5
  113. package/dist/implementations/database/subquery.js.map +1 -1
  114. package/dist/implementations/database/types.d.ts +5 -5
  115. package/dist/implementations/database/types.js +11 -11
  116. package/dist/implementations/database/types.js.map +1 -1
  117. package/dist/implementations/database/utils.js +2 -1
  118. package/dist/implementations/database/utils.js.map +1 -1
  119. package/dist/implementations/database/value.d.ts +1 -1
  120. package/dist/implementations/database/value.js +34 -33
  121. package/dist/implementations/database/value.js.map +1 -1
  122. package/dist/implementations/database/writes-atomic.js +6 -5
  123. package/dist/implementations/database/writes-atomic.js.map +1 -1
  124. package/dist/implementations/database/writes-identity.js +18 -19
  125. package/dist/implementations/database/writes-identity.js.map +1 -1
  126. package/dist/implementations/database/writes-insert.js +16 -22
  127. package/dist/implementations/database/writes-insert.js.map +1 -1
  128. package/dist/implementations/database/writes-shared.d.ts +1 -1
  129. package/dist/implementations/database/writes-shared.js +11 -7
  130. package/dist/implementations/database/writes-shared.js.map +1 -1
  131. package/dist/implementations/database/writes.d.ts +22 -1
  132. package/dist/implementations/database/writes.js +6 -3
  133. package/dist/implementations/database/writes.js.map +1 -1
  134. package/dist/test/catalog-owned.test.js +2 -0
  135. package/dist/test/catalog-owned.test.js.map +1 -1
  136. package/dist/test/contention.test.js.map +1 -1
  137. package/dist/test/duplicate-key.test.js +13 -10
  138. package/dist/test/duplicate-key.test.js.map +1 -1
  139. package/dist/test/indexes.test.js +7 -7
  140. package/dist/test/indexes.test.js.map +1 -1
  141. package/dist/test/unit/coerce.spec.js +7 -7
  142. package/dist/test/unit/coerce.spec.js.map +1 -1
  143. package/dist/test/unit/config.spec.js +3 -1
  144. package/dist/test/unit/config.spec.js.map +1 -1
  145. package/dist/test/unit/connect-failure.spec.d.ts +1 -0
  146. package/dist/test/unit/connect-failure.spec.js +50 -0
  147. package/dist/test/unit/connect-failure.spec.js.map +1 -0
  148. package/dist/test/unit/connection.spec.js +16 -18
  149. package/dist/test/unit/connection.spec.js.map +1 -1
  150. package/dist/test/unit/convergence.spec.d.ts +1 -0
  151. package/dist/test/unit/convergence.spec.js +347 -0
  152. package/dist/test/unit/convergence.spec.js.map +1 -0
  153. package/dist/test/unit/cursors-fixture.d.ts +79 -0
  154. package/dist/test/unit/cursors-fixture.js +245 -0
  155. package/dist/test/unit/cursors-fixture.js.map +1 -0
  156. package/dist/test/unit/cursors.spec.js +138 -718
  157. package/dist/test/unit/cursors.spec.js.map +1 -1
  158. package/dist/test/unit/cursors.teardown.spec.d.ts +1 -0
  159. package/dist/test/unit/cursors.teardown.spec.js +322 -0
  160. package/dist/test/unit/cursors.teardown.spec.js.map +1 -0
  161. package/dist/test/unit/cursors.window.spec.d.ts +1 -0
  162. package/dist/test/unit/cursors.window.spec.js +78 -0
  163. package/dist/test/unit/cursors.window.spec.js.map +1 -0
  164. package/dist/test/unit/ddl-fixture.d.ts +5 -0
  165. package/dist/test/unit/ddl-fixture.js +19 -0
  166. package/dist/test/unit/ddl-fixture.js.map +1 -0
  167. package/dist/test/unit/ddl.spec.js +39 -380
  168. package/dist/test/unit/ddl.spec.js.map +1 -1
  169. package/dist/test/unit/expression-array-fixture.d.ts +17 -0
  170. package/dist/test/unit/expression-array-fixture.js +63 -0
  171. package/dist/test/unit/expression-array-fixture.js.map +1 -0
  172. package/dist/test/unit/expression-array-walk.spec.d.ts +1 -0
  173. package/dist/test/unit/expression-array-walk.spec.js +235 -0
  174. package/dist/test/unit/expression-array-walk.spec.js.map +1 -0
  175. package/dist/test/unit/expression-array.spec.js +48 -322
  176. package/dist/test/unit/expression-array.spec.js.map +1 -1
  177. package/dist/test/unit/expression-date.spec.js +4 -3
  178. package/dist/test/unit/expression-date.spec.js.map +1 -1
  179. package/dist/test/unit/expression-fixture.d.ts +15 -0
  180. package/dist/test/unit/expression-fixture.js +40 -0
  181. package/dist/test/unit/expression-fixture.js.map +1 -0
  182. package/dist/test/unit/expression-numeric.spec.js +10 -8
  183. package/dist/test/unit/expression-numeric.spec.js.map +1 -1
  184. package/dist/test/unit/expression-object.spec.js +3 -4
  185. package/dist/test/unit/expression-object.spec.js.map +1 -1
  186. package/dist/test/unit/expression-predicate.spec.d.ts +1 -0
  187. package/dist/test/unit/expression-predicate.spec.js +231 -0
  188. package/dist/test/unit/expression-predicate.spec.js.map +1 -0
  189. package/dist/test/unit/expression-stages.spec.js +0 -5
  190. package/dist/test/unit/expression-stages.spec.js.map +1 -1
  191. package/dist/test/unit/expression-string.spec.js +2 -5
  192. package/dist/test/unit/expression-string.spec.js.map +1 -1
  193. package/dist/test/unit/expression.spec.js +44 -292
  194. package/dist/test/unit/expression.spec.js.map +1 -1
  195. package/dist/test/unit/external-comparisons.spec.js +5 -5
  196. package/dist/test/unit/external-comparisons.spec.js.map +1 -1
  197. package/dist/test/unit/external-types.spec.js +2 -3
  198. package/dist/test/unit/external-types.spec.js.map +1 -1
  199. package/dist/test/unit/feeds.spec.js +40 -23
  200. package/dist/test/unit/feeds.spec.js.map +1 -1
  201. package/dist/test/unit/fields.spec.js +15 -9
  202. package/dist/test/unit/fields.spec.js.map +1 -1
  203. package/dist/test/unit/invalid-fixture.d.ts +3 -0
  204. package/dist/test/unit/invalid-fixture.js +11 -0
  205. package/dist/test/unit/invalid-fixture.js.map +1 -0
  206. package/dist/test/unit/payload.spec.js.map +1 -1
  207. package/dist/test/unit/pipeline-aggregate.spec.js +14 -14
  208. package/dist/test/unit/pipeline-aggregate.spec.js.map +1 -1
  209. package/dist/test/unit/pipeline-fixture.d.ts +25 -6
  210. package/dist/test/unit/pipeline-fixture.js +21 -11
  211. package/dist/test/unit/pipeline-fixture.js.map +1 -1
  212. package/dist/test/unit/pipeline-group-fixture.d.ts +2 -0
  213. package/dist/test/unit/pipeline-group-fixture.js +6 -0
  214. package/dist/test/unit/pipeline-group-fixture.js.map +1 -0
  215. package/dist/test/unit/pipeline-group.spec.js +15 -248
  216. package/dist/test/unit/pipeline-group.spec.js.map +1 -1
  217. package/dist/test/unit/pipeline-lookup.spec.js +13 -10
  218. package/dist/test/unit/pipeline-lookup.spec.js.map +1 -1
  219. package/dist/test/unit/pipeline-projection.spec.js +12 -13
  220. package/dist/test/unit/pipeline-projection.spec.js.map +1 -1
  221. package/dist/test/unit/pipeline-rows.spec.js +21 -18
  222. package/dist/test/unit/pipeline-rows.spec.js.map +1 -1
  223. package/dist/test/unit/pipeline-selection.spec.js +6 -4
  224. package/dist/test/unit/pipeline-selection.spec.js.map +1 -1
  225. package/dist/test/unit/pipeline-stages.spec.js +23 -35
  226. package/dist/test/unit/pipeline-stages.spec.js.map +1 -1
  227. package/dist/test/unit/pipeline-substream.spec.d.ts +1 -0
  228. package/dist/test/unit/pipeline-substream.spec.js +246 -0
  229. package/dist/test/unit/pipeline-substream.spec.js.map +1 -0
  230. package/dist/test/unit/pipeline.spec.js +1 -1
  231. package/dist/test/unit/query.spec.js +6 -2
  232. package/dist/test/unit/query.spec.js.map +1 -1
  233. package/dist/test/unit/reaper.spec.js +4 -3
  234. package/dist/test/unit/reaper.spec.js.map +1 -1
  235. package/dist/test/unit/relation.spec.js +37 -36
  236. package/dist/test/unit/relation.spec.js.map +1 -1
  237. package/dist/test/unit/result.spec.js +13 -11
  238. package/dist/test/unit/result.spec.js.map +1 -1
  239. package/dist/test/unit/row-source.spec.js +1 -1
  240. package/dist/test/unit/row-source.spec.js.map +1 -1
  241. package/dist/test/unit/schema.spec.js +5 -2
  242. package/dist/test/unit/schema.spec.js.map +1 -1
  243. package/dist/test/unit/selection.spec.js +7 -3
  244. package/dist/test/unit/selection.spec.js.map +1 -1
  245. package/dist/test/unit/types.spec.js +6 -6
  246. package/dist/test/unit/types.spec.js.map +1 -1
  247. package/dist/test/unit/writes-atomic.spec.js +2 -2
  248. package/dist/test/unit/writes-atomic.spec.js.map +1 -1
  249. package/dist/test/unit/writes-insert.spec.js +5 -4
  250. package/dist/test/unit/writes-insert.spec.js.map +1 -1
  251. package/dist/test/unit/writes-replace.spec.js +6 -6
  252. package/dist/test/unit/writes-replace.spec.js.map +1 -1
  253. package/dist/test/unit/writes-target.spec.js +3 -3
  254. package/dist/test/unit/writes-target.spec.js.map +1 -1
  255. package/dist/test/unit/writes-update-fixture.d.ts +9 -0
  256. package/dist/test/unit/writes-update-fixture.js +20 -0
  257. package/dist/test/unit/writes-update-fixture.js.map +1 -0
  258. package/dist/test/unit/writes-update-mapper.spec.d.ts +1 -0
  259. package/dist/test/unit/writes-update-mapper.spec.js +123 -0
  260. package/dist/test/unit/writes-update-mapper.spec.js.map +1 -0
  261. package/dist/test/unit/writes-update.spec.js +42 -171
  262. package/dist/test/unit/writes-update.spec.js.map +1 -1
  263. package/dist/test-external/catalog.test.js +11 -1
  264. package/dist/test-external/catalog.test.js.map +1 -1
  265. package/dist/test-external/native.test.js +8 -6
  266. package/dist/test-external/native.test.js.map +1 -1
  267. package/dist/test-external/reads.test.js +20 -22
  268. package/dist/test-external/reads.test.js.map +1 -1
  269. package/dist/test-external/refusals.test.js +45 -24
  270. package/dist/test-external/refusals.test.js.map +1 -1
  271. package/dist/test-external/registration.test.js +4 -2
  272. package/dist/test-external/registration.test.js.map +1 -1
  273. package/dist/test-external/sales.d.ts +9 -2
  274. package/dist/test-external/sales.js.map +1 -1
  275. package/dist/test-external/unreachable.test.d.ts +1 -0
  276. package/dist/test-external/unreachable.test.js +83 -0
  277. package/dist/test-external/unreachable.test.js.map +1 -0
  278. package/dist/test-external/writes.test.js +71 -37
  279. package/dist/test-external/writes.test.js.map +1 -1
  280. package/package.json +19 -6
@@ -3,8 +3,12 @@ import type { Relation } from "./relation";
3
3
  import type { DecodingContext } from "./context";
4
4
  export type PipelineStage = (relation: Relation, stage: QueryStage, context: DecodingContext) => Relation;
5
5
  export type PipelineStageMap = Record<string, PipelineStage>;
6
- export declare const PIPELINE_STAGES: PipelineStageMap;
6
+ export declare const PIPELINE_STAGES: {
7
+ [x: string]: PipelineStage;
8
+ };
7
9
  export declare const DEFERRED_STAGES: Record<string, string>;
8
- export declare const REJECTED_STAGES: Record<string, string>;
10
+ export declare const REJECTED_STAGES: {
11
+ changes: string;
12
+ };
9
13
  export declare function ApplyStages(relation: Relation, stages: QueryStage[], context: DecodingContext): Relation;
10
14
  export declare function CompileRelation(stages: QueryStage[], context: DecodingContext): Relation;
@@ -24,8 +24,11 @@ exports.DEFERRED_STAGES = {};
24
24
  exports.REJECTED_STAGES = {
25
25
  [changes_1.CHANGES_STAGE]: "A 'changes' feed must be the last stage of a query and must be iterated rather than awaited",
26
26
  };
27
+ function IsRejectedStage(name) {
28
+ return Object.hasOwn(exports.REJECTED_STAGES, name);
29
+ }
27
30
  function StageError(name) {
28
- if (Object.hasOwn(exports.REJECTED_STAGES, name)) {
31
+ if (IsRejectedStage(name)) {
29
32
  return new Error(exports.REJECTED_STAGES[name]);
30
33
  }
31
34
  if (Object.hasOwn(exports.DEFERRED_STAGES, name)) {
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/implementations/database/pipeline.ts"],"names":[],"mappings":";;;AA8FA,kCASC;AA4BD,0CAUC;AA7ID,qCAAsC;AACtC,2CAAwC;AACxC,uCAA0C;AAG1C,+CAA2C;AAC3C,+CAA4C;AAC5C,iDAA8C;AAE9C,yDAAsD;AACtD,yDAAsD;AACtD,2DAAwD;AA2B3C,QAAA,eAAe,GAAqB;IAC/C,GAAG,wBAAU;IACb,GAAG,mCAAgB;IACnB,GAAG,qCAAiB;IACpB,GAAG,mCAAgB;IACnB,GAAG,yBAAW;IACd,GAAG,2BAAY;CAChB,CAAC;AAWW,QAAA,eAAe,GAA2B,EAAE,CAAC;AAW7C,QAAA,eAAe,GAA2B;IACrD,CAAC,uBAAa,CAAC,EACb,6FAA6F;CAChG,CAAC;AAEF,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,MAAM,CAAC,MAAM,CAAC,uBAAe,EAAE,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,KAAK,CAAC,uBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,uBAAe,EAAE,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,KAAK,CAAC,GAAG,uBAAe,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,4BAA4B,IAAI,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,UAAU,CACjB,QAAkB,EAClB,KAAiB,EACjB,OAAwB;IAExB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,uBAAe,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,uBAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;AAGD,SAAgB,WAAW,CACzB,QAAkB,EAClB,MAAoB,EACpB,OAAwB;IAExB,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,EACvD,QAAQ,CACT,CAAC;AACJ,CAAC;AAMD,SAAS,iBAAiB,CAAC,KAAiB;IAC1C,MAAM,IAAI,KAAK,CACb,QAAQ,KAAK,CAAC,KAAK,6DAA6D,CACjF,CAAC;AACJ,CAAC;AAkBD,SAAgB,eAAe,CAC7B,MAAoB,EACpB,OAAwB;IAExB,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/implementations/database/pipeline.ts"],"names":[],"mappings":";;;AAkGA,kCASC;AA4BD,0CAUC;AAjJD,qCAAsC;AACtC,2CAAwC;AACxC,uCAA0C;AAG1C,+CAA2C;AAC3C,+CAA4C;AAC5C,iDAA8C;AAE9C,yDAAsD;AACtD,yDAAsD;AACtD,2DAAwD;AA2B3C,QAAA,eAAe,GAAG;IAC7B,GAAG,wBAAU;IACb,GAAG,mCAAgB;IACnB,GAAG,qCAAiB;IACpB,GAAG,mCAAgB;IACnB,GAAG,yBAAW;IACd,GAAG,2BAAY;CACW,CAAC;AAWhB,QAAA,eAAe,GAA2B,EAAE,CAAC;AAW7C,QAAA,eAAe,GAAG;IAC7B,CAAC,uBAAa,CAAC,EACb,6FAA6F;CAC/D,CAAC;AAEnC,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC,uBAAe,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,KAAK,CAAC,uBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,uBAAe,EAAE,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,KAAK,CAAC,GAAG,uBAAe,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,4BAA4B,IAAI,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,UAAU,CACjB,QAAkB,EAClB,KAAiB,EACjB,OAAwB;IAExB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,uBAAe,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,uBAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;AAGD,SAAgB,WAAW,CACzB,QAAkB,EAClB,MAAoB,EACpB,OAAwB;IAExB,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,EACvD,QAAQ,CACT,CAAC;AACJ,CAAC;AAMD,SAAS,iBAAiB,CAAC,KAAiB;IAC1C,MAAM,IAAI,KAAK,CACb,QAAQ,KAAK,CAAC,KAAK,6DAA6D,CACjF,CAAC;AACJ,CAAC;AAkBD,SAAgB,eAAe,CAC7B,MAAoB,EACpB,OAAwB;IAExB,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC7D,CAAC"}
@@ -31,7 +31,9 @@ const instances_1 = require("./instances");
31
31
  const utils_1 = require("./utils");
32
32
  const cursors_1 = require("./cursors");
33
33
  const relation_1 = require("./relation");
34
+ const render_1 = require("./render");
34
35
  const selection_1 = require("./selection");
36
+ const guards_1 = require("./guards");
35
37
  const MISSING_SCHEMA_ID = "Lifecycle query is missing its schema id";
36
38
  const LIFECYCLE_STAGE_COUNT = 2;
37
39
  const NO_ROWS = 0;
@@ -40,6 +42,9 @@ const LIFECYCLE_HANDLERS = {
40
42
  [utils_1.DESTROY_INSTANCE]: (schemaId, stage) => (0, instances_1.DestroyInstance)(schemaId, (0, schema_1.GetTableNames)(schemaId), stage.options?.id),
41
43
  listInstances: instances_1.ListInstances,
42
44
  };
45
+ function IsLifecycleStage(name) {
46
+ return Object.hasOwn(LIFECYCLE_HANDLERS, name);
47
+ }
43
48
  const EXTERNAL_LIFECYCLE = {
44
49
  [utils_1.CREATE_INSTANCE]: (_schemaId, stage) => Promise.reject((0, external_refusals_1.ExternalInstanceRefusal)(stage.stage)),
45
50
  [utils_1.DESTROY_INSTANCE]: (_schemaId, stage) => Promise.reject((0, external_refusals_1.ExternalInstanceRefusal)(stage.stage)),
@@ -51,12 +56,12 @@ function Lifecycle(stages) {
51
56
  return undefined;
52
57
  }
53
58
  const stage = stages[1];
54
- if (!Object.hasOwn(LIFECYCLE_HANDLERS, stage.stage)) {
59
+ if (!IsLifecycleStage(stage.stage)) {
55
60
  return undefined;
56
61
  }
57
62
  const handler = ((0, config_1.IsExternal)() ? EXTERNAL_LIFECYCLE : LIFECYCLE_HANDLERS)[stage.stage];
58
63
  const schemaId = stages[0].options?.id;
59
- (0, node_assert_1.default)(typeof schemaId === "string", MISSING_SCHEMA_ID);
64
+ (0, node_assert_1.default)((0, guards_1.IsString)(schemaId), MISSING_SCHEMA_ID);
60
65
  return (0, schema_1.WaitForSchemaReady)(schemaId).then(() => handler(schemaId, stage));
61
66
  }
62
67
  function DecodeRows(relation, rows) {
@@ -64,8 +69,8 @@ function DecodeRows(relation, rows) {
64
69
  if (projection) {
65
70
  return rows.map((row) => (0, result_1.ReviveValue)(row[relation_1.OUTPUT_COLUMN], projection.type));
66
71
  }
67
- const shape = (0, relation_1.RequireOrigin)(relation).shape;
68
- return rows.map((row) => (0, result_1.DecodeRow)(row, shape));
72
+ const model = (0, relation_1.RequireOrigin)(relation).model;
73
+ return rows.map((row) => (0, result_1.DecodeRow)(row, model));
69
74
  }
70
75
  function DecodeResult(relation, rows) {
71
76
  const decoded = DecodeRows(relation, rows);
@@ -75,7 +80,7 @@ function DecodeResult(relation, rows) {
75
80
  return decoded.length > 0 ? decoded[0] : relation.absent;
76
81
  }
77
82
  async function RunRead(relation, context) {
78
- const result = await (0, connection_1.Query)((0, relation_1.Render)(relation), context.params.all());
83
+ const result = await (0, connection_1.Query)((0, render_1.Render)(relation), context.params.all());
79
84
  return DecodeResult(relation, result.rows);
80
85
  }
81
86
  async function RunWrite(target, stage, context) {
@@ -83,7 +88,7 @@ async function RunWrite(target, stage, context) {
83
88
  if (!statement.sql) {
84
89
  return statement.ids ?? NO_ROWS;
85
90
  }
86
- const external = target.origin.shape.external;
91
+ const external = target.origin.model.external;
87
92
  if (external) {
88
93
  return RunExternalWrite(statement, external, context);
89
94
  }
@@ -171,7 +176,7 @@ async function CompileCursor(stages, context) {
171
176
  }
172
177
  const relation = compiled.relation;
173
178
  return {
174
- sql: (0, relation_1.Render)(relation),
179
+ sql: (0, render_1.Render)(relation),
175
180
  params: context.params.all(),
176
181
  decode: (rows) => DecodeRows(relation, rows),
177
182
  };
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/implementations/database/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/implementations/database/query.ts"],"names":[],"mappings":"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"}
@@ -64,12 +64,12 @@ async function Borrowed(retentionMs) {
64
64
  client.release();
65
65
  }
66
66
  }
67
- function ReportFailure(err) {
67
+ function StartsFailureRun() {
68
68
  if (isFailing) {
69
- return;
69
+ return false;
70
70
  }
71
71
  isFailing = true;
72
- logger_1.Logger.Error(REAP_FAILED, err);
72
+ return true;
73
73
  }
74
74
  function ReportReaped() {
75
75
  if (!isFailing) {
@@ -89,7 +89,9 @@ async function Tick() {
89
89
  }
90
90
  }
91
91
  catch (err) {
92
- ReportFailure(err);
92
+ if (StartsFailureRun()) {
93
+ logger_1.Logger.Error(REAP_FAILED, err);
94
+ }
93
95
  }
94
96
  finally {
95
97
  isReaping = false;
@@ -1 +1 @@
1
- {"version":3,"file":"reaper.js","sourceRoot":"","sources":["../../../src/implementations/database/reaper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reaper.js","sourceRoot":"","sources":["../../../src/implementations/database/reaper.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import type { SqlType } from "./types";
2
- import type { DecodingContext } from "./context";
3
2
  import { type Compiled } from "./sql";
4
- import { type TableShape } from "./fields";
3
+ import type { TableModel } from "./fields";
5
4
  import { type DocumentMember, type ExternalReads, type RowSource } from "./row-source";
6
5
  export declare const OUTPUT_COLUMN = "value";
7
6
  type IndexResolver = (name: string) => string[];
@@ -9,7 +8,7 @@ type ScanNotice = (name: string) => void;
9
8
  export interface TableOrigin {
10
9
  schemaId: string;
11
10
  tableId: string;
12
- shape: TableShape;
11
+ model: TableModel;
13
12
  index: IndexResolver;
14
13
  crossInstanceScan?: ScanNotice;
15
14
  }
@@ -47,19 +46,10 @@ export interface Relation {
47
46
  export declare function RequireOrigin(relation: Relation): TableOrigin;
48
47
  export declare function IndexColumns(relation: Relation, name: string): DocumentMember[];
49
48
  export declare function ScanColumns(relation: Relation, name: string): DocumentMember[];
50
- export declare function AbsorbOrder(relation: Relation): string | undefined;
51
- export declare function RowBound(sql: string): string;
52
- export declare const SINGLE_ROW: string;
53
- export declare function Render(relation: Relation): string;
54
49
  export declare function TableRelation(from: string, alias: string, origin: TableOrigin, reads?: ExternalReads): Relation;
55
50
  export declare function LoggedRelation(from: string, alias: string, row: string, origin: TableOrigin): Relation;
56
51
  export declare function ValueRelation(from: string, alias: string, type: SqlType): Relation;
57
- export declare function Nested(relation: Relation, context: DecodingContext): Relation;
58
- export type RelationFlag = "projection" | "limit" | "offset" | "distinct" | "ordered" | "aggregated";
59
- export declare const WHERE_BLOCKERS: readonly RelationFlag[];
60
- export declare function Prepare(relation: Relation, blockedBy: readonly RelationFlag[], context: DecodingContext): Relation;
61
52
  export declare function SetProjection(relation: Relation, value: Compiled): Relation;
62
53
  export declare function SetPlainProjection(relation: Relation, value: Compiled, source: RowSource): Relation;
63
- export declare function HasFlag(relation: Relation, flags: readonly RelationFlag[]): boolean;
64
54
  export declare function CurrentValue(relation: Relation): Compiled;
65
55
  export {};
@@ -3,26 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.WHERE_BLOCKERS = exports.SINGLE_ROW = exports.OUTPUT_COLUMN = void 0;
6
+ exports.OUTPUT_COLUMN = void 0;
7
7
  exports.RequireOrigin = RequireOrigin;
8
8
  exports.IndexColumns = IndexColumns;
9
9
  exports.ScanColumns = ScanColumns;
10
- exports.AbsorbOrder = AbsorbOrder;
11
- exports.RowBound = RowBound;
12
- exports.Render = Render;
13
10
  exports.TableRelation = TableRelation;
14
11
  exports.LoggedRelation = LoggedRelation;
15
12
  exports.ValueRelation = ValueRelation;
16
- exports.Nested = Nested;
17
- exports.Prepare = Prepare;
18
13
  exports.SetProjection = SetProjection;
19
14
  exports.SetPlainProjection = SetPlainProjection;
20
- exports.HasFlag = HasFlag;
21
15
  exports.CurrentValue = CurrentValue;
22
16
  const node_assert_1 = __importDefault(require("node:assert"));
23
- const utils_1 = require("./utils");
24
17
  const sql_1 = require("./sql");
25
- const fields_1 = require("./fields");
26
18
  const row_source_1 = require("./row-source");
27
19
  exports.OUTPUT_COLUMN = "value";
28
20
  function NewRelation(seed) {
@@ -57,106 +49,11 @@ function ScanColumns(relation, name) {
57
49
  }
58
50
  return IndexColumns(relation, name);
59
51
  }
60
- function ExternalColumns(relation, shape) {
61
- return (0, row_source_1.ExternalNames)(shape).map((name) => `${relation.source.field(name).sql} AS ${(0, sql_1.QuoteIdentifier)(name)}`);
62
- }
63
- function RowColumns(relation) {
64
- const origin = RequireOrigin(relation);
65
- if (origin.shape.external) {
66
- return ExternalColumns(relation, origin.shape);
67
- }
68
- const declared = (0, fields_1.DeclaredColumns)(origin.shape);
69
- const columns = (0, fields_1.PhysicalOrder)(utils_1.ID_COLUMN, utils_1.INSTANCE_COLUMN, declared, utils_1.EXTRA_COLUMN);
70
- return columns.map((column) => (0, sql_1.QualifiedColumn)(relation.alias, column));
71
- }
72
- function SelectList(relation) {
73
- const projection = relation.projection;
74
- if (!projection) {
75
- return RowColumns(relation).join(", ");
76
- }
77
- return `${projection.sql} AS ${(0, sql_1.QuoteIdentifier)(exports.OUTPUT_COLUMN)}`;
78
- }
79
- function SelectClause(relation) {
80
- const modifier = relation.distinct ? "DISTINCT " : "";
81
- return `SELECT ${modifier}${SelectList(relation)}`;
82
- }
83
- function FromItem(from, alias) {
84
- return `${from} AS ${(0, sql_1.QuoteIdentifier)(alias)}`;
85
- }
86
- function FromClause(relation) {
87
- return `FROM ${FromItem(relation.from, relation.alias)}`;
88
- }
89
- function RenderJoin(join) {
90
- return `${join.kind} ${FromItem(join.from, join.alias)} ON ${join.on}`;
91
- }
92
- function JoinClauses(relation) {
93
- if (relation.joins.length === 0) {
94
- return undefined;
95
- }
96
- return relation.joins.map(RenderJoin).join(" ");
97
- }
98
- function WhereClause(relation) {
99
- if (relation.where.length === 0) {
100
- return undefined;
101
- }
102
- return `WHERE ${relation.where.join(" AND ")}`;
103
- }
104
- function GroupByClause(relation) {
105
- if (relation.groupBy.length === 0) {
106
- return undefined;
107
- }
108
- return `GROUP BY ${relation.groupBy.map((term) => term.sql).join(", ")}`;
109
- }
110
- function OrderTerms(relation) {
111
- if (relation.orderBy.length === 0) {
112
- return undefined;
113
- }
114
- const terms = relation.orderBy.map((term) => `${term.sql} ${term.descending ? "DESC" : "ASC"}`);
115
- return terms.join(", ");
116
- }
117
- function OrderByClause(relation) {
118
- const terms = OrderTerms(relation);
119
- return terms === undefined ? undefined : `ORDER BY ${terms}`;
120
- }
121
- const BOUND_PARAMETER = /\$\d/;
122
- function AbsorbOrder(relation) {
123
- const terms = OrderTerms(relation);
124
- (0, node_assert_1.default)(terms === undefined || !BOUND_PARAMETER.test(terms), "An order term must carry no bound parameter, since absorbing an aggregate discards it");
125
- relation.orderBy = [];
126
- return terms;
127
- }
128
- const ONE_ROW = "1";
129
- function RowBound(sql) {
130
- return `((${sql})::bigint)`;
131
- }
132
- exports.SINGLE_ROW = RowBound(ONE_ROW);
133
- function LimitClause(relation) {
134
- return relation.limit === undefined ? undefined : `LIMIT ${relation.limit}`;
135
- }
136
- function OffsetClause(relation) {
137
- return relation.offset === undefined
138
- ? undefined
139
- : `OFFSET ${relation.offset}`;
140
- }
141
- const CLAUSES = [
142
- SelectClause,
143
- FromClause,
144
- JoinClauses,
145
- WhereClause,
146
- GroupByClause,
147
- OrderByClause,
148
- LimitClause,
149
- OffsetClause,
150
- ];
151
- function Render(relation) {
152
- const clauses = CLAUSES.map((build) => build(relation));
153
- return clauses.filter((clause) => clause !== undefined).join(" ");
154
- }
155
52
  function TableSource(alias, origin, reads) {
156
- if (origin.shape.external) {
157
- return new row_source_1.ExternalRowSource(alias, origin.shape, reads);
53
+ if (origin.model.external) {
54
+ return new row_source_1.ExternalRowSource(alias, origin.model, reads);
158
55
  }
159
- return new row_source_1.ColumnRowSource((0, row_source_1.AliasedColumns)(alias), origin.shape);
56
+ return new row_source_1.ColumnRowSource((0, row_source_1.AliasedColumns)(alias), origin.model);
160
57
  }
161
58
  function TableRelation(from, alias, origin, reads = "table") {
162
59
  return NewRelation({
@@ -170,7 +67,7 @@ function LoggedRelation(from, alias, row, origin) {
170
67
  return NewRelation({
171
68
  from,
172
69
  alias,
173
- source: new row_source_1.ColumnRowSource((0, row_source_1.LoggedColumns)(row), origin.shape),
70
+ source: new row_source_1.ColumnRowSource((0, row_source_1.LoggedColumns)(row), origin.model),
174
71
  origin,
175
72
  });
176
73
  }
@@ -186,36 +83,6 @@ function ValueRelation(from, alias, type) {
186
83
  projection,
187
84
  });
188
85
  }
189
- function Nested(relation, context) {
190
- const from = `(${Render(relation)})`;
191
- const alias = context.nextAlias();
192
- const projection = relation.projection;
193
- const wrapped = projection
194
- ? ValueRelation(from, alias, projection.type)
195
- : TableRelation(from, alias, RequireOrigin(relation), "output");
196
- wrapped.single = relation.single;
197
- wrapped.absent = relation.absent;
198
- return wrapped;
199
- }
200
- exports.WHERE_BLOCKERS = [
201
- "projection",
202
- "limit",
203
- "offset",
204
- "distinct",
205
- "aggregated",
206
- ];
207
- const FLAG_PREDICATES = {
208
- projection: (relation) => relation.projection !== undefined,
209
- limit: (relation) => relation.limit !== undefined,
210
- offset: (relation) => relation.offset !== undefined,
211
- distinct: (relation) => relation.distinct,
212
- ordered: (relation) => relation.orderBy.length > 0,
213
- aggregated: (relation) => relation.aggregated,
214
- };
215
- function Prepare(relation, blockedBy, context) {
216
- const blocked = blockedBy.some((flag) => FLAG_PREDICATES[flag](relation));
217
- return blocked ? Nested(relation, context) : relation;
218
- }
219
86
  function SetProjection(relation, value) {
220
87
  relation.projection = value;
221
88
  relation.source = new row_source_1.JsonRowSource(value);
@@ -228,9 +95,6 @@ function SetPlainProjection(relation, value, source) {
228
95
  projected.projectedFrom = source;
229
96
  return projected;
230
97
  }
231
- function HasFlag(relation, flags) {
232
- return flags.some((flag) => FLAG_PREDICATES[flag](relation));
233
- }
234
98
  function CurrentValue(relation) {
235
99
  return relation.projection ?? relation.source.toJson();
236
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"relation.js","sourceRoot":"","sources":["../../../src/implementations/database/relation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relation.js","sourceRoot":"","sources":["../../../src/implementations/database/relation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { DecodingContext } from "./context";
2
+ import { type Relation } from "./relation";
3
+ export declare function AbsorbOrder(relation: Relation): string | undefined;
4
+ export declare function RowBound(sql: string): string;
5
+ export declare const SINGLE_ROW: string;
6
+ export declare function Render(relation: Relation): string;
7
+ export declare function Nested(relation: Relation, context: DecodingContext): Relation;
8
+ export type RelationFlag = "projection" | "limit" | "offset" | "distinct" | "ordered" | "aggregated";
9
+ export declare const WHERE_BLOCKERS: readonly RelationFlag[];
10
+ export declare function Prepare(relation: Relation, blockedBy: readonly RelationFlag[], context: DecodingContext): Relation;
11
+ export declare function HasFlag(relation: Relation, flags: readonly RelationFlag[]): boolean;
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.WHERE_BLOCKERS = exports.SINGLE_ROW = void 0;
7
+ exports.AbsorbOrder = AbsorbOrder;
8
+ exports.RowBound = RowBound;
9
+ exports.Render = Render;
10
+ exports.Nested = Nested;
11
+ exports.Prepare = Prepare;
12
+ exports.HasFlag = HasFlag;
13
+ const node_assert_1 = __importDefault(require("node:assert"));
14
+ const utils_1 = require("./utils");
15
+ const sql_1 = require("./sql");
16
+ const fields_1 = require("./fields");
17
+ const row_source_1 = require("./row-source");
18
+ const relation_1 = require("./relation");
19
+ function ExternalColumns(relation, model) {
20
+ return (0, row_source_1.ExternalNames)(model).map((name) => `${relation.source.field(name).sql} AS ${(0, sql_1.QuoteIdentifier)(name)}`);
21
+ }
22
+ function RowColumns(relation) {
23
+ const origin = (0, relation_1.RequireOrigin)(relation);
24
+ if (origin.model.external) {
25
+ return ExternalColumns(relation, origin.model);
26
+ }
27
+ const declared = (0, fields_1.DeclaredColumns)(origin.model);
28
+ const columns = (0, fields_1.PhysicalOrder)(utils_1.ID_COLUMN, utils_1.INSTANCE_COLUMN, declared, utils_1.EXTRA_COLUMN);
29
+ return columns.map((column) => (0, sql_1.QualifiedColumn)(relation.alias, column));
30
+ }
31
+ function SelectList(relation) {
32
+ const projection = relation.projection;
33
+ if (!projection) {
34
+ return RowColumns(relation).join(", ");
35
+ }
36
+ return `${projection.sql} AS ${(0, sql_1.QuoteIdentifier)(relation_1.OUTPUT_COLUMN)}`;
37
+ }
38
+ function SelectClause(relation) {
39
+ const modifier = relation.distinct ? "DISTINCT " : "";
40
+ return `SELECT ${modifier}${SelectList(relation)}`;
41
+ }
42
+ function FromItem(from, alias) {
43
+ return `${from} AS ${(0, sql_1.QuoteIdentifier)(alias)}`;
44
+ }
45
+ function FromClause(relation) {
46
+ return `FROM ${FromItem(relation.from, relation.alias)}`;
47
+ }
48
+ function RenderJoin(join) {
49
+ return `${join.kind} ${FromItem(join.from, join.alias)} ON ${join.on}`;
50
+ }
51
+ function JoinClauses(relation) {
52
+ if (relation.joins.length === 0) {
53
+ return undefined;
54
+ }
55
+ return relation.joins.map(RenderJoin).join(" ");
56
+ }
57
+ function WhereClause(relation) {
58
+ if (relation.where.length === 0) {
59
+ return undefined;
60
+ }
61
+ return `WHERE ${relation.where.join(" AND ")}`;
62
+ }
63
+ function GroupByClause(relation) {
64
+ if (relation.groupBy.length === 0) {
65
+ return undefined;
66
+ }
67
+ return `GROUP BY ${relation.groupBy.map((term) => term.sql).join(", ")}`;
68
+ }
69
+ function OrderTerms(relation) {
70
+ if (relation.orderBy.length === 0) {
71
+ return undefined;
72
+ }
73
+ const terms = relation.orderBy.map((term) => `${term.sql} ${term.descending ? "DESC" : "ASC"}`);
74
+ return terms.join(", ");
75
+ }
76
+ function OrderByClause(relation) {
77
+ const terms = OrderTerms(relation);
78
+ return terms === undefined ? undefined : `ORDER BY ${terms}`;
79
+ }
80
+ const BOUND_PARAMETER = /\$\d/;
81
+ function AbsorbOrder(relation) {
82
+ const terms = OrderTerms(relation);
83
+ (0, node_assert_1.default)(terms === undefined || !BOUND_PARAMETER.test(terms), "An order term must carry no bound parameter, since absorbing an aggregate discards it");
84
+ relation.orderBy = [];
85
+ return terms;
86
+ }
87
+ const ONE_ROW = "1";
88
+ function RowBound(sql) {
89
+ return `((${sql})::bigint)`;
90
+ }
91
+ exports.SINGLE_ROW = RowBound(ONE_ROW);
92
+ function LimitClause(relation) {
93
+ return relation.limit === undefined ? undefined : `LIMIT ${relation.limit}`;
94
+ }
95
+ function OffsetClause(relation) {
96
+ return relation.offset === undefined
97
+ ? undefined
98
+ : `OFFSET ${relation.offset}`;
99
+ }
100
+ const CLAUSES = [
101
+ SelectClause,
102
+ FromClause,
103
+ JoinClauses,
104
+ WhereClause,
105
+ GroupByClause,
106
+ OrderByClause,
107
+ LimitClause,
108
+ OffsetClause,
109
+ ];
110
+ function Render(relation) {
111
+ const clauses = CLAUSES.map((build) => build(relation));
112
+ return clauses.filter((clause) => clause !== undefined).join(" ");
113
+ }
114
+ function Nested(relation, context) {
115
+ const from = `(${Render(relation)})`;
116
+ const alias = context.nextAlias();
117
+ const projection = relation.projection;
118
+ const wrapped = projection
119
+ ? (0, relation_1.ValueRelation)(from, alias, projection.type)
120
+ : (0, relation_1.TableRelation)(from, alias, (0, relation_1.RequireOrigin)(relation), "output");
121
+ wrapped.single = relation.single;
122
+ wrapped.absent = relation.absent;
123
+ return wrapped;
124
+ }
125
+ exports.WHERE_BLOCKERS = [
126
+ "projection",
127
+ "limit",
128
+ "offset",
129
+ "distinct",
130
+ "aggregated",
131
+ ];
132
+ const FLAG_PREDICATES = {
133
+ projection: (relation) => relation.projection !== undefined,
134
+ limit: (relation) => relation.limit !== undefined,
135
+ offset: (relation) => relation.offset !== undefined,
136
+ distinct: (relation) => relation.distinct,
137
+ ordered: (relation) => relation.orderBy.length > 0,
138
+ aggregated: (relation) => relation.aggregated,
139
+ };
140
+ function Prepare(relation, blockedBy, context) {
141
+ const blocked = blockedBy.some((flag) => FLAG_PREDICATES[flag](relation));
142
+ return blocked ? Nested(relation, context) : relation;
143
+ }
144
+ function HasFlag(relation, flags) {
145
+ return flags.some((flag) => FLAG_PREDICATES[flag](relation));
146
+ }
147
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/implementations/database/render.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { TableShape } from "./fields";
1
+ import type { TableModel } from "./fields";
2
2
  import type { SqlType } from "./types";
3
3
  export declare function ReviveValue(value: unknown, type: SqlType): unknown;
4
- export declare function DecodeRow(row: Record<string, unknown>, table: TableShape): Record<string, unknown>;
4
+ export declare function DecodeRow(row: Record<string, unknown>, table: TableModel): Record<string, unknown>;