@powersync/service-module-postgres 0.0.0-dev-20260313100403 → 0.0.0-dev-20260515144844

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 (84) hide show
  1. package/dist/api/PostgresRouteAPIAdapter.d.ts +1 -1
  2. package/dist/api/PostgresRouteAPIAdapter.js +63 -72
  3. package/dist/api/PostgresRouteAPIAdapter.js.map +1 -1
  4. package/dist/module/PostgresModule.js.map +1 -1
  5. package/dist/replication/MissingReplicationSlotError.d.ts +41 -0
  6. package/dist/replication/MissingReplicationSlotError.js +33 -0
  7. package/dist/replication/MissingReplicationSlotError.js.map +1 -0
  8. package/dist/replication/PgManager.js +3 -2
  9. package/dist/replication/PgManager.js.map +1 -1
  10. package/dist/replication/PostgresErrorRateLimiter.js +1 -1
  11. package/dist/replication/PostgresErrorRateLimiter.js.map +1 -1
  12. package/dist/replication/SnapshotQuery.js +8 -7
  13. package/dist/replication/SnapshotQuery.js.map +1 -1
  14. package/dist/replication/WalStream.d.ts +37 -14
  15. package/dist/replication/WalStream.js +175 -60
  16. package/dist/replication/WalStream.js.map +1 -1
  17. package/dist/replication/WalStreamReplicationJob.d.ts +1 -1
  18. package/dist/replication/WalStreamReplicationJob.js +9 -6
  19. package/dist/replication/WalStreamReplicationJob.js.map +1 -1
  20. package/dist/replication/WalStreamReplicator.d.ts +0 -1
  21. package/dist/replication/WalStreamReplicator.js +0 -22
  22. package/dist/replication/WalStreamReplicator.js.map +1 -1
  23. package/dist/replication/replication-index.d.ts +3 -1
  24. package/dist/replication/replication-index.js +3 -1
  25. package/dist/replication/replication-index.js.map +1 -1
  26. package/dist/replication/replication-utils.d.ts +3 -11
  27. package/dist/replication/replication-utils.js +103 -165
  28. package/dist/replication/replication-utils.js.map +1 -1
  29. package/dist/replication/rquery.d.ts +5 -0
  30. package/dist/replication/rquery.js +35 -0
  31. package/dist/replication/rquery.js.map +1 -0
  32. package/dist/replication/wal-budget-utils.d.ts +23 -0
  33. package/dist/replication/wal-budget-utils.js +57 -0
  34. package/dist/replication/wal-budget-utils.js.map +1 -0
  35. package/dist/types/registry.js +1 -1
  36. package/dist/types/registry.js.map +1 -1
  37. package/dist/utils/errors.d.ts +2 -0
  38. package/dist/utils/errors.js +30 -0
  39. package/dist/utils/errors.js.map +1 -0
  40. package/package.json +17 -13
  41. package/sql/check-source-configuration.plpgsql +13 -0
  42. package/sql/debug-tables-info-batched.plpgsql +230 -0
  43. package/CHANGELOG.md +0 -834
  44. package/src/api/PostgresRouteAPIAdapter.ts +0 -356
  45. package/src/index.ts +0 -1
  46. package/src/module/PostgresModule.ts +0 -122
  47. package/src/replication/ConnectionManagerFactory.ts +0 -33
  48. package/src/replication/PgManager.ts +0 -122
  49. package/src/replication/PgRelation.ts +0 -41
  50. package/src/replication/PostgresErrorRateLimiter.ts +0 -48
  51. package/src/replication/SnapshotQuery.ts +0 -213
  52. package/src/replication/WalStream.ts +0 -1157
  53. package/src/replication/WalStreamReplicationJob.ts +0 -138
  54. package/src/replication/WalStreamReplicator.ts +0 -79
  55. package/src/replication/replication-index.ts +0 -5
  56. package/src/replication/replication-utils.ts +0 -398
  57. package/src/types/registry.ts +0 -275
  58. package/src/types/resolver.ts +0 -227
  59. package/src/types/types.ts +0 -44
  60. package/src/utils/application-name.ts +0 -8
  61. package/src/utils/migration_lib.ts +0 -80
  62. package/src/utils/populate_test_data.ts +0 -37
  63. package/src/utils/populate_test_data_worker.ts +0 -53
  64. package/src/utils/postgres_version.ts +0 -8
  65. package/test/src/checkpoints.test.ts +0 -86
  66. package/test/src/chunked_snapshots.test.ts +0 -161
  67. package/test/src/env.ts +0 -11
  68. package/test/src/large_batch.test.ts +0 -241
  69. package/test/src/pg_test.test.ts +0 -729
  70. package/test/src/resuming_snapshots.test.ts +0 -160
  71. package/test/src/route_api_adapter.test.ts +0 -62
  72. package/test/src/schema_changes.test.ts +0 -655
  73. package/test/src/setup.ts +0 -12
  74. package/test/src/slow_tests.test.ts +0 -519
  75. package/test/src/storage_combination.test.ts +0 -35
  76. package/test/src/types/registry.test.ts +0 -149
  77. package/test/src/util.ts +0 -151
  78. package/test/src/validation.test.ts +0 -63
  79. package/test/src/wal_stream.test.ts +0 -607
  80. package/test/src/wal_stream_utils.ts +0 -284
  81. package/test/tsconfig.json +0 -27
  82. package/tsconfig.json +0 -34
  83. package/tsconfig.tsbuildinfo +0 -1
  84. package/vitest.config.ts +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/types/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/types/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { ServiceError } from '@powersync/lib-services-framework';
2
+ export declare function mapPostgresReplicationError(error: unknown, query?: string): ServiceError;
@@ -0,0 +1,30 @@
1
+ import { DatabaseQueryError, ErrorCode, ServiceError } from '@powersync/lib-services-framework';
2
+ import { SocketTimeoutError } from '@powersync/service-jpgwire';
3
+ export function mapPostgresReplicationError(error, query) {
4
+ if (error instanceof ServiceError) {
5
+ return error;
6
+ }
7
+ if (error.message == 'postgres query late') {
8
+ // This comes from pgwire
9
+ // The "postgres query late" message is not very useful on its own.
10
+ // The cause may contain more details, but the error itself contains the most useful stack.
11
+ // So we preserve the error, but replace the message.
12
+ let message = `Postgres query failed`;
13
+ if (error.cause?.message) {
14
+ message += ': ' + error.cause?.message;
15
+ }
16
+ error.message = message;
17
+ }
18
+ let result;
19
+ if (error instanceof SocketTimeoutError || error.cause instanceof SocketTimeoutError) {
20
+ result = new DatabaseQueryError(ErrorCode.PSYNC_S1121, 'Socket timed out while replicating', error);
21
+ }
22
+ else {
23
+ result = new DatabaseQueryError(ErrorCode.PSYNC_S1120, 'Postgres error while replicating', error);
24
+ }
25
+ if (query) {
26
+ result.query = query;
27
+ }
28
+ return result;
29
+ }
30
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,UAAU,2BAA2B,CAAC,KAAc,EAAE,KAAc;IACxE,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAK,KAAe,CAAC,OAAO,IAAI,qBAAqB,EAAE,CAAC;QACtD,yBAAyB;QACzB,mEAAmE;QACnE,2FAA2F;QAC3F,qDAAqD;QACrD,IAAI,OAAO,GAAG,uBAAuB,CAAC;QACtC,IAAK,KAAa,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YAClC,OAAO,IAAI,IAAI,GAAI,KAAa,CAAC,KAAK,EAAE,OAAO,CAAC;QAClD,CAAC;QACA,KAAe,CAAC,OAAO,GAAG,OAAO,CAAC;IACrC,CAAC;IACD,IAAI,MAA0B,CAAC;IAC/B,IAAI,KAAK,YAAY,kBAAkB,IAAK,KAAe,CAAC,KAAK,YAAY,kBAAkB,EAAE,CAAC;QAChG,MAAM,GAAG,IAAI,kBAAkB,CAAC,SAAS,CAAC,WAAW,EAAE,oCAAoC,EAAE,KAAK,CAAC,CAAC;IACtG,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,IAAI,kBAAkB,CAAC,SAAS,CAAC,WAAW,EAAE,kCAAkC,EAAE,KAAK,CAAC,CAAC;IACpG,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -5,10 +5,14 @@
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
- "version": "0.0.0-dev-20260313100403",
8
+ "version": "0.0.0-dev-20260515144844",
9
9
  "main": "dist/index.js",
10
10
  "license": "FSL-1.1-ALv2",
11
11
  "type": "module",
12
+ "files": [
13
+ "dist/**/*",
14
+ "sql/**/*"
15
+ ],
12
16
  "exports": {
13
17
  ".": {
14
18
  "import": "./dist/index.js",
@@ -24,21 +28,21 @@
24
28
  "dependencies": {
25
29
  "semver": "^7.5.4",
26
30
  "ts-codec": "^1.3.0",
27
- "uuid": "^11.1.0",
28
- "@powersync/lib-service-postgres": "0.0.0-dev-20260313100403",
29
- "@powersync/lib-services-framework": "0.0.0-dev-20260313100403",
30
- "@powersync/service-core": "0.0.0-dev-20260313100403",
31
- "@powersync/service-jpgwire": "0.0.0-dev-20260313100403",
32
- "@powersync/service-jsonbig": "0.17.12",
33
- "@powersync/service-sync-rules": "0.0.0-dev-20260313100403",
34
- "@powersync/service-types": "0.0.0-dev-20260313100403"
31
+ "uuid": "^14.0.0",
32
+ "@powersync/lib-service-postgres": "0.0.0-dev-20260515144844",
33
+ "@powersync/lib-services-framework": "0.0.0-dev-20260515144844",
34
+ "@powersync/service-core": "0.0.0-dev-20260515144844",
35
+ "@powersync/service-jpgwire": "0.21.18",
36
+ "@powersync/service-jsonbig": "0.17.13",
37
+ "@powersync/service-sync-rules": "0.0.0-dev-20260515144844",
38
+ "@powersync/service-types": "0.15.2"
35
39
  },
36
40
  "devDependencies": {
37
41
  "@types/semver": "^7.5.4",
38
- "@powersync/lib-service-postgres": "0.0.0-dev-20260313100403",
39
- "@powersync/service-core-tests": "0.0.0-dev-20260313100403",
40
- "@powersync/service-module-mongodb-storage": "0.0.0-dev-20260313100403",
41
- "@powersync/service-module-postgres-storage": "0.0.0-dev-20260313100403"
42
+ "@powersync/lib-service-postgres": "0.0.0-dev-20260515144844",
43
+ "@powersync/service-core-tests": "0.15.5",
44
+ "@powersync/service-module-mongodb-storage": "0.0.0-dev-20260515144844",
45
+ "@powersync/service-module-postgres-storage": "0.0.0-dev-20260515144844"
42
46
  },
43
47
  "scripts": {
44
48
  "build": "tsc -b",
@@ -0,0 +1,13 @@
1
+ DO $$
2
+ BEGIN
3
+ if current_setting('wal_level') is distinct from 'logical' then
4
+ raise exception 'wal_level must be set to ''logical'', your database has it set to ''%''. Please edit your config file and restart PostgreSQL.', current_setting('wal_level');
5
+ end if;
6
+ if (current_setting('max_replication_slots')::int >= 1) is not true then
7
+ raise exception 'Your max_replication_slots setting is too low, it must be greater than 1. Please edit your config file and restart PostgreSQL.';
8
+ end if;
9
+ if (current_setting('max_wal_senders')::int >= 1) is not true then
10
+ raise exception 'Your max_wal_senders setting is too low, it must be greater than 1. Please edit your config file and restart PostgreSQL.';
11
+ end if;
12
+ end;
13
+ $$ LANGUAGE plpgsql;
@@ -0,0 +1,230 @@
1
+ DO $$
2
+ DECLARE
3
+ input_patterns jsonb := current_setting('powersync.debug.table_patterns', true)::jsonb;
4
+ current_publication text := current_setting('powersync.debug.publication_name', true);
5
+ select_probe_results jsonb := '[]'::jsonb;
6
+ debug_cursor refcursor := 'powersync_debug_tables_cursor';
7
+ select_target record;
8
+ BEGIN
9
+ -- Capture per-table read failures without aborting the whole batch.
10
+ FOR select_target IN
11
+ WITH patterns AS (
12
+ SELECT *
13
+ FROM jsonb_to_recordset(input_patterns) AS p(
14
+ pattern_ord int,
15
+ schema_name text,
16
+ table_pattern text,
17
+ is_wildcard boolean,
18
+ table_prefix text,
19
+ input_name text
20
+ )
21
+ )
22
+ SELECT
23
+ p.pattern_ord,
24
+ p.schema_name,
25
+ c.relname AS table_name,
26
+ c.oid::int8 AS relid
27
+ FROM patterns p
28
+ JOIN pg_namespace n ON n.nspname = p.schema_name
29
+ JOIN pg_class c ON c.relnamespace = n.oid
30
+ WHERE c.relkind = 'r'
31
+ AND (
32
+ (p.is_wildcard AND c.relname LIKE p.table_pattern AND left(c.relname, length(p.table_prefix)) = p.table_prefix)
33
+ OR
34
+ (NOT p.is_wildcard AND c.relname = p.table_pattern)
35
+ )
36
+ ORDER BY p.pattern_ord, c.relname
37
+ LOOP
38
+ BEGIN
39
+ -- Query a single row from each table, to confirm that we can query the table
40
+ -- (no permission errors)
41
+ -- %I covers identifier escaping
42
+ EXECUTE format('SELECT 1 FROM %I.%I LIMIT 1', select_target.schema_name, select_target.table_name);
43
+ select_probe_results := select_probe_results || jsonb_build_array(
44
+ jsonb_build_object(
45
+ 'pattern_ord', select_target.pattern_ord,
46
+ 'relid', select_target.relid,
47
+ 'message', NULL
48
+ )
49
+ );
50
+ EXCEPTION WHEN OTHERS THEN
51
+ select_probe_results := select_probe_results || jsonb_build_array(
52
+ jsonb_build_object(
53
+ 'pattern_ord', select_target.pattern_ord,
54
+ 'relid', select_target.relid,
55
+ 'message', SQLERRM
56
+ )
57
+ );
58
+ END;
59
+ END LOOP;
60
+
61
+ -- OPEN debug_cursor to allow returning results
62
+ OPEN debug_cursor FOR
63
+ WITH patterns AS (
64
+ -- Rehydrate the requested patterns once for the bulk metadata pass.
65
+ SELECT *
66
+ FROM jsonb_to_recordset(input_patterns) AS p(
67
+ pattern_ord int,
68
+ schema_name text,
69
+ table_pattern text,
70
+ is_wildcard boolean,
71
+ table_prefix text,
72
+ input_name text
73
+ )
74
+ ),
75
+ matched AS (
76
+ -- Expand each requested pattern to the concrete tables that exist.
77
+ SELECT
78
+ p.pattern_ord,
79
+ p.schema_name,
80
+ p.table_pattern,
81
+ p.is_wildcard,
82
+ p.input_name,
83
+ c.relid,
84
+ c.table_name,
85
+ c.relreplident,
86
+ c.relrowsecurity
87
+ FROM patterns p
88
+ LEFT JOIN LATERAL (
89
+ SELECT
90
+ c.oid::int8 AS relid,
91
+ c.relname AS table_name,
92
+ c.relreplident,
93
+ c.relrowsecurity
94
+ FROM pg_namespace n
95
+ JOIN pg_class c ON c.relnamespace = n.oid
96
+ WHERE n.nspname = p.schema_name
97
+ AND c.relkind = 'r'
98
+ AND (
99
+ (p.is_wildcard AND c.relname LIKE p.table_pattern AND left(c.relname, length(p.table_prefix)) = p.table_prefix)
100
+ OR
101
+ (NOT p.is_wildcard AND c.relname = p.table_pattern)
102
+ )
103
+ ORDER BY c.relname
104
+ ) c ON true
105
+ WHERE NOT p.is_wildcard OR c.relid IS NOT NULL
106
+ ),
107
+ existing AS (
108
+ -- Deduplicate matched tables while carrying the pg_class metadata we already have.
109
+ SELECT DISTINCT
110
+ relid::oid AS relid,
111
+ CASE relreplident
112
+ WHEN 'd' THEN 'default'
113
+ WHEN 'n' THEN 'nothing'
114
+ WHEN 'f' THEN 'full'
115
+ WHEN 'i' THEN 'index'
116
+ END AS replication_identity,
117
+ relrowsecurity AS rls_enabled
118
+ FROM matched
119
+ WHERE relid IS NOT NULL
120
+ ),
121
+ replication_columns AS (
122
+ -- Resolve the actual replication-id columns for default/index/full modes.
123
+ SELECT
124
+ e.relid,
125
+ a.attname AS name,
126
+ a.attnum AS attnum
127
+ FROM existing e
128
+ JOIN pg_index i ON i.indrelid = e.relid AND i.indisprimary
129
+ JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = ANY(i.indkey)
130
+ WHERE e.replication_identity = 'default' AND a.attnum > 0
131
+
132
+ UNION ALL
133
+
134
+ SELECT
135
+ e.relid,
136
+ a.attname AS name,
137
+ a.attnum AS attnum
138
+ FROM existing e
139
+ JOIN pg_index i ON i.indrelid = e.relid AND i.indisreplident
140
+ JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = ANY(i.indkey)
141
+ WHERE e.replication_identity = 'index' AND a.attnum > 0
142
+
143
+ UNION ALL
144
+
145
+ SELECT
146
+ e.relid,
147
+ a.attname AS name,
148
+ a.attnum AS attnum
149
+ FROM existing e
150
+ JOIN pg_attribute a ON a.attrelid = e.relid
151
+ WHERE e.replication_identity = 'full' AND a.attnum > 0
152
+ ),
153
+ publication_membership AS (
154
+ -- Check publication membership in bulk instead of once per table.
155
+ SELECT
156
+ m.pattern_ord,
157
+ m.relid
158
+ FROM matched m
159
+ JOIN pg_publication_tables p
160
+ ON p.pubname = current_publication
161
+ AND p.schemaname = m.schema_name
162
+ AND p.tablename = m.table_name
163
+ WHERE m.relid IS NOT NULL
164
+ ),
165
+ user_info AS (
166
+ -- Current-role capabilities are constant across all tables in this batch.
167
+ SELECT
168
+ current_user AS username,
169
+ r.rolsuper AS is_superuser,
170
+ r.rolbypassrls AS bypasses_rls
171
+ FROM pg_roles r
172
+ WHERE r.rolname = current_user
173
+ ),
174
+ rls_check AS (
175
+ -- Pair role capabilities with the row-security metadata already carried from pg_class.
176
+ SELECT
177
+ e.relid::int8 AS relid,
178
+ e.rls_enabled,
179
+ u.username,
180
+ u.is_superuser,
181
+ u.bypasses_rls
182
+ FROM existing e
183
+ CROSS JOIN user_info u
184
+ ),
185
+ select_probes AS (
186
+ -- Rehydrate the recorded SELECT probe failures for the final result set.
187
+ SELECT *
188
+ FROM jsonb_to_recordset(select_probe_results) AS s(
189
+ pattern_ord int,
190
+ relid int8,
191
+ message text
192
+ )
193
+ )
194
+ SELECT
195
+ m.pattern_ord,
196
+ m.schema_name,
197
+ COALESCE(m.table_name, m.input_name) AS name,
198
+ m.relid AS relation_id,
199
+ e.replication_identity,
200
+ COALESCE(
201
+ jsonb_agg(rc.name ORDER BY rc.attnum) FILTER (WHERE rc.name IS NOT NULL),
202
+ '[]'::jsonb
203
+ )::text AS replication_id_json,
204
+ sp.message AS select_error,
205
+ (pm.relid IS NOT NULL) AS in_publication,
206
+ rls.rls_enabled,
207
+ rls.username,
208
+ rls.is_superuser,
209
+ rls.bypasses_rls
210
+ FROM matched m
211
+ LEFT JOIN existing e ON e.relid = m.relid
212
+ LEFT JOIN replication_columns rc ON rc.relid = m.relid
213
+ LEFT JOIN publication_membership pm ON pm.pattern_ord = m.pattern_ord AND pm.relid = m.relid
214
+ LEFT JOIN rls_check rls ON rls.relid = m.relid
215
+ LEFT JOIN select_probes sp ON sp.pattern_ord = m.pattern_ord AND sp.relid = m.relid
216
+ GROUP BY
217
+ m.pattern_ord,
218
+ m.schema_name,
219
+ COALESCE(m.table_name, m.input_name),
220
+ m.relid,
221
+ e.replication_identity,
222
+ sp.message,
223
+ pm.relid,
224
+ rls.rls_enabled,
225
+ rls.username,
226
+ rls.is_superuser,
227
+ rls.bypasses_rls
228
+ ORDER BY m.pattern_ord, COALESCE(m.table_name, m.input_name);
229
+ END
230
+ $$