@rocicorp/zero 0.11.2025011800 → 0.11.2025011802

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 (66) hide show
  1. package/out/{chunk-U4FNXGTG.js → chunk-3JROCHFI.js} +2 -2
  2. package/out/solid.js +1 -1
  3. package/out/zero-cache/src/auth/write-authorizer.d.ts +1 -1
  4. package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
  5. package/out/zero-cache/src/auth/write-authorizer.js +2 -4
  6. package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
  7. package/out/zero-cache/src/db/lite-tables.d.ts +14 -1
  8. package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
  9. package/out/zero-cache/src/db/lite-tables.js +89 -6
  10. package/out/zero-cache/src/db/lite-tables.js.map +1 -1
  11. package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
  12. package/out/zero-cache/src/db/pg-to-lite.js +3 -1
  13. package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
  14. package/out/zero-cache/src/db/postgres-replica-identity-enum.d.ts +9 -0
  15. package/out/zero-cache/src/db/postgres-replica-identity-enum.d.ts.map +1 -0
  16. package/out/zero-cache/src/db/postgres-replica-identity-enum.js +7 -0
  17. package/out/zero-cache/src/db/postgres-replica-identity-enum.js.map +1 -0
  18. package/out/zero-cache/src/db/specs.d.ts +39 -10
  19. package/out/zero-cache/src/db/specs.d.ts.map +1 -1
  20. package/out/zero-cache/src/db/specs.js +8 -1
  21. package/out/zero-cache/src/db/specs.js.map +1 -1
  22. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +45 -25
  23. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts.map +1 -1
  24. package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts.map +1 -1
  25. package/out/zero-cache/src/services/change-source/pg/schema/init.js +6 -28
  26. package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
  27. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +18 -10
  28. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts.map +1 -1
  29. package/out/zero-cache/src/services/change-source/pg/schema/published.js +14 -7
  30. package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
  31. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +6 -3
  32. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts.map +1 -1
  33. package/out/zero-cache/src/services/change-source/pg/schema/shard.js +29 -1
  34. package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
  35. package/out/zero-cache/src/services/change-source/pg/schema/validation.d.ts +2 -2
  36. package/out/zero-cache/src/services/change-source/pg/schema/validation.d.ts.map +1 -1
  37. package/out/zero-cache/src/services/change-source/pg/schema/validation.js +6 -2
  38. package/out/zero-cache/src/services/change-source/pg/schema/validation.js.map +1 -1
  39. package/out/zero-cache/src/services/change-source/pg/sync-schema.d.ts.map +1 -1
  40. package/out/zero-cache/src/services/change-source/pg/sync-schema.js +1 -0
  41. package/out/zero-cache/src/services/change-source/pg/sync-schema.js.map +1 -1
  42. package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts +10 -10
  43. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +15 -15
  44. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +5 -5
  45. package/out/zero-cache/src/services/replicator/incremental-sync.js +14 -1
  46. package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
  47. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +0 -5
  48. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  49. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +18 -35
  50. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  51. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +3 -3
  52. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
  53. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
  54. package/out/zero-cache/src/types/processes.d.ts.map +1 -1
  55. package/out/zero-cache/src/types/processes.js +6 -1
  56. package/out/zero-cache/src/types/processes.js.map +1 -1
  57. package/out/zero-cache/src/types/row-key.d.ts.map +1 -1
  58. package/out/zero-cache/src/types/row-key.js +7 -1
  59. package/out/zero-cache/src/types/row-key.js.map +1 -1
  60. package/out/zero.js +1 -1
  61. package/out/zqlite/src/table-source.d.ts +4 -3
  62. package/out/zqlite/src/table-source.d.ts.map +1 -1
  63. package/out/zqlite/src/table-source.js +18 -7
  64. package/out/zqlite/src/table-source.js.map +1 -1
  65. package/package.json +1 -1
  66. /package/out/{chunk-U4FNXGTG.js.map → chunk-3JROCHFI.js.map} +0 -0
@@ -10,20 +10,20 @@ export declare const ddlEventSchema: v.ObjectType<Omit<{
10
10
  tables: v.ArrayType<v.ObjectType<Omit<Omit<{
11
11
  name: v.Type<string>;
12
12
  columns: v.Type<Record<string, {
13
- pgTypeClass?: "e" | "b" | "c" | "d" | "p" | "r" | "m" | undefined;
13
+ pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
14
14
  characterMaximumLength?: number | null | undefined;
15
15
  notNull?: boolean | null | undefined;
16
16
  dflt?: string | null | undefined;
17
17
  pos: number;
18
18
  dataType: string;
19
19
  }>>;
20
- primaryKey: v.ArrayType<v.Type<string>>;
20
+ primaryKey: v.Optional<string[]>;
21
21
  }, "schema"> & {
22
22
  schema: v.Type<string>;
23
- }, "publications" | "oid" | "columns"> & {
23
+ }, "publications" | "oid" | "columns" | "replicaIdentity"> & {
24
24
  oid: v.Type<number>;
25
25
  columns: v.Type<Record<string, {
26
- pgTypeClass?: "e" | "b" | "c" | "d" | "p" | "r" | "m" | undefined;
26
+ pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
27
27
  characterMaximumLength?: number | null | undefined;
28
28
  notNull?: boolean | null | undefined;
29
29
  dflt?: string | null | undefined;
@@ -31,18 +31,22 @@ export declare const ddlEventSchema: v.ObjectType<Omit<{
31
31
  dataType: string;
32
32
  typeOID: number;
33
33
  }>>;
34
+ replicaIdentity: v.Optional<"n" | "d" | "f" | "i">;
34
35
  publications: v.Type<Record<string, {
35
36
  rowFilter: string | null;
36
37
  }>>;
37
38
  }, undefined>>;
38
39
  }, "indexes"> & {
39
- indexes: v.ArrayType<v.ObjectType<Omit<{
40
+ indexes: v.ArrayType<v.ObjectType<Omit<Omit<{
40
41
  name: v.Type<string>;
41
42
  tableName: v.Type<string>;
42
43
  unique: v.Type<boolean>;
43
44
  columns: v.Type<Record<string, "ASC" | "DESC">>;
44
45
  }, "schema"> & {
45
46
  schema: v.Type<string>;
47
+ }, "isReplicaIdentity" | "isImmediate"> & {
48
+ isReplicaIdentity: v.Optional<boolean>;
49
+ isImmediate: v.Optional<boolean>;
46
50
  }, undefined>>;
47
51
  }, undefined>;
48
52
  }, undefined>;
@@ -56,20 +60,20 @@ export declare const ddlStartEventSchema: v.ObjectType<Omit<Omit<{
56
60
  tables: v.ArrayType<v.ObjectType<Omit<Omit<{
57
61
  name: v.Type<string>;
58
62
  columns: v.Type<Record<string, {
59
- pgTypeClass?: "e" | "b" | "c" | "d" | "p" | "r" | "m" | undefined;
63
+ pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
60
64
  characterMaximumLength?: number | null | undefined;
61
65
  notNull?: boolean | null | undefined;
62
66
  dflt?: string | null | undefined;
63
67
  pos: number;
64
68
  dataType: string;
65
69
  }>>;
66
- primaryKey: v.ArrayType<v.Type<string>>;
70
+ primaryKey: v.Optional<string[]>;
67
71
  }, "schema"> & {
68
72
  schema: v.Type<string>;
69
- }, "publications" | "oid" | "columns"> & {
73
+ }, "publications" | "oid" | "columns" | "replicaIdentity"> & {
70
74
  oid: v.Type<number>;
71
75
  columns: v.Type<Record<string, {
72
- pgTypeClass?: "e" | "b" | "c" | "d" | "p" | "r" | "m" | undefined;
76
+ pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
73
77
  characterMaximumLength?: number | null | undefined;
74
78
  notNull?: boolean | null | undefined;
75
79
  dflt?: string | null | undefined;
@@ -77,18 +81,22 @@ export declare const ddlStartEventSchema: v.ObjectType<Omit<Omit<{
77
81
  dataType: string;
78
82
  typeOID: number;
79
83
  }>>;
84
+ replicaIdentity: v.Optional<"n" | "d" | "f" | "i">;
80
85
  publications: v.Type<Record<string, {
81
86
  rowFilter: string | null;
82
87
  }>>;
83
88
  }, undefined>>;
84
89
  }, "indexes"> & {
85
- indexes: v.ArrayType<v.ObjectType<Omit<{
90
+ indexes: v.ArrayType<v.ObjectType<Omit<Omit<{
86
91
  name: v.Type<string>;
87
92
  tableName: v.Type<string>;
88
93
  unique: v.Type<boolean>;
89
94
  columns: v.Type<Record<string, "ASC" | "DESC">>;
90
95
  }, "schema"> & {
91
96
  schema: v.Type<string>;
97
+ }, "isReplicaIdentity" | "isImmediate"> & {
98
+ isReplicaIdentity: v.Optional<boolean>;
99
+ isImmediate: v.Optional<boolean>;
92
100
  }, undefined>>;
93
101
  }, undefined>;
94
102
  }, "type"> & {
@@ -117,20 +125,20 @@ export declare const ddlUpdateEventSchema: v.ObjectType<Omit<Omit<{
117
125
  tables: v.ArrayType<v.ObjectType<Omit<Omit<{
118
126
  name: v.Type<string>;
119
127
  columns: v.Type<Record<string, {
120
- pgTypeClass?: "e" | "b" | "c" | "d" | "p" | "r" | "m" | undefined;
128
+ pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
121
129
  characterMaximumLength?: number | null | undefined;
122
130
  notNull?: boolean | null | undefined;
123
131
  dflt?: string | null | undefined;
124
132
  pos: number;
125
133
  dataType: string;
126
134
  }>>;
127
- primaryKey: v.ArrayType<v.Type<string>>;
135
+ primaryKey: v.Optional<string[]>;
128
136
  }, "schema"> & {
129
137
  schema: v.Type<string>;
130
- }, "publications" | "oid" | "columns"> & {
138
+ }, "publications" | "oid" | "columns" | "replicaIdentity"> & {
131
139
  oid: v.Type<number>;
132
140
  columns: v.Type<Record<string, {
133
- pgTypeClass?: "e" | "b" | "c" | "d" | "p" | "r" | "m" | undefined;
141
+ pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
134
142
  characterMaximumLength?: number | null | undefined;
135
143
  notNull?: boolean | null | undefined;
136
144
  dflt?: string | null | undefined;
@@ -138,18 +146,22 @@ export declare const ddlUpdateEventSchema: v.ObjectType<Omit<Omit<{
138
146
  dataType: string;
139
147
  typeOID: number;
140
148
  }>>;
149
+ replicaIdentity: v.Optional<"n" | "d" | "f" | "i">;
141
150
  publications: v.Type<Record<string, {
142
151
  rowFilter: string | null;
143
152
  }>>;
144
153
  }, undefined>>;
145
154
  }, "indexes"> & {
146
- indexes: v.ArrayType<v.ObjectType<Omit<{
155
+ indexes: v.ArrayType<v.ObjectType<Omit<Omit<{
147
156
  name: v.Type<string>;
148
157
  tableName: v.Type<string>;
149
158
  unique: v.Type<boolean>;
150
159
  columns: v.Type<Record<string, "ASC" | "DESC">>;
151
160
  }, "schema"> & {
152
161
  schema: v.Type<string>;
162
+ }, "isReplicaIdentity" | "isImmediate"> & {
163
+ isReplicaIdentity: v.Optional<boolean>;
164
+ isImmediate: v.Optional<boolean>;
153
165
  }, undefined>>;
154
166
  }, undefined>;
155
167
  }, "type" | "event"> & {
@@ -183,20 +195,20 @@ export declare const replicationEventSchema: v.UnionType<[v.ObjectType<Omit<Omit
183
195
  tables: v.ArrayType<v.ObjectType<Omit<Omit<{
184
196
  name: v.Type<string>;
185
197
  columns: v.Type<Record<string, {
186
- pgTypeClass?: "e" | "b" | "c" | "d" | "p" | "r" | "m" | undefined;
198
+ pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
187
199
  characterMaximumLength?: number | null | undefined;
188
200
  notNull?: boolean | null | undefined;
189
201
  dflt?: string | null | undefined;
190
202
  pos: number;
191
203
  dataType: string;
192
204
  }>>;
193
- primaryKey: v.ArrayType<v.Type<string>>;
205
+ primaryKey: v.Optional<string[]>;
194
206
  }, "schema"> & {
195
207
  schema: v.Type<string>;
196
- }, "publications" | "oid" | "columns"> & {
208
+ }, "publications" | "oid" | "columns" | "replicaIdentity"> & {
197
209
  oid: v.Type<number>;
198
210
  columns: v.Type<Record<string, {
199
- pgTypeClass?: "e" | "b" | "c" | "d" | "p" | "r" | "m" | undefined;
211
+ pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
200
212
  characterMaximumLength?: number | null | undefined;
201
213
  notNull?: boolean | null | undefined;
202
214
  dflt?: string | null | undefined;
@@ -204,18 +216,22 @@ export declare const replicationEventSchema: v.UnionType<[v.ObjectType<Omit<Omit
204
216
  dataType: string;
205
217
  typeOID: number;
206
218
  }>>;
219
+ replicaIdentity: v.Optional<"n" | "d" | "f" | "i">;
207
220
  publications: v.Type<Record<string, {
208
221
  rowFilter: string | null;
209
222
  }>>;
210
223
  }, undefined>>;
211
224
  }, "indexes"> & {
212
- indexes: v.ArrayType<v.ObjectType<Omit<{
225
+ indexes: v.ArrayType<v.ObjectType<Omit<Omit<{
213
226
  name: v.Type<string>;
214
227
  tableName: v.Type<string>;
215
228
  unique: v.Type<boolean>;
216
229
  columns: v.Type<Record<string, "ASC" | "DESC">>;
217
230
  }, "schema"> & {
218
231
  schema: v.Type<string>;
232
+ }, "isReplicaIdentity" | "isImmediate"> & {
233
+ isReplicaIdentity: v.Optional<boolean>;
234
+ isImmediate: v.Optional<boolean>;
219
235
  }, undefined>>;
220
236
  }, undefined>;
221
237
  }, "type"> & {
@@ -230,20 +246,20 @@ export declare const replicationEventSchema: v.UnionType<[v.ObjectType<Omit<Omit
230
246
  tables: v.ArrayType<v.ObjectType<Omit<Omit<{
231
247
  name: v.Type<string>;
232
248
  columns: v.Type<Record<string, {
233
- pgTypeClass?: "e" | "b" | "c" | "d" | "p" | "r" | "m" | undefined;
249
+ pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
234
250
  characterMaximumLength?: number | null | undefined;
235
251
  notNull?: boolean | null | undefined;
236
252
  dflt?: string | null | undefined;
237
253
  pos: number;
238
254
  dataType: string;
239
255
  }>>;
240
- primaryKey: v.ArrayType<v.Type<string>>;
256
+ primaryKey: v.Optional<string[]>;
241
257
  }, "schema"> & {
242
258
  schema: v.Type<string>;
243
- }, "publications" | "oid" | "columns"> & {
259
+ }, "publications" | "oid" | "columns" | "replicaIdentity"> & {
244
260
  oid: v.Type<number>;
245
261
  columns: v.Type<Record<string, {
246
- pgTypeClass?: "e" | "b" | "c" | "d" | "p" | "r" | "m" | undefined;
262
+ pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
247
263
  characterMaximumLength?: number | null | undefined;
248
264
  notNull?: boolean | null | undefined;
249
265
  dflt?: string | null | undefined;
@@ -251,18 +267,22 @@ export declare const replicationEventSchema: v.UnionType<[v.ObjectType<Omit<Omit
251
267
  dataType: string;
252
268
  typeOID: number;
253
269
  }>>;
270
+ replicaIdentity: v.Optional<"n" | "d" | "f" | "i">;
254
271
  publications: v.Type<Record<string, {
255
272
  rowFilter: string | null;
256
273
  }>>;
257
274
  }, undefined>>;
258
275
  }, "indexes"> & {
259
- indexes: v.ArrayType<v.ObjectType<Omit<{
276
+ indexes: v.ArrayType<v.ObjectType<Omit<Omit<{
260
277
  name: v.Type<string>;
261
278
  tableName: v.Type<string>;
262
279
  unique: v.Type<boolean>;
263
280
  columns: v.Type<Record<string, "ASC" | "DESC">>;
264
281
  }, "schema"> & {
265
282
  schema: v.Type<string>;
283
+ }, "isReplicaIdentity" | "isImmediate"> & {
284
+ isReplicaIdentity: v.Optional<boolean>;
285
+ isImmediate: v.Optional<boolean>;
266
286
  }, undefined>>;
267
287
  }, undefined>;
268
288
  }, "type" | "event"> & {
@@ -1 +1 @@
1
- {"version":3,"file":"ddl.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/ddl.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAc5D,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAQlC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAGzB,CAAC;AASH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAE9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAyDhE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAG/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAGlC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAGtE,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,UACtB,MAAM,YACrB;AAsLD,eAAO,MAAM,IAAI,2GAOP,CAAC;AAEX,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EAAE,UAsCvB"}
1
+ {"version":3,"file":"ddl.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/ddl.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAc5D,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAQlC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAGzB,CAAC;AASH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAE9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAyDhE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAG/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAGlC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAGtE,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,UACtB,MAAM,YACrB;AAsLD,eAAO,MAAM,IAAI,2GAOP,CAAC;AAEX,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EAAE,UAsCvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAOjD,OAAO,KAAK,EAAC,UAAU,EAAsB,MAAM,yBAAyB,CAAC;AAE7E,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAQpD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,UAAU,EACd,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,UAAU,EACd,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAOf"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAOjD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AAExD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAOpD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,UAAU,EACd,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,UAAU,EACd,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAOf"}
@@ -1,6 +1,5 @@
1
1
  import { getVersionHistory, runSchemaMigrations, } from '../../../../db/migration.js';
2
2
  import { AutoResetSignal } from '../../../change-streamer/schema/tables.js';
3
- import { getPublicationInfo } from './published.js';
4
3
  import { dropShard, setupTablesAndReplication, unescapedSchema, } from './shard.js';
5
4
  /**
6
5
  * Initializes a shard for initial sync.
@@ -27,34 +26,13 @@ async function runShardMigrations(lc, db, shardConfig) {
27
26
  minSafeVersion: 1,
28
27
  };
29
28
  const schemaVersionMigrationMap = {
30
- 2: { migrateSchema: (_, tx) => migrateV1toV2(tx, shardConfig.id) },
29
+ 3: {
30
+ migrateSchema: () => {
31
+ throw new AutoResetSignal('resetting to upgrade shard schema');
32
+ },
33
+ minSafeVersion: 3,
34
+ },
31
35
  };
32
36
  await runSchemaMigrations(lc, `upstream-shard-${shardConfig.id}`, unescapedSchema(shardConfig.id), db, setupMigration, schemaVersionMigrationMap);
33
37
  }
34
- // v1 required superuser / event trigger installation.
35
- // Therefore, to migrate from v1 to v2:
36
- //
37
- // - Add the "ddlDetection" and "initialSchema" columns to "shardConfig"
38
- // - Set "ddlDetection" to true
39
- // - Populate the "initialSchema" to the current published schema
40
- //
41
- // The last step technically may not match the "initial" schema, but
42
- // currently it is only used for "ddlDetection = false" setups, so
43
- // it does not matter.
44
- async function migrateV1toV2(tx, shardID) {
45
- const s = unescapedSchema(shardID);
46
- const [{ publications }] = await tx `
47
- SELECT publications FROM ${tx(s)}."shardConfig"
48
- `;
49
- const { tables, indexes } = await getPublicationInfo(tx, publications);
50
- const publishedSchema = { tables, indexes };
51
- void tx `
52
- ALTER TABLE ${tx(s)}."shardConfig" ADD "ddlDetection" BOOL`.execute();
53
- void tx `
54
- ALTER TABLE ${tx(s)}."shardConfig" ADD "initialSchema" JSON`.execute();
55
- await tx `
56
- UPDATE ${tx(s)}."shardConfig"
57
- SET "ddlDetection" = true,
58
- "initialSchema" = ${publishedSchema}`;
59
- }
60
38
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/init.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GAGpB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAC,eAAe,EAAC,MAAM,2CAA2C,CAAC;AAE1E,OAAO,EAAC,kBAAkB,EAAuB,MAAM,gBAAgB,CAAC;AACxE,OAAO,EACL,SAAS,EACT,yBAAyB,EACzB,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAc,EACd,EAAc,EACd,WAAwB;IAExB,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,OAAO,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAc,EACd,EAAc,EACd,WAAwB;IAExB,MAAM,EAAC,EAAE,EAAC,GAAG,WAAW,CAAC;IACzB,MAAM,EAAC,aAAa,EAAC,GAAG,MAAM,iBAAiB,CAAC,EAAE,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,EAAc,EACd,EAAc,EACd,WAAwB;IAExB,MAAM,cAAc,GAAc;QAChC,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,yBAAyB,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC;QACzE,cAAc,EAAE,CAAC;KAClB,CAAC;IAEF,MAAM,yBAAyB,GAA4B;QACzD,CAAC,EAAE,EAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,EAAC;KACjE,CAAC;IAEF,MAAM,mBAAmB,CACvB,EAAE,EACF,kBAAkB,WAAW,CAAC,EAAE,EAAE,EAClC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,EAC/B,EAAE,EACF,cAAc,EACd,yBAAyB,CAC1B,CAAC;AACJ,CAAC;AAED,sDAAsD;AACtD,uCAAuC;AACvC,EAAE;AACF,wEAAwE;AACxE,+BAA+B;AAC/B,iEAAiE;AACjE,EAAE;AACF,oEAAoE;AACpE,kEAAkE;AAClE,sBAAsB;AACtB,KAAK,UAAU,aAAa,CAAC,EAAuB,EAAE,OAAe;IACnE,MAAM,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,CAAC,EAAC,YAAY,EAAC,CAAC,GAAG,MAAM,EAAE,CAA4B;+BAChC,EAAE,CAAC,CAAC,CAAC;GACjC,CAAC;IACF,MAAM,EAAC,MAAM,EAAE,OAAO,EAAC,GAAG,MAAM,kBAAkB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IACrE,MAAM,eAAe,GAAoB,EAAC,MAAM,EAAE,OAAO,EAAC,CAAC;IAE3D,KAAK,EAAE,CAAA;gBACO,EAAE,CAAC,CAAC,CAAC,wCAAwC,CAAC,OAAO,EAAE,CAAC;IACtE,KAAK,EAAE,CAAA;gBACO,EAAE,CAAC,CAAC,CAAC,yCAAyC,CAAC,OAAO,EAAE,CAAC;IACvE,MAAM,EAAE,CAAA;aACG,EAAE,CAAC,CAAC,CAAC;;8BAEY,eAAe,EAAE,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/init.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GAGpB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAC,eAAe,EAAC,MAAM,2CAA2C,CAAC;AAE1E,OAAO,EACL,SAAS,EACT,yBAAyB,EACzB,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAc,EACd,EAAc,EACd,WAAwB;IAExB,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,OAAO,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAc,EACd,EAAc,EACd,WAAwB;IAExB,MAAM,EAAC,EAAE,EAAC,GAAG,WAAW,CAAC;IACzB,MAAM,EAAC,aAAa,EAAC,GAAG,MAAM,iBAAiB,CAAC,EAAE,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,EAAc,EACd,EAAc,EACd,WAAwB;IAExB,MAAM,cAAc,GAAc;QAChC,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,yBAAyB,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC;QACzE,cAAc,EAAE,CAAC;KAClB,CAAC;IAEF,MAAM,yBAAyB,GAA4B;QACzD,CAAC,EAAE;YACD,aAAa,EAAE,GAAG,EAAE;gBAClB,MAAM,IAAI,eAAe,CAAC,mCAAmC,CAAC,CAAC;YACjE,CAAC;YACD,cAAc,EAAE,CAAC;SAClB;KACF,CAAC;IAEF,MAAM,mBAAmB,CACvB,EAAE,EACF,kBAAkB,WAAW,CAAC,EAAE,EAAE,EAClC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,EAC/B,EAAE,EACF,cAAc,EACd,yBAAyB,CAC1B,CAAC;AACJ,CAAC"}
@@ -6,20 +6,20 @@ export declare const publishedSchema: v.ObjectType<Omit<{
6
6
  tables: v.ArrayType<v.ObjectType<Omit<Omit<{
7
7
  name: v.Type<string>;
8
8
  columns: v.Type<Record<string, {
9
- pgTypeClass?: "e" | "b" | "c" | "d" | "p" | "r" | "m" | undefined;
9
+ pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
10
10
  characterMaximumLength?: number | null | undefined;
11
11
  notNull?: boolean | null | undefined;
12
12
  dflt?: string | null | undefined;
13
13
  pos: number;
14
14
  dataType: string;
15
15
  }>>;
16
- primaryKey: v.ArrayType<v.Type<string>>;
16
+ primaryKey: v.Optional<string[]>;
17
17
  }, "schema"> & {
18
18
  schema: v.Type<string>;
19
- }, "publications" | "oid" | "columns"> & {
19
+ }, "publications" | "oid" | "columns" | "replicaIdentity"> & {
20
20
  oid: v.Type<number>;
21
21
  columns: v.Type<Record<string, {
22
- pgTypeClass?: "e" | "b" | "c" | "d" | "p" | "r" | "m" | undefined;
22
+ pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
23
23
  characterMaximumLength?: number | null | undefined;
24
24
  notNull?: boolean | null | undefined;
25
25
  dflt?: string | null | undefined;
@@ -27,18 +27,22 @@ export declare const publishedSchema: v.ObjectType<Omit<{
27
27
  dataType: string;
28
28
  typeOID: number;
29
29
  }>>;
30
+ replicaIdentity: v.Optional<"n" | "d" | "f" | "i">;
30
31
  publications: v.Type<Record<string, {
31
32
  rowFilter: string | null;
32
33
  }>>;
33
34
  }, undefined>>;
34
35
  }, "indexes"> & {
35
- indexes: v.ArrayType<v.ObjectType<Omit<{
36
+ indexes: v.ArrayType<v.ObjectType<Omit<Omit<{
36
37
  name: v.Type<string>;
37
38
  tableName: v.Type<string>;
38
39
  unique: v.Type<boolean>;
39
40
  columns: v.Type<Record<string, "ASC" | "DESC">>;
40
41
  }, "schema"> & {
41
42
  schema: v.Type<string>;
43
+ }, "isReplicaIdentity" | "isImmediate"> & {
44
+ isReplicaIdentity: v.Optional<boolean>;
45
+ isImmediate: v.Optional<boolean>;
42
46
  }, undefined>>;
43
47
  }, undefined>;
44
48
  export type PublishedSchema = v.Infer<typeof publishedSchema>;
@@ -46,20 +50,20 @@ declare const publicationInfoSchema: v.ObjectType<Omit<Omit<{
46
50
  tables: v.ArrayType<v.ObjectType<Omit<Omit<{
47
51
  name: v.Type<string>;
48
52
  columns: v.Type<Record<string, {
49
- pgTypeClass?: "e" | "b" | "c" | "d" | "p" | "r" | "m" | undefined;
53
+ pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
50
54
  characterMaximumLength?: number | null | undefined;
51
55
  notNull?: boolean | null | undefined;
52
56
  dflt?: string | null | undefined;
53
57
  pos: number;
54
58
  dataType: string;
55
59
  }>>;
56
- primaryKey: v.ArrayType<v.Type<string>>;
60
+ primaryKey: v.Optional<string[]>;
57
61
  }, "schema"> & {
58
62
  schema: v.Type<string>;
59
- }, "publications" | "oid" | "columns"> & {
63
+ }, "publications" | "oid" | "columns" | "replicaIdentity"> & {
60
64
  oid: v.Type<number>;
61
65
  columns: v.Type<Record<string, {
62
- pgTypeClass?: "e" | "b" | "c" | "d" | "p" | "r" | "m" | undefined;
66
+ pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
63
67
  characterMaximumLength?: number | null | undefined;
64
68
  notNull?: boolean | null | undefined;
65
69
  dflt?: string | null | undefined;
@@ -67,18 +71,22 @@ declare const publicationInfoSchema: v.ObjectType<Omit<Omit<{
67
71
  dataType: string;
68
72
  typeOID: number;
69
73
  }>>;
74
+ replicaIdentity: v.Optional<"n" | "d" | "f" | "i">;
70
75
  publications: v.Type<Record<string, {
71
76
  rowFilter: string | null;
72
77
  }>>;
73
78
  }, undefined>>;
74
79
  }, "indexes"> & {
75
- indexes: v.ArrayType<v.ObjectType<Omit<{
80
+ indexes: v.ArrayType<v.ObjectType<Omit<Omit<{
76
81
  name: v.Type<string>;
77
82
  tableName: v.Type<string>;
78
83
  unique: v.Type<boolean>;
79
84
  columns: v.Type<Record<string, "ASC" | "DESC">>;
80
85
  }, "schema"> & {
81
86
  schema: v.Type<string>;
87
+ }, "isReplicaIdentity" | "isImmediate"> & {
88
+ isReplicaIdentity: v.Optional<boolean>;
89
+ isImmediate: v.Optional<boolean>;
82
90
  }, undefined>>;
83
91
  }, "publications"> & {
84
92
  publications: v.ArrayType<v.ObjectType<{
@@ -1 +1 @@
1
- {"version":3,"file":"published.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/published.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAG5D,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,UAqEzD;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,UAwD3D;AAKD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAE3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAY9D,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAEzB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,QAAQ,CAAC,GAAG,EACjB,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,eAAe,CAAC,CAiD1B"}
1
+ {"version":3,"file":"published.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/published.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAG5D,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,UAuEzD;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,UA6D3D;AAKD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAE3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAY9D,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAEzB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,QAAQ,CAAC,GAAG,EACjB,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,eAAe,CAAC,CAiD1B"}
@@ -1,13 +1,14 @@
1
1
  import { literal } from 'pg-format';
2
2
  import { equals } from '../../../../../../shared/src/set-utils.js';
3
3
  import * as v from '../../../../../../shared/src/valita.js';
4
- import { indexSpec, publishedTableSpec } from '../../../../db/specs.js';
4
+ import { publishedIndexSpec, publishedTableSpec } from '../../../../db/specs.js';
5
5
  export function publishedTableQuery(publications) {
6
6
  return `
7
7
  WITH published_columns AS (SELECT
8
8
  pc.oid::int8 AS "oid",
9
9
  nspname AS "schema",
10
10
  pc.relname AS "name",
11
+ pc.relreplident AS "replicaIdentity",
11
12
  attnum AS "pos",
12
13
  attname AS "col",
13
14
  pt.typname AS "type",
@@ -37,6 +38,7 @@ tables AS (SELECT json_build_object(
37
38
  'oid', "oid",
38
39
  'schema', "schema",
39
40
  'name', "name",
41
+ 'replicaIdentity', "replicaIdentity",
40
42
  'columns', json_object_agg(
41
43
  DISTINCT
42
44
  col,
@@ -67,7 +69,7 @@ tables AS (SELECT json_build_object(
67
69
  "publication",
68
70
  jsonb_build_object('rowFilter', "rowFilter")
69
71
  )
70
- ) AS "table" FROM published_columns GROUP BY "schema", "name", "oid")
72
+ ) AS "table" FROM published_columns GROUP BY "schema", "name", "oid", "replicaIdentity")
71
73
 
72
74
  SELECT COALESCE(json_agg("table"), '[]'::json) as "tables" FROM tables
73
75
  `;
@@ -92,7 +94,9 @@ export function indexDefinitionsQuery(publications) {
92
94
  pg_indexes.indexname as "name",
93
95
  index_column.name as "col",
94
96
  CASE WHEN pg_index.indoption[index_column.pos-1] & 1 = 1 THEN 'DESC' ELSE 'ASC' END as "dir",
95
- pg_index.indisunique as "unique"
97
+ pg_index.indisunique as "unique",
98
+ pg_index.indisreplident as "isReplicaIdentity",
99
+ pg_index.indimmediate as "isImmediate"
96
100
  FROM pg_indexes
97
101
  JOIN pg_namespace ON pg_indexes.schemaname = pg_namespace.nspname
98
102
  JOIN pg_class pc ON
@@ -109,8 +113,9 @@ export function indexDefinitionsQuery(publications) {
109
113
  ) AS index_column ON true
110
114
  LEFT JOIN pg_constraint ON pg_constraint.conindid = pc.oid
111
115
  WHERE pb.pubname IN (${literal(publications)})
112
- AND pg_constraint.contype is distinct from 'p'
113
- AND pg_constraint.contype is distinct from 'f'
116
+ AND pg_index.indexprs IS NULL
117
+ AND pg_index.indpred IS NULL
118
+ AND (pg_constraint.contype IS NULL OR pg_constraint.contype IN ('p', 'u'))
114
119
  ORDER BY
115
120
  pg_indexes.schemaname,
116
121
  pg_indexes.tablename,
@@ -122,15 +127,17 @@ export function indexDefinitionsQuery(publications) {
122
127
  'tableName', "tableName",
123
128
  'name', "name",
124
129
  'unique', "unique",
130
+ 'isReplicaIdentity', "isReplicaIdentity",
131
+ 'isImmediate', "isImmediate",
125
132
  'columns', json_object_agg(DISTINCT "col", "dir")
126
133
  ) AS index FROM indexed_columns
127
- GROUP BY "schema", "tableName", "name", "unique")
134
+ GROUP BY "schema", "tableName", "name", "unique", "isReplicaIdentity", "isImmediate")
128
135
 
129
136
  SELECT COALESCE(json_agg("index"), '[]'::json) as "indexes" FROM indexes
130
137
  `;
131
138
  }
132
139
  const publishedTablesSchema = v.object({ tables: v.array(publishedTableSpec) });
133
- const publishedIndexesSchema = v.object({ indexes: v.array(indexSpec) });
140
+ const publishedIndexesSchema = v.object({ indexes: v.array(publishedIndexSpec) });
134
141
  export const publishedSchema = publishedTablesSchema.extend(publishedIndexesSchema.shape);
135
142
  const publicationSchema = v.object({
136
143
  pubname: v.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"published.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/published.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAElC,OAAO,EAAC,MAAM,EAAC,MAAM,2CAA2C,CAAC;AACjE,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAC5D,OAAO,EAAC,SAAS,EAAE,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAEtE,MAAM,UAAU,mBAAmB,CAAC,YAAsB;IACxD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA2Bc,OAAO,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCzC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,YAAsB;IAC1D,uEAAuE;IACvE,uEAAuE;IACvE,WAAW;IACX,EAAE;IACF,gGAAgG;IAChG,EAAE;IACF,uEAAuE;IACvE,sEAAsE;IACtE,wDAAwD;IACxD,EAAE;IACF,gEAAgE;IAChE,wHAAwH;IACxH,OAAO;;;;;;;;;;;;;;;;;;;;;;;2BAuBkB,OAAO,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;;;GAmB7C,CAAC;AACJ,CAAC;AAED,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAC,CAAC,CAAC;AAC9E,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAC,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,CAAC,MAAM,CACzD,sBAAsB,CAAC,KAAK,CAC7B,CAAC;AAIF,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;CACzB,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAE5D,MAAM,qBAAqB,GAAG,eAAe,CAAC,MAAM,CAAC;IACnD,YAAY,EAAE,wBAAwB;CACvC,CAAC,CAAC;AAIH;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAiB,EACjB,YAAsB;IAEtB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC;;;;;;2BAMP,OAAO,CAAC,YAAY,CAAC;;;WAGrC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,IAAI,CAChD,GAAG,CACJ;2BACwB,OAAO,CAAC,YAAY,CAAC;;;IAG5C,mBAAmB,CAAC,YAAY,CAAC;;IAEjC,qBAAqB,CAAC,YAAY,CAAC;CACtC,CAAC,CAAC;IAED,wEAAwE;IACxE,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAI9B,CAAC;IACJ,KAAK,MAAM,EAAC,KAAK,EAAE,YAAY,EAAC,IAAI,gBAAgB,EAAE,CAAC;QACrD,IAAI,QAAqB,CAAC;QAC1B,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE;YACvD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACZ,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;iBAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CACb,SAAS,KAAK,yCAAyC;oBACrD,GAAG,QAAQ;iBACZ,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CACvB,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,wBAAwB,CAAC;QAC1D,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC;QAC/C,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC;KACjD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"published.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/published.ts"],"names":[],"mappings":"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"}
@@ -15,12 +15,13 @@ declare const internalShardConfigSchema: v.ObjectType<{
15
15
  ddlDetection: v.Type<boolean>;
16
16
  initialSchema: v.Type<{
17
17
  tables: {
18
+ primaryKey?: string[] | undefined;
19
+ replicaIdentity?: "n" | "d" | "f" | "i" | undefined;
18
20
  name: string;
19
21
  schema: string;
20
- primaryKey: string[];
21
22
  oid: number;
22
23
  columns: Record<string, {
23
- pgTypeClass?: "e" | "b" | "c" | "d" | "p" | "r" | "m" | undefined;
24
+ pgTypeClass?: "e" | "d" | "b" | "c" | "p" | "r" | "m" | undefined;
24
25
  characterMaximumLength?: number | null | undefined;
25
26
  notNull?: boolean | null | undefined;
26
27
  dflt?: string | null | undefined;
@@ -33,11 +34,13 @@ declare const internalShardConfigSchema: v.ObjectType<{
33
34
  }>;
34
35
  }[];
35
36
  indexes: {
37
+ isReplicaIdentity?: boolean | undefined;
38
+ isImmediate?: boolean | undefined;
36
39
  name: string;
40
+ schema: string;
37
41
  columns: Record<string, "ASC" | "DESC">;
38
42
  tableName: string;
39
43
  unique: boolean;
40
- schema: string;
41
44
  }[];
42
45
  } | null>;
43
46
  }, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"shard.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/shard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAIjD,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAC5D,OAAO,KAAK,EAAC,UAAU,EAAE,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAE7E,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AAIxB,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,UACtB,MAAM,YACrB;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,UAExC;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,UAE9C;AAED,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAC9C,eAAO,MAAM,2BAA2B,WAAW,CAAC;AAOpD,eAAO,MAAM,YAAY,0nBAgBxB,CAAC;AA6CF,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAYjD;AAED,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAI7B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAc5E,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,MAAM,EACf,EAAC,MAAM,EAAE,OAAO,EAAC,EAAE,eAAe,iBAKnC;AAED,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,mBAAmB,EACvB,EAAC,EAAE,EAAE,YAAY,EAAC,EAAE,WAAW,iBA4DhC;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,eAAe,QAkB3B"}
1
+ {"version":3,"file":"shard.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/shard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAIjD,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAE5D,OAAO,KAAK,EAAC,UAAU,EAAE,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAE7E,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AAIxB,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,UACtB,MAAM,YACrB;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,UAExC;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,UAE9C;AAED,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAC9C,eAAO,MAAM,2BAA2B,WAAW,CAAC;AAOpD,eAAO,MAAM,YAAY,0nBAgBxB,CAAC;AA6CF,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAYjD;AAED,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAI7B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAc5E,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,MAAM,EACf,EAAC,MAAM,EAAE,OAAO,EAAC,EAAE,eAAe,iBAKnC;AAED,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,mBAAmB,EACvB,EAAC,EAAE,EAAE,YAAY,EAAC,EAAE,WAAW,iBA8DhC;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,eAAe,QAkB3B"}
@@ -3,9 +3,10 @@ import { literal } from 'pg-format';
3
3
  import postgres from 'postgres';
4
4
  import { assert } from '../../../../../../shared/src/asserts.js';
5
5
  import * as v from '../../../../../../shared/src/valita.js';
6
+ import { Default } from '../../../../db/postgres-replica-identity-enum.js';
6
7
  import { id } from '../../../../types/sql.js';
7
8
  import { createEventTriggerStatements } from './ddl.js';
8
- import { publishedSchema, } from './published.js';
9
+ import { getPublicationInfo, publishedSchema, } from './published.js';
9
10
  import { validate } from './validation.js';
10
11
  // Creates a function that appends `_SHARD_ID` to the input.
11
12
  export function append(shardID) {
@@ -152,6 +153,7 @@ export async function setupTablesAndReplication(lc, tx, { id, publications }) {
152
153
  }
153
154
  // Setup the global tables and shard tables / publications.
154
155
  await tx.unsafe(GLOBAL_SETUP + shardSetup(id, allPublications));
156
+ await setReplicaIdentityForTablesWithoutPrimaryKeys(lc, tx, allPublications);
155
157
  try {
156
158
  await tx.savepoint(sub => sub.unsafe(triggerSetup(id, allPublications)));
157
159
  }
@@ -180,4 +182,30 @@ export function validatePublications(lc, shardID, published) {
180
182
  });
181
183
  published.tables.forEach(table => validate(lc, shardID, table));
182
184
  }
185
+ async function setReplicaIdentityForTablesWithoutPrimaryKeys(lc, db, publications) {
186
+ const pubs = await getPublicationInfo(db, publications);
187
+ for (const table of pubs.tables) {
188
+ if (!table.primaryKey?.length && table.replicaIdentity === Default) {
189
+ // Look for an index that can serve as the REPLICA IDENTITY USING INDEX. It must be:
190
+ // - UNIQUE
191
+ // - NOT NULL columns
192
+ // - not deferrable (i.e. isImmediate)
193
+ // - not partial (are already filtered out)
194
+ //
195
+ // https://www.postgresql.org/docs/current/sql-altertable.html#SQL-ALTERTABLE-REPLICA-IDENTITY
196
+ const { schema, name: tableName } = table;
197
+ for (const { columns, name: indexName } of pubs.indexes.filter(idx => idx.schema === schema &&
198
+ idx.tableName === tableName &&
199
+ idx.unique &&
200
+ idx.isImmediate)) {
201
+ if (Object.keys(columns).some(col => !table.columns[col].notNull)) {
202
+ continue; // Only indexes with all NOT NULL columns are suitable.
203
+ }
204
+ lc.info?.(`setting "${indexName}" as the REPLICA IDENTITY for "${tableName}"`);
205
+ await db `ALTER TABLE ${db(schema)}.${db(tableName)} REPLICA IDENTITY USING INDEX ${db(indexName)}`;
206
+ break;
207
+ }
208
+ }
209
+ }
210
+ }
183
211
  //# sourceMappingURL=shard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shard.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/shard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shard.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/shard.ts"],"names":[],"mappings":"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"}