@antelopejs/postgres 0.2.1 → 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 (284) 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 +6 -26
  24. package/dist/implementations/database/ddl.js +28 -195
  25. package/dist/implementations/database/ddl.js.map +1 -1
  26. package/dist/implementations/database/duplicate-key.d.ts +2 -0
  27. package/dist/implementations/database/duplicate-key.js +49 -0
  28. package/dist/implementations/database/duplicate-key.js.map +1 -0
  29. package/dist/implementations/database/external-column-profile.js +6 -1
  30. package/dist/implementations/database/external-column-profile.js.map +1 -1
  31. package/dist/implementations/database/external-discovery.js +5 -5
  32. package/dist/implementations/database/external-discovery.js.map +1 -1
  33. package/dist/implementations/database/external-measures.js.map +1 -1
  34. package/dist/implementations/database/external-payload.d.ts +2 -2
  35. package/dist/implementations/database/external-payload.js +23 -13
  36. package/dist/implementations/database/external-payload.js.map +1 -1
  37. package/dist/implementations/database/external-schema.d.ts +2 -2
  38. package/dist/implementations/database/external-schema.js +3 -3
  39. package/dist/implementations/database/external-schema.js.map +1 -1
  40. package/dist/implementations/database/external-types.js +23 -16
  41. package/dist/implementations/database/external-types.js.map +1 -1
  42. package/dist/implementations/database/external-writes.d.ts +7 -1
  43. package/dist/implementations/database/external-writes.js +22 -21
  44. package/dist/implementations/database/external-writes.js.map +1 -1
  45. package/dist/implementations/database/feed-pipeline.js +3 -2
  46. package/dist/implementations/database/feed-pipeline.js.map +1 -1
  47. package/dist/implementations/database/feeds.d.ts +1 -1
  48. package/dist/implementations/database/feeds.js +36 -45
  49. package/dist/implementations/database/feeds.js.map +1 -1
  50. package/dist/implementations/database/fields.d.ts +9 -13
  51. package/dist/implementations/database/fields.js +25 -21
  52. package/dist/implementations/database/fields.js.map +1 -1
  53. package/dist/implementations/database/guards.d.ts +5 -0
  54. package/dist/implementations/database/guards.js +23 -0
  55. package/dist/implementations/database/guards.js.map +1 -0
  56. package/dist/implementations/database/introspect.d.ts +1 -1
  57. package/dist/implementations/database/listener.js +9 -3
  58. package/dist/implementations/database/listener.js.map +1 -1
  59. package/dist/implementations/database/migrate.d.ts +2 -2
  60. package/dist/implementations/database/migrate.js +10 -10
  61. package/dist/implementations/database/migrate.js.map +1 -1
  62. package/dist/implementations/database/payload.d.ts +3 -3
  63. package/dist/implementations/database/payload.js +4 -4
  64. package/dist/implementations/database/pipeline.d.ts +6 -2
  65. package/dist/implementations/database/pipeline.js +4 -1
  66. package/dist/implementations/database/pipeline.js.map +1 -1
  67. package/dist/implementations/database/query.js +27 -12
  68. package/dist/implementations/database/query.js.map +1 -1
  69. package/dist/implementations/database/reaper.js +6 -4
  70. package/dist/implementations/database/reaper.js.map +1 -1
  71. package/dist/implementations/database/relation.d.ts +2 -12
  72. package/dist/implementations/database/relation.js +5 -141
  73. package/dist/implementations/database/relation.js.map +1 -1
  74. package/dist/implementations/database/render.d.ts +11 -0
  75. package/dist/implementations/database/render.js +147 -0
  76. package/dist/implementations/database/render.js.map +1 -0
  77. package/dist/implementations/database/result.d.ts +2 -2
  78. package/dist/implementations/database/result.js +18 -19
  79. package/dist/implementations/database/result.js.map +1 -1
  80. package/dist/implementations/database/row-source.d.ts +10 -10
  81. package/dist/implementations/database/row-source.js +22 -19
  82. package/dist/implementations/database/row-source.js.map +1 -1
  83. package/dist/implementations/database/schema.d.ts +3 -2
  84. package/dist/implementations/database/schema.js +35 -19
  85. package/dist/implementations/database/schema.js.map +1 -1
  86. package/dist/implementations/database/selection.js +13 -7
  87. package/dist/implementations/database/selection.js.map +1 -1
  88. package/dist/implementations/database/sql.d.ts +7 -3
  89. package/dist/implementations/database/sql.js.map +1 -1
  90. package/dist/implementations/database/stage.js +3 -2
  91. package/dist/implementations/database/stage.js.map +1 -1
  92. package/dist/implementations/database/stages-aggregate.js +7 -5
  93. package/dist/implementations/database/stages-aggregate.js.map +1 -1
  94. package/dist/implementations/database/stages-array.js.map +1 -1
  95. package/dist/implementations/database/stages-core.js +2 -1
  96. package/dist/implementations/database/stages-core.js.map +1 -1
  97. package/dist/implementations/database/stages-date.js +2 -1
  98. package/dist/implementations/database/stages-date.js.map +1 -1
  99. package/dist/implementations/database/stages-group.js +11 -6
  100. package/dist/implementations/database/stages-group.js.map +1 -1
  101. package/dist/implementations/database/stages-join.js +13 -11
  102. package/dist/implementations/database/stages-join.js.map +1 -1
  103. package/dist/implementations/database/stages-numeric.js.map +1 -1
  104. package/dist/implementations/database/stages-object.js +1 -1
  105. package/dist/implementations/database/stages-object.js.map +1 -1
  106. package/dist/implementations/database/stages-projection.js +9 -8
  107. package/dist/implementations/database/stages-projection.js.map +1 -1
  108. package/dist/implementations/database/stages-rows.js +10 -8
  109. package/dist/implementations/database/stages-rows.js.map +1 -1
  110. package/dist/implementations/database/stages-selection.js +6 -4
  111. package/dist/implementations/database/stages-selection.js.map +1 -1
  112. package/dist/implementations/database/stages-string.js +7 -6
  113. package/dist/implementations/database/stages-string.js.map +1 -1
  114. package/dist/implementations/database/subquery.d.ts +1 -1
  115. package/dist/implementations/database/subquery.js +7 -5
  116. package/dist/implementations/database/subquery.js.map +1 -1
  117. package/dist/implementations/database/types.d.ts +5 -5
  118. package/dist/implementations/database/types.js +11 -11
  119. package/dist/implementations/database/types.js.map +1 -1
  120. package/dist/implementations/database/utils.js +2 -1
  121. package/dist/implementations/database/utils.js.map +1 -1
  122. package/dist/implementations/database/value.d.ts +1 -1
  123. package/dist/implementations/database/value.js +34 -33
  124. package/dist/implementations/database/value.js.map +1 -1
  125. package/dist/implementations/database/writes-atomic.js +6 -5
  126. package/dist/implementations/database/writes-atomic.js.map +1 -1
  127. package/dist/implementations/database/writes-identity.js +18 -19
  128. package/dist/implementations/database/writes-identity.js.map +1 -1
  129. package/dist/implementations/database/writes-insert.js +16 -22
  130. package/dist/implementations/database/writes-insert.js.map +1 -1
  131. package/dist/implementations/database/writes-shared.d.ts +1 -1
  132. package/dist/implementations/database/writes-shared.js +11 -7
  133. package/dist/implementations/database/writes-shared.js.map +1 -1
  134. package/dist/implementations/database/writes.d.ts +22 -1
  135. package/dist/implementations/database/writes.js +6 -3
  136. package/dist/implementations/database/writes.js.map +1 -1
  137. package/dist/test/catalog-owned.test.js +2 -0
  138. package/dist/test/catalog-owned.test.js.map +1 -1
  139. package/dist/test/contention.test.js.map +1 -1
  140. package/dist/test/duplicate-key.test.d.ts +1 -0
  141. package/dist/test/duplicate-key.test.js +103 -0
  142. package/dist/test/duplicate-key.test.js.map +1 -0
  143. package/dist/test/indexes.test.js +7 -7
  144. package/dist/test/indexes.test.js.map +1 -1
  145. package/dist/test/unit/coerce.spec.js +7 -7
  146. package/dist/test/unit/coerce.spec.js.map +1 -1
  147. package/dist/test/unit/config.spec.js +3 -1
  148. package/dist/test/unit/config.spec.js.map +1 -1
  149. package/dist/test/unit/connect-failure.spec.d.ts +1 -0
  150. package/dist/test/unit/connect-failure.spec.js +50 -0
  151. package/dist/test/unit/connect-failure.spec.js.map +1 -0
  152. package/dist/test/unit/connection.spec.js +16 -18
  153. package/dist/test/unit/connection.spec.js.map +1 -1
  154. package/dist/test/unit/convergence.spec.d.ts +1 -0
  155. package/dist/test/unit/convergence.spec.js +347 -0
  156. package/dist/test/unit/convergence.spec.js.map +1 -0
  157. package/dist/test/unit/cursors-fixture.d.ts +79 -0
  158. package/dist/test/unit/cursors-fixture.js +245 -0
  159. package/dist/test/unit/cursors-fixture.js.map +1 -0
  160. package/dist/test/unit/cursors.spec.js +138 -718
  161. package/dist/test/unit/cursors.spec.js.map +1 -1
  162. package/dist/test/unit/cursors.teardown.spec.d.ts +1 -0
  163. package/dist/test/unit/cursors.teardown.spec.js +322 -0
  164. package/dist/test/unit/cursors.teardown.spec.js.map +1 -0
  165. package/dist/test/unit/cursors.window.spec.d.ts +1 -0
  166. package/dist/test/unit/cursors.window.spec.js +78 -0
  167. package/dist/test/unit/cursors.window.spec.js.map +1 -0
  168. package/dist/test/unit/ddl-fixture.d.ts +5 -0
  169. package/dist/test/unit/ddl-fixture.js +19 -0
  170. package/dist/test/unit/ddl-fixture.js.map +1 -0
  171. package/dist/test/unit/ddl.spec.js +64 -366
  172. package/dist/test/unit/ddl.spec.js.map +1 -1
  173. package/dist/test/unit/expression-array-fixture.d.ts +17 -0
  174. package/dist/test/unit/expression-array-fixture.js +63 -0
  175. package/dist/test/unit/expression-array-fixture.js.map +1 -0
  176. package/dist/test/unit/expression-array-walk.spec.d.ts +1 -0
  177. package/dist/test/unit/expression-array-walk.spec.js +235 -0
  178. package/dist/test/unit/expression-array-walk.spec.js.map +1 -0
  179. package/dist/test/unit/expression-array.spec.js +48 -322
  180. package/dist/test/unit/expression-array.spec.js.map +1 -1
  181. package/dist/test/unit/expression-date.spec.js +4 -3
  182. package/dist/test/unit/expression-date.spec.js.map +1 -1
  183. package/dist/test/unit/expression-fixture.d.ts +15 -0
  184. package/dist/test/unit/expression-fixture.js +40 -0
  185. package/dist/test/unit/expression-fixture.js.map +1 -0
  186. package/dist/test/unit/expression-numeric.spec.js +10 -8
  187. package/dist/test/unit/expression-numeric.spec.js.map +1 -1
  188. package/dist/test/unit/expression-object.spec.js +3 -4
  189. package/dist/test/unit/expression-object.spec.js.map +1 -1
  190. package/dist/test/unit/expression-predicate.spec.d.ts +1 -0
  191. package/dist/test/unit/expression-predicate.spec.js +231 -0
  192. package/dist/test/unit/expression-predicate.spec.js.map +1 -0
  193. package/dist/test/unit/expression-stages.spec.js +0 -5
  194. package/dist/test/unit/expression-stages.spec.js.map +1 -1
  195. package/dist/test/unit/expression-string.spec.js +2 -5
  196. package/dist/test/unit/expression-string.spec.js.map +1 -1
  197. package/dist/test/unit/expression.spec.js +44 -292
  198. package/dist/test/unit/expression.spec.js.map +1 -1
  199. package/dist/test/unit/external-comparisons.spec.js +5 -5
  200. package/dist/test/unit/external-comparisons.spec.js.map +1 -1
  201. package/dist/test/unit/external-types.spec.js +2 -3
  202. package/dist/test/unit/external-types.spec.js.map +1 -1
  203. package/dist/test/unit/feeds.spec.js +40 -23
  204. package/dist/test/unit/feeds.spec.js.map +1 -1
  205. package/dist/test/unit/fields.spec.js +15 -9
  206. package/dist/test/unit/fields.spec.js.map +1 -1
  207. package/dist/test/unit/invalid-fixture.d.ts +3 -0
  208. package/dist/test/unit/invalid-fixture.js +11 -0
  209. package/dist/test/unit/invalid-fixture.js.map +1 -0
  210. package/dist/test/unit/payload.spec.js.map +1 -1
  211. package/dist/test/unit/pipeline-aggregate.spec.js +14 -14
  212. package/dist/test/unit/pipeline-aggregate.spec.js.map +1 -1
  213. package/dist/test/unit/pipeline-fixture.d.ts +25 -6
  214. package/dist/test/unit/pipeline-fixture.js +21 -11
  215. package/dist/test/unit/pipeline-fixture.js.map +1 -1
  216. package/dist/test/unit/pipeline-group-fixture.d.ts +2 -0
  217. package/dist/test/unit/pipeline-group-fixture.js +6 -0
  218. package/dist/test/unit/pipeline-group-fixture.js.map +1 -0
  219. package/dist/test/unit/pipeline-group.spec.js +15 -248
  220. package/dist/test/unit/pipeline-group.spec.js.map +1 -1
  221. package/dist/test/unit/pipeline-lookup.spec.js +13 -10
  222. package/dist/test/unit/pipeline-lookup.spec.js.map +1 -1
  223. package/dist/test/unit/pipeline-projection.spec.js +12 -13
  224. package/dist/test/unit/pipeline-projection.spec.js.map +1 -1
  225. package/dist/test/unit/pipeline-rows.spec.js +21 -18
  226. package/dist/test/unit/pipeline-rows.spec.js.map +1 -1
  227. package/dist/test/unit/pipeline-selection.spec.js +6 -4
  228. package/dist/test/unit/pipeline-selection.spec.js.map +1 -1
  229. package/dist/test/unit/pipeline-stages.spec.js +23 -35
  230. package/dist/test/unit/pipeline-stages.spec.js.map +1 -1
  231. package/dist/test/unit/pipeline-substream.spec.d.ts +1 -0
  232. package/dist/test/unit/pipeline-substream.spec.js +246 -0
  233. package/dist/test/unit/pipeline-substream.spec.js.map +1 -0
  234. package/dist/test/unit/pipeline.spec.js +1 -1
  235. package/dist/test/unit/query.spec.js +6 -2
  236. package/dist/test/unit/query.spec.js.map +1 -1
  237. package/dist/test/unit/reaper.spec.js +4 -3
  238. package/dist/test/unit/reaper.spec.js.map +1 -1
  239. package/dist/test/unit/relation.spec.js +37 -36
  240. package/dist/test/unit/relation.spec.js.map +1 -1
  241. package/dist/test/unit/result.spec.js +13 -11
  242. package/dist/test/unit/result.spec.js.map +1 -1
  243. package/dist/test/unit/row-source.spec.js +1 -1
  244. package/dist/test/unit/row-source.spec.js.map +1 -1
  245. package/dist/test/unit/schema.spec.js +5 -2
  246. package/dist/test/unit/schema.spec.js.map +1 -1
  247. package/dist/test/unit/selection.spec.js +7 -3
  248. package/dist/test/unit/selection.spec.js.map +1 -1
  249. package/dist/test/unit/types.spec.js +6 -6
  250. package/dist/test/unit/types.spec.js.map +1 -1
  251. package/dist/test/unit/writes-atomic.spec.js +2 -2
  252. package/dist/test/unit/writes-atomic.spec.js.map +1 -1
  253. package/dist/test/unit/writes-insert.spec.js +5 -4
  254. package/dist/test/unit/writes-insert.spec.js.map +1 -1
  255. package/dist/test/unit/writes-replace.spec.js +6 -6
  256. package/dist/test/unit/writes-replace.spec.js.map +1 -1
  257. package/dist/test/unit/writes-target.spec.js +3 -3
  258. package/dist/test/unit/writes-target.spec.js.map +1 -1
  259. package/dist/test/unit/writes-update-fixture.d.ts +9 -0
  260. package/dist/test/unit/writes-update-fixture.js +20 -0
  261. package/dist/test/unit/writes-update-fixture.js.map +1 -0
  262. package/dist/test/unit/writes-update-mapper.spec.d.ts +1 -0
  263. package/dist/test/unit/writes-update-mapper.spec.js +123 -0
  264. package/dist/test/unit/writes-update-mapper.spec.js.map +1 -0
  265. package/dist/test/unit/writes-update.spec.js +42 -171
  266. package/dist/test/unit/writes-update.spec.js.map +1 -1
  267. package/dist/test-external/catalog.test.js +11 -1
  268. package/dist/test-external/catalog.test.js.map +1 -1
  269. package/dist/test-external/native.test.js +8 -6
  270. package/dist/test-external/native.test.js.map +1 -1
  271. package/dist/test-external/reads.test.js +20 -22
  272. package/dist/test-external/reads.test.js.map +1 -1
  273. package/dist/test-external/refusals.test.js +45 -24
  274. package/dist/test-external/refusals.test.js.map +1 -1
  275. package/dist/test-external/registration.test.js +4 -2
  276. package/dist/test-external/registration.test.js.map +1 -1
  277. package/dist/test-external/sales.d.ts +9 -2
  278. package/dist/test-external/sales.js.map +1 -1
  279. package/dist/test-external/unreachable.test.d.ts +1 -0
  280. package/dist/test-external/unreachable.test.js +83 -0
  281. package/dist/test-external/unreachable.test.js.map +1 -0
  282. package/dist/test-external/writes.test.js +71 -37
  283. package/dist/test-external/writes.test.js.map +1 -1
  284. package/package.json +19 -6
@@ -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":";;;;;;AAwHA,kCAQC;AAYD,4BAEC;AAiCD,wBAGC;AAsBD,wBAUC;AAkDD,0BAOC;AAGD,0BAKC;AAnRD,8DAAiC;AAGjC,mCAAmE;AACnE,+BAAyD;AACzD,qCAA2E;AAC3E,6CAA6C;AAC7C,yCAOoB;AAGpB,SAAS,eAAe,CAAC,QAAkB,EAAE,KAAiB;IAC5D,OAAO,IAAA,0BAAa,EAAC,KAAK,CAAC,CAAC,GAAG,CAC7B,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,IAAA,qBAAe,EAAC,IAAI,CAAC,EAAE,CAC3E,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,QAAkB;IACpC,MAAM,MAAM,GAAG,IAAA,wBAAa,EAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC1B,OAAO,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,QAAQ,GAAG,IAAA,wBAAe,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAA,sBAAa,EAC3B,iBAAS,EACT,uBAAe,EACf,QAAQ,EACR,oBAAY,CACb,CAAC;IACF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,qBAAe,EAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,UAAU,CAAC,QAAkB;IACpC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,GAAG,UAAU,CAAC,GAAG,OAAO,IAAA,qBAAe,EAAC,wBAAa,CAAC,EAAE,CAAC;AAClE,CAAC;AAID,SAAS,YAAY,CAAC,QAAkB;IACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,OAAO,UAAU,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;AACrD,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,KAAa;IAC3C,OAAO,GAAG,IAAI,OAAO,IAAA,qBAAe,EAAC,KAAK,CAAC,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,UAAU,CAAC,QAAkB;IACpC,OAAO,QAAQ,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,UAAU,CAAC,IAAgB;IAClC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;AACzE,CAAC;AAED,SAAS,WAAW,CAAC,QAAkB;IACrC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,WAAW,CAAC,QAAkB;IACrC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,aAAa,CAAC,QAAkB;IACvC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,YAAY,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED,SAAS,UAAU,CAAC,QAAkB;IACpC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAChC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAC5D,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,aAAa,CAAC,QAAkB;IACvC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACnC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,KAAK,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,eAAe,GAAG,MAAM,CAAC;AAmB/B,SAAgB,WAAW,CAAC,QAAkB;IAC5C,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAA,qBAAM,EACJ,KAAK,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EACnD,uFAAuF,CACxF,CAAC;IACF,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC;IACtB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,OAAO,GAAG,GAAG,CAAC;AAUpB,SAAgB,QAAQ,CAAC,GAAW;IAClC,OAAO,KAAK,GAAG,YAAY,CAAC;AAC9B,CAAC;AAUY,QAAA,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;AAE5C,SAAS,WAAW,CAAC,QAAkB;IACrC,OAAO,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,KAAK,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,YAAY,CAAC,QAAkB;IACtC,OAAO,QAAQ,CAAC,MAAM,KAAK,SAAS;QAClC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,UAAU,QAAQ,CAAC,MAAM,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,OAAO,GAAoB;IAC/B,YAAY;IACZ,UAAU;IACV,WAAW;IACX,WAAW;IACX,aAAa;IACb,aAAa;IACb,WAAW;IACX,YAAY;CACb,CAAC;AAEF,SAAgB,MAAM,CAAC,QAAkB;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC;AAsBD,SAAgB,MAAM,CAAC,QAAkB,EAAE,OAAwB;IACjE,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;IACrC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,MAAM,OAAO,GAAG,UAAU;QACxB,CAAC,CAAC,IAAA,wBAAa,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC;QAC7C,CAAC,CAAC,IAAA,wBAAa,EAAC,IAAI,EAAE,KAAK,EAAE,IAAA,wBAAa,EAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClE,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IACjC,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IACjC,OAAO,OAAO,CAAC;AACjB,CAAC;AAwBY,QAAA,cAAc,GAA4B;IACrD,YAAY;IACZ,OAAO;IACP,QAAQ;IACR,UAAU;IACV,YAAY;CACb,CAAC;AAIF,MAAM,eAAe,GAA4C;IAC/D,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS;IAC3D,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS;IACjD,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS;IACnD,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ;IACzC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;IAClD,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU;CAC9C,CAAC;AASF,SAAgB,OAAO,CACrB,QAAkB,EAClB,SAAkC,EAClC,OAAwB;IAExB,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1E,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxD,CAAC;AAGD,SAAgB,OAAO,CACrB,QAAkB,EAClB,KAA8B;IAE9B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/D,CAAC"}
@@ -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>;
@@ -3,38 +3,37 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ReviveValue = ReviveValue;
4
4
  exports.DecodeRow = DecodeRow;
5
5
  const utils_1 = require("./utils");
6
+ const guards_1 = require("./guards");
6
7
  function ReviveTimestamp(value) {
7
8
  if (value instanceof Date) {
8
9
  return value;
9
10
  }
10
- const date = typeof value === "number" ? new Date(value) : new Date(String(value));
11
+ const date = (0, guards_1.IsNumber)(value) ? new Date(value) : new Date(String(value));
11
12
  return Number.isNaN(date.getTime()) ? value : date;
12
13
  }
13
- const REVIVERS = {
14
- timestamp: (value) => ReviveTimestamp(value),
15
- array: (value, type) => Array.isArray(value)
16
- ? value.map((item) => ReviveValue(item, type.elem))
17
- : value,
18
- json: (value, type) => ReviveShape(value, type.shape),
19
- };
20
14
  function ReviveValue(value, type) {
21
15
  if (value === null || value === undefined) {
22
16
  return value;
23
17
  }
24
- const reviver = REVIVERS[type.kind];
25
- return reviver ? reviver(value, type) : value;
18
+ switch (type.kind) {
19
+ case "timestamp":
20
+ return ReviveTimestamp(value);
21
+ case "array":
22
+ return Array.isArray(value)
23
+ ? value.map((item) => ReviveValue(item, type.elem))
24
+ : value;
25
+ case "json":
26
+ return ReviveKeyTypes(value, type.keys);
27
+ default:
28
+ return value;
29
+ }
26
30
  }
27
- function ReviveShape(value, shape) {
28
- if (!shape ||
29
- typeof value !== "object" ||
30
- value === null ||
31
- Array.isArray(value)) {
31
+ function ReviveKeyTypes(value, keyTypes) {
32
+ if (!keyTypes || !(0, guards_1.IsDocument)(value)) {
32
33
  return value;
33
34
  }
34
- const result = {
35
- ...value,
36
- };
37
- for (const [name, type] of Object.entries(shape)) {
35
+ const result = { ...value };
36
+ for (const [name, type] of Object.entries(keyTypes)) {
38
37
  if (Object.hasOwn(result, name)) {
39
38
  result[name] = ReviveValue(result[name], type);
40
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../../../src/implementations/database/result.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../../src/implementations/database/result.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import { type TableShape } from "./fields";
1
+ import { type TableModel } from "./fields";
2
2
  import { type Compiled } from "./sql";
3
- import { type SqlShape, type SqlType } from "./types";
3
+ import { type KeyTypes, type SqlType } from "./types";
4
4
  export interface RowSource {
5
5
  field(name: string, def?: Compiled): Compiled;
6
6
  dynamicField(key: Compiled, def?: Compiled): Compiled;
7
7
  toJson(): Compiled;
8
- shape(): SqlShape | undefined;
8
+ keyTypes(): KeyTypes | undefined;
9
9
  presence?(): string;
10
10
  }
11
11
  export interface DocumentMember extends Compiled {
@@ -18,14 +18,14 @@ export declare function LoggedColumns(row: string): ColumnAddress;
18
18
  export declare class ColumnRowSource implements RowSource {
19
19
  private readonly address;
20
20
  private readonly table;
21
- constructor(address: ColumnAddress, table: TableShape);
21
+ constructor(address: ColumnAddress, table: TableModel);
22
22
  field(name: string, def?: Compiled): Compiled;
23
23
  private instance;
24
24
  private overflow;
25
25
  dynamicField(key: Compiled, def?: Compiled): Compiled;
26
26
  private members;
27
27
  toJson(): Compiled;
28
- shape(): SqlShape;
28
+ keyTypes(): KeyTypes;
29
29
  }
30
30
  export declare class NullableRowSource implements RowSource {
31
31
  private readonly inner;
@@ -33,7 +33,7 @@ export declare class NullableRowSource implements RowSource {
33
33
  field(name: string, def?: Compiled): Compiled;
34
34
  dynamicField(key: Compiled, def?: Compiled): Compiled;
35
35
  toJson(): Compiled;
36
- shape(): SqlShape | undefined;
36
+ keyTypes(): KeyTypes | undefined;
37
37
  }
38
38
  export declare class JsonRowSource implements RowSource {
39
39
  private readonly value;
@@ -42,15 +42,15 @@ export declare class JsonRowSource implements RowSource {
42
42
  dynamicField(key: Compiled, def?: Compiled): Compiled;
43
43
  private fieldType;
44
44
  toJson(): Compiled;
45
- shape(): SqlShape | undefined;
45
+ keyTypes(): KeyTypes | undefined;
46
46
  }
47
- export declare function ExternalNames(shape: TableShape): string[];
47
+ export declare function ExternalNames(model: TableModel): string[];
48
48
  export type ExternalReads = "table" | "output";
49
49
  export declare class ExternalRowSource implements RowSource {
50
50
  private readonly alias;
51
51
  private readonly table;
52
52
  private readonly reads;
53
- constructor(alias: string, table: TableShape, reads: ExternalReads);
53
+ constructor(alias: string, table: TableModel, reads: ExternalReads);
54
54
  private column;
55
55
  private key;
56
56
  private native;
@@ -59,6 +59,6 @@ export declare class ExternalRowSource implements RowSource {
59
59
  dynamicField(key: Compiled, def?: Compiled): Compiled;
60
60
  private members;
61
61
  toJson(): Compiled;
62
- shape(): SqlShape;
62
+ keyTypes(): KeyTypes;
63
63
  presence(): string;
64
64
  }
@@ -13,12 +13,12 @@ const external_types_1 = require("./external-types");
13
13
  const sql_1 = require("./sql");
14
14
  const types_1 = require("./types");
15
15
  const DEFAULT_INSTANCE_SQL = (0, sql_1.QuoteLiteral)(utils_1.DEFAULT_INSTANCE_ID);
16
- function MemberShape(members) {
17
- const shape = {};
16
+ function MemberKeyTypes(members) {
17
+ const keyTypes = {};
18
18
  for (const member of members) {
19
- shape[member.name] = member.type;
19
+ keyTypes[member.name] = member.type;
20
20
  }
21
- return shape;
21
+ return keyTypes;
22
22
  }
23
23
  function ContainerMember(member) {
24
24
  const built = `jsonb_build_object(${(0, sql_1.QuoteLiteral)(member.name)}, ${member.sql})`;
@@ -39,7 +39,10 @@ function BuildDocument(members, overflow) {
39
39
  if (overflow) {
40
40
  parts.push(overflow);
41
41
  }
42
- return { sql: `(${parts.join(" || ")})`, type: (0, types_1.JsonOf)(MemberShape(members)) };
42
+ return {
43
+ sql: `(${parts.join(" || ")})`,
44
+ type: (0, types_1.JsonOf)(MemberKeyTypes(members)),
45
+ };
43
46
  }
44
47
  function KeySubject(name) {
45
48
  return `The default for key '${name}'`;
@@ -100,8 +103,8 @@ class ColumnRowSource {
100
103
  const overflow = `COALESCE(${this.overflow()}, '{}'::jsonb)`;
101
104
  return BuildDocument(this.members(), overflow);
102
105
  }
103
- shape() {
104
- return MemberShape(this.members());
106
+ keyTypes() {
107
+ return MemberKeyTypes(this.members());
105
108
  }
106
109
  }
107
110
  exports.ColumnRowSource = ColumnRowSource;
@@ -125,8 +128,8 @@ class NullableRowSource {
125
128
  type: document.type,
126
129
  };
127
130
  }
128
- shape() {
129
- return this.inner.shape();
131
+ keyTypes() {
132
+ return this.inner.keyTypes();
130
133
  }
131
134
  }
132
135
  exports.NullableRowSource = NullableRowSource;
@@ -146,23 +149,23 @@ class JsonRowSource {
146
149
  return (0, coerce_1.WithDefault)({ sql: `(${this.toJson().sql} -> ${(0, coerce_1.Cast)(key, types_1.TEXT).sql})`, type: types_1.OPAQUE }, def);
147
150
  }
148
151
  fieldType(name) {
149
- const shape = this.shape();
150
- if (!shape || !Object.hasOwn(shape, name)) {
152
+ const keyTypes = this.keyTypes();
153
+ if (!keyTypes || !Object.hasOwn(keyTypes, name)) {
151
154
  return types_1.OPAQUE;
152
155
  }
153
- return shape[name];
156
+ return keyTypes[name];
154
157
  }
155
158
  toJson() {
156
159
  return (0, coerce_1.Cast)(this.value, this.value.type.kind === "json" ? this.value.type : types_1.OPAQUE);
157
160
  }
158
- shape() {
159
- return (0, types_1.ShapeOf)(this.value.type);
161
+ keyTypes() {
162
+ return (0, types_1.KeyTypesOf)(this.value.type);
160
163
  }
161
164
  }
162
165
  exports.JsonRowSource = JsonRowSource;
163
- function ExternalNames(shape) {
164
- const declared = Object.keys(shape.fields);
165
- return shape.external?.key ? [utils_1.ID_COLUMN, ...declared] : declared;
166
+ function ExternalNames(model) {
167
+ const declared = Object.keys(model.fields);
168
+ return model.external?.key ? [utils_1.ID_COLUMN, ...declared] : declared;
166
169
  }
167
170
  function JsonKeyOf(other) {
168
171
  return `((CASE WHEN pg_input_is_valid(${other}, 'jsonb') THEN ${other} END)::jsonb)`;
@@ -268,8 +271,8 @@ class ExternalRowSource {
268
271
  toJson() {
269
272
  return BuildDocument(this.members());
270
273
  }
271
- shape() {
272
- return MemberShape(this.members());
274
+ keyTypes() {
275
+ return MemberKeyTypes(this.members());
273
276
  }
274
277
  presence() {
275
278
  return `(${(0, sql_1.QuoteIdentifier)(this.alias)} IS DISTINCT FROM NULL)`;
@@ -1 +1 @@
1
- {"version":3,"file":"row-source.js","sourceRoot":"","sources":["../../../src/implementations/database/row-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"row-source.js","sourceRoot":"","sources":["../../../src/implementations/database/row-source.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { IndexDefinition, SchemaDefinition, TableDefinition } from "@antelopejs/interface-database/schema";
2
- import { type TableShape } from "./fields";
2
+ import { type TableModel } from "./fields";
3
3
  export type CrossInstanceScanNotice = (indexId: string) => void;
4
4
  export declare const Schemas: {
5
5
  register(schemaId: string, schema: SchemaDefinition): Promise<void>;
@@ -8,8 +8,9 @@ export declare const Schemas: {
8
8
  export declare function WaitForSchemaReady(schemaId: string): Promise<void>;
9
9
  export declare function GetSchema(schemaId: string): SchemaDefinition;
10
10
  export declare function GetTable(schemaId: string, tableId: string): TableDefinition;
11
- export declare function GetTableShape(schemaId: string, tableId: string): TableShape;
11
+ export declare function GetTableModel(schemaId: string, tableId: string): TableModel;
12
12
  export declare function GetTableNames(schemaId: string): string[];
13
13
  export declare function GetIndex(schemaId: string, tableId: string, indexId: string, onlyIndex?: boolean): IndexDefinition;
14
14
  export declare function GetCrossInstanceScanNotice(schemaId: string, tableId: string): CrossInstanceScanNotice;
15
15
  export declare function WaitForIndexes(schemaId: string): Promise<void>;
16
+ export declare function WaitForUniqueIndexes(schemaId: string): Promise<void>;
@@ -7,11 +7,12 @@ exports.Schemas = void 0;
7
7
  exports.WaitForSchemaReady = WaitForSchemaReady;
8
8
  exports.GetSchema = GetSchema;
9
9
  exports.GetTable = GetTable;
10
- exports.GetTableShape = GetTableShape;
10
+ exports.GetTableModel = GetTableModel;
11
11
  exports.GetTableNames = GetTableNames;
12
12
  exports.GetIndex = GetIndex;
13
13
  exports.GetCrossInstanceScanNotice = GetCrossInstanceScanNotice;
14
14
  exports.WaitForIndexes = WaitForIndexes;
15
+ exports.WaitForUniqueIndexes = WaitForUniqueIndexes;
15
16
  const node_assert_1 = __importDefault(require("node:assert"));
16
17
  const logger_1 = require("../../logger");
17
18
  const config_1 = require("../../config");
@@ -20,16 +21,17 @@ const ddl_1 = require("./ddl");
20
21
  const migrate_1 = require("./migrate");
21
22
  const fields_1 = require("./fields");
22
23
  const definitions = {};
23
- const shapes = {};
24
+ const schemaModels = {};
24
25
  const scanNotices = {};
25
26
  const ready = {};
26
27
  const indexing = {};
28
+ const guardedWrites = new Set();
27
29
  function UnservedScanWarning(schemaId, tableId, indexId) {
28
30
  return `A CROSS_INSTANCE query on '${schemaId}.${tableId}' scans index '${indexId}', which is not declared crossInstance: its physical index leads with the instance, so the query stays correct but may be slow. Set crossInstance: true on the index to keep such queries fast`;
29
31
  }
30
- function UnservedIndexes(table, shape) {
32
+ function UnservedIndexes(table, model) {
31
33
  const indexes = Object.entries(table.indexes ?? {});
32
- const unserved = indexes.filter(([indexId, index]) => !(0, ddl_1.ServesCrossInstance)(indexId, index, shape));
34
+ const unserved = indexes.filter(([indexId, index]) => !(0, ddl_1.ServesCrossInstance)(indexId, index, model));
33
35
  return new Set(unserved.map(([indexId]) => indexId));
34
36
  }
35
37
  function ScanNotice(schemaId, tableId, unserved) {
@@ -39,10 +41,10 @@ function ScanNotice(schemaId, tableId, unserved) {
39
41
  }
40
42
  };
41
43
  }
42
- function SchemaScanNotices(schemaId, schema, shape) {
44
+ function SchemaScanNotices(schemaId, schema, model) {
43
45
  const notices = {};
44
46
  for (const [tableId, table] of Object.entries(schema)) {
45
- const unserved = UnservedIndexes(table, shape[tableId]);
47
+ const unserved = UnservedIndexes(table, model[tableId]);
46
48
  notices[tableId] = ScanNotice(schemaId, tableId, unserved);
47
49
  }
48
50
  return notices;
@@ -56,19 +58,26 @@ function QuietNotices(schema) {
56
58
  return notices;
57
59
  }
58
60
  async function InitializeExternal(schemaId, schema, parsed) {
59
- shapes[schemaId] = await (0, external_schema_1.DescribeExternalSchema)(schemaId, schema, parsed);
61
+ schemaModels[schemaId] = await (0, external_schema_1.DescribeExternalSchema)(schemaId, schema, parsed);
60
62
  scanNotices[schemaId] = QuietNotices(schema);
61
63
  }
62
64
  async function initialize(schemaId, schema) {
63
- const shape = (0, fields_1.ParseSchema)(schemaId, schema);
65
+ const model = (0, fields_1.ParseSchema)(schemaId, schema);
64
66
  if ((0, config_1.IsExternal)()) {
65
- await InitializeExternal(schemaId, schema, shape);
67
+ await InitializeExternal(schemaId, schema, model);
66
68
  return;
67
69
  }
68
- shapes[schemaId] = shape;
69
- scanNotices[schemaId] = SchemaScanNotices(schemaId, schema, shape);
70
- const plans = await (0, migrate_1.ConvergeTables)(schemaId, schema, shape);
70
+ schemaModels[schemaId] = model;
71
+ scanNotices[schemaId] = SchemaScanNotices(schemaId, schema, model);
72
+ const plans = await (0, migrate_1.ConvergeTables)(schemaId, schema, model);
71
73
  indexing[schemaId] = (0, migrate_1.BuildIndexes)(schemaId, plans);
74
+ guardedWrites.delete(schemaId);
75
+ if (DeclaresUniqueIndex(schema)) {
76
+ guardedWrites.add(schemaId);
77
+ }
78
+ }
79
+ function DeclaresUniqueIndex(schema) {
80
+ return Object.values(schema).some((table) => Object.values(table.indexes ?? {}).some((index) => index.unique === true));
72
81
  }
73
82
  exports.Schemas = {
74
83
  register(schemaId, schema) {
@@ -76,8 +85,9 @@ exports.Schemas = {
76
85
  const pending = initialize(schemaId, schema).catch((err) => {
77
86
  if (ready[schemaId] === pending) {
78
87
  delete definitions[schemaId];
79
- delete shapes[schemaId];
88
+ delete schemaModels[schemaId];
80
89
  delete scanNotices[schemaId];
90
+ guardedWrites.delete(schemaId);
81
91
  }
82
92
  throw err;
83
93
  });
@@ -87,10 +97,11 @@ exports.Schemas = {
87
97
  },
88
98
  unregister(schemaId) {
89
99
  delete definitions[schemaId];
90
- delete shapes[schemaId];
100
+ delete schemaModels[schemaId];
91
101
  delete scanNotices[schemaId];
92
102
  delete ready[schemaId];
93
103
  delete indexing[schemaId];
104
+ guardedWrites.delete(schemaId);
94
105
  },
95
106
  };
96
107
  function MissingSchema(schemaId) {
@@ -111,11 +122,11 @@ function GetTable(schemaId, tableId) {
111
122
  (0, node_assert_1.default)(Object.hasOwn(schema, tableId), MissingTable(schemaId, tableId));
112
123
  return schema[tableId];
113
124
  }
114
- function GetTableShape(schemaId, tableId) {
115
- (0, node_assert_1.default)(Object.hasOwn(shapes, schemaId), MissingSchema(schemaId));
116
- const shape = shapes[schemaId];
117
- (0, node_assert_1.default)(Object.hasOwn(shape, tableId), MissingTable(schemaId, tableId));
118
- return shape[tableId];
125
+ function GetTableModel(schemaId, tableId) {
126
+ (0, node_assert_1.default)(Object.hasOwn(schemaModels, schemaId), MissingSchema(schemaId));
127
+ const model = schemaModels[schemaId];
128
+ (0, node_assert_1.default)(Object.hasOwn(model, tableId), MissingTable(schemaId, tableId));
129
+ return model[tableId];
119
130
  }
120
131
  function GetTableNames(schemaId) {
121
132
  return Object.keys(GetSchema(schemaId));
@@ -140,4 +151,9 @@ async function WaitForIndexes(schemaId) {
140
151
  await indexing[schemaId];
141
152
  }
142
153
  }
154
+ async function WaitForUniqueIndexes(schemaId) {
155
+ if (guardedWrites.has(schemaId)) {
156
+ await WaitForIndexes(schemaId);
157
+ }
158
+ }
143
159
  //# sourceMappingURL=schema.js.map