@lix-js/sdk 0.6.0-preview.4 → 0.6.0-preview.5

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 (234) hide show
  1. package/README.md +1 -1
  2. package/SKILL.md +65 -64
  3. package/dist/engine-wasm/index.js +4 -4
  4. package/dist/engine-wasm/wasm/lix_engine.d.ts +5 -5
  5. package/dist/engine-wasm/wasm/lix_engine.js +130 -118
  6. package/dist/engine-wasm/wasm/lix_engine.wasm +0 -0
  7. package/dist/engine-wasm/wasm/lix_engine.wasm.d.ts +9 -8
  8. package/dist/generated/builtin-schemas.d.ts +69 -69
  9. package/dist/generated/builtin-schemas.js +94 -94
  10. package/dist/open-lix.d.ts +33 -26
  11. package/dist/open-lix.js +10 -10
  12. package/dist/sqlite/index.js +86 -30
  13. package/dist-engine-src/README.md +3 -3
  14. package/dist-engine-src/src/backend/capabilities.rs +67 -0
  15. package/dist-engine-src/src/backend/conformance/baseline.rs +1127 -0
  16. package/dist-engine-src/src/backend/conformance/factory.rs +93 -0
  17. package/dist-engine-src/src/backend/conformance/failure_tests.rs +608 -0
  18. package/dist-engine-src/src/backend/conformance/fixtures.rs +26 -0
  19. package/dist-engine-src/src/backend/conformance/mod.rs +75 -0
  20. package/dist-engine-src/src/backend/conformance/model.rs +28 -0
  21. package/dist-engine-src/src/backend/conformance/model_based.rs +257 -0
  22. package/dist-engine-src/src/backend/conformance/persistence.rs +204 -0
  23. package/dist-engine-src/src/backend/conformance/projection.rs +21 -0
  24. package/dist-engine-src/src/backend/conformance/pushdown.rs +24 -0
  25. package/dist-engine-src/src/backend/conformance/runner.rs +90 -0
  26. package/dist-engine-src/src/backend/conformance/scan.rs +24 -0
  27. package/dist-engine-src/src/backend/conformance/write.rs +16 -0
  28. package/dist-engine-src/src/backend/error.rs +94 -0
  29. package/dist-engine-src/src/backend/in_memory.rs +670 -0
  30. package/dist-engine-src/src/backend/mod.rs +36 -9
  31. package/dist-engine-src/src/backend/predicate.rs +80 -0
  32. package/dist-engine-src/src/backend/traits.rs +260 -0
  33. package/dist-engine-src/src/backend/types.rs +224 -81
  34. package/dist-engine-src/src/binary_cas/context.rs +8 -8
  35. package/dist-engine-src/src/binary_cas/kv.rs +234 -259
  36. package/dist-engine-src/src/{version → branch}/context.rs +12 -12
  37. package/dist-engine-src/src/branch/lifecycle.rs +221 -0
  38. package/dist-engine-src/src/branch/mod.rs +13 -0
  39. package/dist-engine-src/src/branch/refs.rs +321 -0
  40. package/dist-engine-src/src/branch/stage_rows.rs +67 -0
  41. package/dist-engine-src/src/branch/types.rs +21 -0
  42. package/dist-engine-src/src/catalog/context.rs +18 -18
  43. package/dist-engine-src/src/catalog/snapshot.rs +8 -8
  44. package/dist-engine-src/src/changelog/bench_support.rs +785 -0
  45. package/dist-engine-src/src/changelog/change.rs +1 -0
  46. package/dist-engine-src/src/changelog/codec.rs +497 -0
  47. package/dist-engine-src/src/changelog/commit.rs +1 -0
  48. package/dist-engine-src/src/changelog/context.rs +1614 -0
  49. package/dist-engine-src/src/changelog/mod.rs +29 -0
  50. package/dist-engine-src/src/changelog/store.rs +163 -0
  51. package/dist-engine-src/src/changelog/test_support.rs +54 -0
  52. package/dist-engine-src/src/changelog/types.rs +213 -0
  53. package/dist-engine-src/src/commit_graph/context.rs +317 -274
  54. package/dist-engine-src/src/commit_graph/mod.rs +2 -4
  55. package/dist-engine-src/src/commit_graph/types.rs +22 -42
  56. package/dist-engine-src/src/commit_graph/walker.rs +133 -103
  57. package/dist-engine-src/src/common/error.rs +52 -18
  58. package/dist-engine-src/src/common/identity.rs +2 -2
  59. package/dist-engine-src/src/common/mod.rs +1 -1
  60. package/dist-engine-src/src/domain.rs +42 -46
  61. package/dist-engine-src/src/engine.rs +74 -96
  62. package/dist-engine-src/src/{entity_identity.rs → entity_pk.rs} +89 -92
  63. package/dist-engine-src/src/functions/context.rs +56 -52
  64. package/dist-engine-src/src/functions/state.rs +51 -52
  65. package/dist-engine-src/src/init.rs +288 -154
  66. package/dist-engine-src/src/json_store/context.rs +15 -266
  67. package/dist-engine-src/src/json_store/mod.rs +26 -0
  68. package/dist-engine-src/src/json_store/store.rs +103 -718
  69. package/dist-engine-src/src/json_store/types.rs +4 -9
  70. package/dist-engine-src/src/lib.rs +49 -19
  71. package/dist-engine-src/src/live_state/context.rs +654 -790
  72. package/dist-engine-src/src/live_state/mod.rs +9 -3
  73. package/dist-engine-src/src/live_state/overlay.rs +4 -4
  74. package/dist-engine-src/src/live_state/types.rs +30 -21
  75. package/dist-engine-src/src/live_state/visibility.rs +514 -71
  76. package/dist-engine-src/src/plugin/install.rs +48 -48
  77. package/dist-engine-src/src/plugin/manifest.rs +7 -7
  78. package/dist-engine-src/src/plugin/materializer.rs +0 -275
  79. package/dist-engine-src/src/plugin/plugin_manifest.json +4 -3
  80. package/dist-engine-src/src/schema/builtin/lix_binary_blob_ref.json +2 -2
  81. package/dist-engine-src/src/schema/builtin/lix_branch_descriptor.json +34 -0
  82. package/dist-engine-src/src/schema/builtin/lix_branch_ref.json +48 -0
  83. package/dist-engine-src/src/schema/builtin/lix_change.json +3 -3
  84. package/dist-engine-src/src/schema/builtin/lix_commit.json +1 -1
  85. package/dist-engine-src/src/schema/builtin/lix_label_assignment.json +6 -6
  86. package/dist-engine-src/src/schema/builtin/mod.rs +18 -20
  87. package/dist-engine-src/src/schema/compatibility.rs +11 -11
  88. package/dist-engine-src/src/schema/definition.json +2 -2
  89. package/dist-engine-src/src/schema/definition.rs +5 -5
  90. package/dist-engine-src/src/schema/key.rs +3 -3
  91. package/dist-engine-src/src/schema/mod.rs +1 -1
  92. package/dist-engine-src/src/schema/tests.rs +18 -18
  93. package/dist-engine-src/src/session/context.rs +803 -148
  94. package/dist-engine-src/src/session/create_branch.rs +94 -0
  95. package/dist-engine-src/src/session/execute.rs +223 -83
  96. package/dist-engine-src/src/session/merge/analysis.rs +9 -3
  97. package/dist-engine-src/src/session/merge/{version.rs → branch.rs} +119 -129
  98. package/dist-engine-src/src/session/merge/conflicts.rs +2 -2
  99. package/dist-engine-src/src/session/merge/mod.rs +5 -6
  100. package/dist-engine-src/src/session/merge/stats.rs +7 -11
  101. package/dist-engine-src/src/session/mod.rs +15 -12
  102. package/dist-engine-src/src/session/switch_branch.rs +113 -0
  103. package/dist-engine-src/src/session/transaction.rs +495 -14
  104. package/dist-engine-src/src/sql2/{classify.rs → bind/classify.rs} +3 -75
  105. package/dist-engine-src/src/sql2/bind/error.rs +5 -0
  106. package/dist-engine-src/src/sql2/bind/expr.rs +29 -0
  107. package/dist-engine-src/src/sql2/bind/mod.rs +12 -0
  108. package/dist-engine-src/src/sql2/{udfs/public_call.rs → bind/public_udf.rs} +71 -3
  109. package/dist-engine-src/src/sql2/bind/read.rs +65 -0
  110. package/dist-engine-src/src/sql2/bind/statement.rs +2236 -0
  111. package/dist-engine-src/src/sql2/bind/table.rs +273 -0
  112. package/dist-engine-src/src/sql2/bind/write.rs +86 -0
  113. package/dist-engine-src/src/sql2/branch_scope.rs +436 -0
  114. package/dist-engine-src/src/sql2/catalog/capability.rs +20 -0
  115. package/dist-engine-src/src/sql2/catalog/entity_surface.rs +296 -0
  116. package/dist-engine-src/src/sql2/catalog/mod.rs +15 -0
  117. package/dist-engine-src/src/sql2/catalog/registry.rs +556 -0
  118. package/dist-engine-src/src/sql2/catalog/schema.rs +88 -0
  119. package/dist-engine-src/src/sql2/catalog/surface.rs +41 -0
  120. package/dist-engine-src/src/sql2/change_materialization.rs +122 -0
  121. package/dist-engine-src/src/sql2/context.rs +36 -30
  122. package/dist-engine-src/src/sql2/error.rs +1 -1
  123. package/dist-engine-src/src/sql2/exec/bound_public_write.rs +1593 -0
  124. package/dist-engine-src/src/sql2/exec/datafusion.rs +5266 -0
  125. package/dist-engine-src/src/sql2/exec/fast_write.rs +82 -0
  126. package/dist-engine-src/src/sql2/exec/mod.rs +24 -0
  127. package/dist-engine-src/src/sql2/exec/write.rs +661 -0
  128. package/dist-engine-src/src/sql2/filesystem_planner.rs +72 -77
  129. package/dist-engine-src/src/sql2/filesystem_visibility.rs +21 -21
  130. package/dist-engine-src/src/sql2/history_projection.rs +8 -8
  131. package/dist-engine-src/src/sql2/history_route.rs +35 -31
  132. package/dist-engine-src/src/sql2/mod.rs +28 -23
  133. package/dist-engine-src/src/sql2/optimize/datafusion.rs +1 -0
  134. package/dist-engine-src/src/sql2/optimize/mod.rs +2 -0
  135. package/dist-engine-src/src/sql2/optimize/simple_write.rs +116 -0
  136. package/dist-engine-src/src/sql2/parse/mod.rs +69 -0
  137. package/dist-engine-src/src/sql2/parse/normalize.rs +1 -0
  138. package/dist-engine-src/src/sql2/plan/branch_scope.rs +24 -0
  139. package/dist-engine-src/src/sql2/plan/mod.rs +5 -0
  140. package/dist-engine-src/src/sql2/plan/predicate.rs +22 -0
  141. package/dist-engine-src/src/sql2/plan/write.rs +147 -0
  142. package/dist-engine-src/src/sql2/predicate_typecheck.rs +258 -0
  143. package/dist-engine-src/src/sql2/{version_provider.rs → providers/branch.rs} +218 -214
  144. package/dist-engine-src/src/sql2/{change_provider.rs → providers/change.rs} +156 -42
  145. package/dist-engine-src/src/sql2/{directory_provider.rs → providers/directory.rs} +291 -322
  146. package/dist-engine-src/src/sql2/{directory_history_provider.rs → providers/directory_history.rs} +56 -42
  147. package/dist-engine-src/src/sql2/providers/entity.rs +1484 -0
  148. package/dist-engine-src/src/sql2/{entity_history_provider.rs → providers/entity_history.rs} +43 -31
  149. package/dist-engine-src/src/sql2/{file_provider.rs → providers/file.rs} +323 -316
  150. package/dist-engine-src/src/sql2/{file_history_provider.rs → providers/file_history.rs} +60 -46
  151. package/dist-engine-src/src/sql2/{history_provider.rs → providers/history.rs} +46 -32
  152. package/dist-engine-src/src/sql2/{lix_state_provider.rs → providers/lix_state.rs} +359 -329
  153. package/dist-engine-src/src/sql2/providers/mod.rs +508 -0
  154. package/dist-engine-src/src/sql2/read_only.rs +2 -2
  155. package/dist-engine-src/src/sql2/session.rs +47 -96
  156. package/dist-engine-src/src/sql2/storage/constraints.rs +1 -0
  157. package/dist-engine-src/src/sql2/storage/mod.rs +1 -0
  158. package/dist-engine-src/src/sql2/test_support/differential.rs +712 -0
  159. package/dist-engine-src/src/sql2/test_support/generators.rs +354 -0
  160. package/dist-engine-src/src/sql2/test_support/mod.rs +2 -0
  161. package/dist-engine-src/src/sql2/udfs/{lix_active_version_commit_id.rs → lix_active_branch_commit_id.rs} +7 -7
  162. package/dist-engine-src/src/sql2/udfs/mod.rs +3 -6
  163. package/dist-engine-src/src/sql2/write_normalization.rs +45 -22
  164. package/dist-engine-src/src/storage/conformance.rs +399 -0
  165. package/dist-engine-src/src/storage/context.rs +552 -288
  166. package/dist-engine-src/src/storage/mod.rs +48 -10
  167. package/dist-engine-src/src/storage/point.rs +440 -0
  168. package/dist-engine-src/src/storage/read_scope.rs +43 -64
  169. package/dist-engine-src/src/storage/reader.rs +867 -0
  170. package/dist-engine-src/src/storage/scan.rs +784 -0
  171. package/dist-engine-src/src/storage/spaces.rs +236 -0
  172. package/dist-engine-src/src/storage/stats.rs +80 -0
  173. package/dist-engine-src/src/storage/write_set.rs +962 -0
  174. package/dist-engine-src/src/storage_bench.rs +136 -4828
  175. package/dist-engine-src/src/test_support.rs +360 -138
  176. package/dist-engine-src/src/tracked_state/bench_support.rs +394 -0
  177. package/dist-engine-src/src/tracked_state/codec.rs +155 -1057
  178. package/dist-engine-src/src/tracked_state/commit_root_rebuild.rs +358 -0
  179. package/dist-engine-src/src/tracked_state/context.rs +1927 -993
  180. package/dist-engine-src/src/tracked_state/diff.rs +1715 -261
  181. package/dist-engine-src/src/tracked_state/merge.rs +74 -88
  182. package/dist-engine-src/src/tracked_state/mod.rs +19 -16
  183. package/dist-engine-src/src/tracked_state/{materialization.rs → row_materialization.rs} +50 -178
  184. package/dist-engine-src/src/tracked_state/storage.rs +243 -191
  185. package/dist-engine-src/src/tracked_state/tree.rs +247 -371
  186. package/dist-engine-src/src/tracked_state/types.rs +49 -42
  187. package/dist-engine-src/src/transaction/bench_support.rs +407 -0
  188. package/dist-engine-src/src/transaction/commit.rs +821 -713
  189. package/dist-engine-src/src/transaction/context.rs +705 -600
  190. package/dist-engine-src/src/transaction/mod.rs +13 -2
  191. package/dist-engine-src/src/transaction/normalization.rs +63 -76
  192. package/dist-engine-src/src/transaction/prep.rs +13 -13
  193. package/dist-engine-src/src/transaction/schema_resolver.rs +19 -5
  194. package/dist-engine-src/src/transaction/staging.rs +228 -434
  195. package/dist-engine-src/src/transaction/types.rs +41 -98
  196. package/dist-engine-src/src/transaction/validation.rs +382 -446
  197. package/dist-engine-src/src/untracked_state/codec.rs +337 -29
  198. package/dist-engine-src/src/untracked_state/context.rs +7 -7
  199. package/dist-engine-src/src/untracked_state/materialization.rs +2 -2
  200. package/dist-engine-src/src/untracked_state/mod.rs +1 -1
  201. package/dist-engine-src/src/untracked_state/storage.rs +659 -157
  202. package/dist-engine-src/src/untracked_state/types.rs +21 -21
  203. package/package.json +71 -68
  204. package/dist-engine-src/src/backend/kv.rs +0 -358
  205. package/dist-engine-src/src/backend/testing.rs +0 -658
  206. package/dist-engine-src/src/commit_store/codec.rs +0 -887
  207. package/dist-engine-src/src/commit_store/context.rs +0 -944
  208. package/dist-engine-src/src/commit_store/materialization.rs +0 -84
  209. package/dist-engine-src/src/commit_store/mod.rs +0 -16
  210. package/dist-engine-src/src/commit_store/storage.rs +0 -600
  211. package/dist-engine-src/src/commit_store/types.rs +0 -215
  212. package/dist-engine-src/src/schema/builtin/lix_version_descriptor.json +0 -34
  213. package/dist-engine-src/src/schema/builtin/lix_version_ref.json +0 -48
  214. package/dist-engine-src/src/session/create_version.rs +0 -88
  215. package/dist-engine-src/src/session/merge/apply.rs +0 -23
  216. package/dist-engine-src/src/session/optimization9_sql2_bench.rs +0 -100
  217. package/dist-engine-src/src/session/switch_version.rs +0 -110
  218. package/dist-engine-src/src/sql2/entity_provider.rs +0 -3211
  219. package/dist-engine-src/src/sql2/execute.rs +0 -3533
  220. package/dist-engine-src/src/sql2/public_bind/assignment.rs +0 -46
  221. package/dist-engine-src/src/sql2/public_bind/capability.rs +0 -41
  222. package/dist-engine-src/src/sql2/public_bind/dml.rs +0 -172
  223. package/dist-engine-src/src/sql2/public_bind/mod.rs +0 -26
  224. package/dist-engine-src/src/sql2/public_bind/table.rs +0 -168
  225. package/dist-engine-src/src/sql2/version_scope.rs +0 -394
  226. package/dist-engine-src/src/storage/types.rs +0 -501
  227. package/dist-engine-src/src/tracked_state/by_file_index.rs +0 -98
  228. package/dist-engine-src/src/tracked_state/materializer.rs +0 -488
  229. package/dist-engine-src/src/transaction/live_state_overlay.rs +0 -35
  230. package/dist-engine-src/src/version/lifecycle.rs +0 -221
  231. package/dist-engine-src/src/version/mod.rs +0 -13
  232. package/dist-engine-src/src/version/refs.rs +0 -330
  233. package/dist-engine-src/src/version/stage_rows.rs +0 -67
  234. package/dist-engine-src/src/version/types.rs +0 -21
@@ -3,7 +3,7 @@ use std::collections::BTreeMap;
3
3
  use serde_json::Value as JsonValue;
4
4
 
5
5
  use crate::catalog::SchemaCatalogFact;
6
- use crate::domain::{committed_row_is_exact_version_scoped, Domain};
6
+ use crate::domain::{committed_row_is_exact_branch_scoped, Domain};
7
7
  use crate::live_state::MaterializedLiveStateRow;
8
8
  use crate::live_state::{LiveStateFilter, LiveStateReader, LiveStateScanRequest};
9
9
  use crate::schema::schema_key_from_definition;
@@ -23,7 +23,7 @@ impl CatalogContext {
23
23
  Self
24
24
  }
25
25
 
26
- /// Loads schema definitions for SQL surface planning at `version_id`.
26
+ /// Loads schema definitions for SQL surface planning at `branch_id`.
27
27
  ///
28
28
  /// SQL surfaces are a read-planning projection over the active untracked
29
29
  /// schema catalog. Validation must use `schema_facts_for_domain` instead so
@@ -31,13 +31,13 @@ impl CatalogContext {
31
31
  pub(crate) async fn schema_jsons_for_sql_read_planning<R>(
32
32
  &self,
33
33
  live_state: &R,
34
- version_id: &str,
34
+ branch_id: &str,
35
35
  ) -> Result<Vec<JsonValue>, LixError>
36
36
  where
37
37
  R: LiveStateReader + ?Sized,
38
38
  {
39
39
  let facts = self
40
- .schema_facts_for_domain(live_state, &Domain::schema_catalog(version_id, true))
40
+ .schema_facts_for_domain(live_state, &Domain::schema_catalog(branch_id, true))
41
41
  .await?;
42
42
  let mut schemas = BTreeMap::<String, JsonValue>::new();
43
43
  for fact in facts {
@@ -74,7 +74,7 @@ impl CatalogContext {
74
74
  .scan_rows(&LiveStateScanRequest {
75
75
  filter: LiveStateFilter {
76
76
  schema_keys: vec![REGISTERED_SCHEMA_KEY.to_string()],
77
- version_ids: vec![schema_domain.version_id().to_string()],
77
+ branch_ids: vec![schema_domain.branch_id().to_string()],
78
78
  file_ids: vec![NullableKeyFilter::Null],
79
79
  untracked: Some(schema_domain.untracked()),
80
80
  include_tombstones: false,
@@ -101,9 +101,9 @@ fn row_belongs_to_schema_catalog_domain(row: &MaterializedLiveStateRow, domain:
101
101
  row.schema_key == REGISTERED_SCHEMA_KEY
102
102
  && row.file_id.is_none()
103
103
  && row.snapshot_content.is_some()
104
- && row.version_id == domain.version_id()
104
+ && row.branch_id == domain.branch_id()
105
105
  && row.untracked == domain.untracked()
106
- && committed_row_is_exact_version_scoped(row, domain.version_id())
106
+ && committed_row_is_exact_branch_scoped(row, domain.branch_id())
107
107
  }
108
108
 
109
109
  fn decode_registered_schema_row(
@@ -146,7 +146,7 @@ mod tests {
146
146
 
147
147
  use super::*;
148
148
  use crate::live_state::LiveStateRowRequest;
149
- use crate::GLOBAL_VERSION_ID;
149
+ use crate::GLOBAL_BRANCH_ID;
150
150
 
151
151
  #[tokio::test]
152
152
  async fn visible_schemas_are_loaded_from_registered_schema_rows() {
@@ -257,11 +257,11 @@ mod tests {
257
257
  }
258
258
 
259
259
  #[tokio::test]
260
- async fn visible_schemas_ignore_projected_global_schema_rows_for_version_scope() {
260
+ async fn visible_schemas_ignore_projected_global_schema_rows_for_branch_scope() {
261
261
  let context = CatalogContext::new();
262
262
  let mut global_only = registered_schema_row("global_only_schema");
263
263
  global_only.global = true;
264
- global_only.version_id = "main".to_string();
264
+ global_only.branch_id = "main".to_string();
265
265
 
266
266
  let schemas = context
267
267
  .schema_jsons_for_sql_read_planning(
@@ -338,8 +338,8 @@ mod tests {
338
338
  || request.filter.schema_keys.contains(&row.schema_key)
339
339
  })
340
340
  .filter(|row| {
341
- request.filter.version_ids.is_empty()
342
- || request.filter.version_ids.contains(&row.version_id)
341
+ request.filter.branch_ids.is_empty()
342
+ || request.filter.branch_ids.contains(&row.branch_id)
343
343
  })
344
344
  .filter(|row| {
345
345
  request
@@ -360,8 +360,8 @@ mod tests {
360
360
  .iter()
361
361
  .find(|row| {
362
362
  row.schema_key == request.schema_key
363
- && row.version_id == request.version_id
364
- && row.entity_id == request.entity_id
363
+ && row.branch_id == request.branch_id
364
+ && row.entity_pk == request.entity_pk
365
365
  })
366
366
  .cloned())
367
367
  }
@@ -369,10 +369,10 @@ mod tests {
369
369
 
370
370
  fn registered_schema_row(schema_key: &str) -> MaterializedLiveStateRow {
371
371
  MaterializedLiveStateRow {
372
- entity_id: registered_schema_entity_id(schema_key),
372
+ entity_pk: registered_schema_entity_pk(schema_key),
373
373
  file_id: None,
374
374
  schema_key: REGISTERED_SCHEMA_KEY.to_string(),
375
- version_id: GLOBAL_VERSION_ID.to_string(),
375
+ branch_id: GLOBAL_BRANCH_ID.to_string(),
376
376
  metadata: None,
377
377
  deleted: false,
378
378
  change_id: Some("change-registered-schema".to_string()),
@@ -398,8 +398,8 @@ mod tests {
398
398
  }
399
399
  }
400
400
 
401
- fn registered_schema_entity_id(schema_key: &str) -> crate::entity_identity::EntityIdentity {
402
- crate::entity_identity::EntityIdentity::from_primary_key_paths(
401
+ fn registered_schema_entity_pk(schema_key: &str) -> crate::entity_pk::EntityPk {
402
+ crate::entity_pk::EntityPk::from_primary_key_paths(
403
403
  &json!({
404
404
  "value": {
405
405
  "x-lix-key": schema_key,
@@ -5,7 +5,7 @@ use serde_json::{Map as JsonMap, Value as JsonValue};
5
5
 
6
6
  use crate::common::{format_json_pointer, parse_json_pointer};
7
7
  use crate::domain::{Domain, DomainSchemaIdentity};
8
- use crate::entity_identity::canonical_json_text;
8
+ use crate::entity_pk::canonical_json_text;
9
9
  use crate::functions::FunctionProviderHandle;
10
10
  use crate::schema::{compile_lix_schema, validate_schema_amendment, SchemaKey};
11
11
  use crate::LixError;
@@ -48,7 +48,7 @@ impl CatalogSnapshot {
48
48
  let key = crate::schema::schema_key_from_definition(schema)?;
49
49
  let catalog_key = SchemaCatalogKey::from_schema_key(key);
50
50
  let identity = DomainSchemaIdentity::new(
51
- Domain::schema_catalog(crate::GLOBAL_VERSION_ID, true),
51
+ Domain::schema_catalog(crate::GLOBAL_BRANCH_ID, true),
52
52
  catalog_key.schema_key.clone(),
53
53
  );
54
54
  catalog.remember_schema_identity(identity, catalog_key, schema.clone())?;
@@ -447,8 +447,8 @@ struct UnboundForeignKeyPlan {
447
447
 
448
448
  #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)]
449
449
  pub(crate) struct StateForeignKeyPlan {
450
- /// Slot [0] in `x-lix-state-foreign-keys`: local pointer to the target entity_id.
451
- pub(crate) entity_id_property: Vec<String>,
450
+ /// Slot [0] in `x-lix-state-foreign-keys`: local pointer to the target entity_pk.
451
+ pub(crate) entity_pk_property: Vec<String>,
452
452
  /// Slot [1] in `x-lix-state-foreign-keys`: local pointer to the target schema_key.
453
453
  pub(crate) schema_key_property: Vec<String>,
454
454
  /// Slot [2] in `x-lix-state-foreign-keys`: local pointer to the target file_id.
@@ -458,7 +458,7 @@ pub(crate) struct StateForeignKeyPlan {
458
458
  impl StateForeignKeyPlan {
459
459
  pub(crate) fn local_properties(&self) -> PointerGroup {
460
460
  vec![
461
- self.entity_id_property.clone(),
461
+ self.entity_pk_property.clone(),
462
462
  self.schema_key_property.clone(),
463
463
  self.file_id_property.clone(),
464
464
  ]
@@ -648,7 +648,7 @@ fn bind_foreign_key_plans(
648
648
  return Err(LixError::new(
649
649
  LixError::CODE_SCHEMA_DEFINITION,
650
650
  format!(
651
- "foreign key on schema '{}' must not reference schemaKey 'lix_state'; use x-lix-state-foreign-keys with pointers ordered as [entity_id, schema_key, file_id]",
651
+ "foreign key on schema '{}' must not reference schemaKey 'lix_state'; use x-lix-state-foreign-keys with pointers ordered as [entity_pk, schema_key, file_id]",
652
652
  source_key.schema_key
653
653
  ),
654
654
  ));
@@ -868,12 +868,12 @@ fn state_foreign_key_plans(schema: &JsonValue) -> Result<Vec<StateForeignKeyPlan
868
868
  return Err(LixError::new(
869
869
  LixError::CODE_SCHEMA_DEFINITION,
870
870
  format!(
871
- "x-lix-state-foreign-keys[{index}] must contain exactly three JSON Pointers ordered as [entity_id, schema_key, file_id]"
871
+ "x-lix-state-foreign-keys[{index}] must contain exactly three JSON Pointers ordered as [entity_pk, schema_key, file_id]"
872
872
  ),
873
873
  ));
874
874
  }
875
875
  Ok(StateForeignKeyPlan {
876
- entity_id_property: local_properties[0].clone(),
876
+ entity_pk_property: local_properties[0].clone(),
877
877
  schema_key_property: local_properties[1].clone(),
878
878
  file_id_property: local_properties[2].clone(),
879
879
  })