@rocicorp/zero 0.23.2025081401 → 0.23.2025081900
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.
- package/out/analyze-query/src/bin-analyze.d.ts.map +1 -1
- package/out/analyze-query/src/bin-analyze.js +56 -99
- package/out/analyze-query/src/bin-analyze.js.map +1 -1
- package/out/analyze-query/src/explain-queries.d.ts +4 -0
- package/out/analyze-query/src/explain-queries.d.ts.map +1 -0
- package/out/analyze-query/src/explain-queries.js +18 -0
- package/out/analyze-query/src/explain-queries.js.map +1 -0
- package/out/analyze-query/src/run-ast.d.ts +29 -0
- package/out/analyze-query/src/run-ast.d.ts.map +1 -0
- package/out/analyze-query/src/run-ast.js +68 -0
- package/out/analyze-query/src/run-ast.js.map +1 -0
- package/out/{chunk-O536GEIT.js → chunk-RPVWLROJ.js} +80 -35
- package/out/{chunk-O536GEIT.js.map → chunk-RPVWLROJ.js.map} +3 -3
- package/out/{chunk-ZIZNSAHP.js → chunk-ZKQCPILX.js} +55 -58
- package/out/chunk-ZKQCPILX.js.map +7 -0
- package/out/{chunk-KKPRF2XZ.js → chunk-ZZJ2SCHD.js} +124 -63
- package/out/{chunk-KKPRF2XZ.js.map → chunk-ZZJ2SCHD.js.map} +4 -4
- package/out/{inspector-J5P4DOGH.js → inspector-NC47TWFX.js} +4 -3
- package/out/{inspector-J5P4DOGH.js.map → inspector-NC47TWFX.js.map} +2 -2
- package/out/react.js +2 -2
- package/out/solid.js +3 -3
- package/out/zero/package.json +1 -1
- package/out/zero/src/server/reaper.d.ts +2 -0
- package/out/zero/src/server/reaper.d.ts.map +1 -0
- package/out/zero/src/server/reaper.js +2 -0
- package/out/zero/src/server/reaper.js.map +1 -0
- package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js +2 -3
- package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +4 -0
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +9 -1
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/custom-queries/transform-query.d.ts +2 -3
- package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +1 -1
- package/out/zero-cache/src/custom-queries/transform-query.js +18 -4
- package/out/zero-cache/src/custom-queries/transform-query.js.map +1 -1
- package/out/zero-cache/src/observability/events.js +1 -2
- package/out/zero-cache/src/observability/events.js.map +1 -1
- package/out/zero-cache/src/server/inspect-metrics-delegate.d.ts +23 -0
- package/out/zero-cache/src/server/inspect-metrics-delegate.d.ts.map +1 -0
- package/out/zero-cache/src/server/inspect-metrics-delegate.js +55 -0
- package/out/zero-cache/src/server/inspect-metrics-delegate.js.map +1 -0
- package/out/zero-cache/src/server/main.d.ts.map +1 -1
- package/out/zero-cache/src/server/main.js +12 -15
- package/out/zero-cache/src/server/main.js.map +1 -1
- package/out/zero-cache/src/server/reaper.d.ts +3 -0
- package/out/zero-cache/src/server/reaper.d.ts.map +1 -0
- package/out/zero-cache/src/server/reaper.js +31 -0
- package/out/zero-cache/src/server/reaper.js.map +1 -0
- package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts.map +1 -1
- package/out/zero-cache/src/server/runner/zero-dispatcher.js +6 -0
- package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -1
- package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/server/syncer.js +3 -1
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/services/analyze.d.ts +6 -0
- package/out/zero-cache/src/services/analyze.d.ts.map +1 -0
- package/out/zero-cache/src/services/analyze.js +70 -0
- package/out/zero-cache/src/services/analyze.js.map +1 -0
- package/out/zero-cache/src/services/change-source/custom/change-source.js +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js +8 -3
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.d.ts +38 -2
- package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.d.ts +3 -2
- package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.js +39 -34
- package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.js +1 -3
- package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
- package/out/zero-cache/src/services/replicator/replication-status.js +1 -1
- package/out/zero-cache/src/services/replicator/replication-status.js.map +1 -1
- package/out/zero-cache/src/services/running-state.d.ts +5 -0
- package/out/zero-cache/src/services/running-state.d.ts.map +1 -1
- package/out/zero-cache/src/services/running-state.js +8 -1
- package/out/zero-cache/src/services/running-state.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +2 -0
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.js +3 -0
- package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts +16 -0
- package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/cvr-purger.js +86 -0
- package/out/zero-cache/src/services/view-syncer/cvr-purger.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +16 -9
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +50 -30
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js +36 -26
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.js +27 -0
- package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +2 -9
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +93 -75
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/pg.d.ts +1 -1
- package/out/zero-cache/src/types/pg.js +1 -1
- package/out/zero-client/src/client/context.d.ts +1 -0
- package/out/zero-client/src/client/context.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/types.d.ts +1 -0
- package/out/zero-client/src/client/inspector/types.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/mod.d.ts +1 -1
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-events/src/status.d.ts +10 -9
- package/out/zero-events/src/status.d.ts.map +1 -1
- package/out/zero-events/src/status.js +7 -10
- package/out/zero-events/src/status.js.map +1 -1
- package/out/zero-protocol/src/custom-queries.d.ts +77 -5
- package/out/zero-protocol/src/custom-queries.d.ts.map +1 -1
- package/out/zero-protocol/src/custom-queries.js +19 -1
- package/out/zero-protocol/src/custom-queries.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +19 -1
- package/out/zero-protocol/src/down.d.ts.map +1 -1
- package/out/zero-protocol/src/down.js +2 -1
- package/out/zero-protocol/src/down.js.map +1 -1
- package/out/zero-protocol/src/inspect-down.d.ts +8 -0
- package/out/zero-protocol/src/inspect-down.d.ts.map +1 -1
- package/out/zero-protocol/src/inspect-down.js +1 -0
- package/out/zero-protocol/src/inspect-down.js.map +1 -1
- package/out/zero-protocol/src/protocol-version.d.ts +1 -1
- package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
- package/out/zero-protocol/src/protocol-version.js +3 -1
- package/out/zero-protocol/src/protocol-version.js.map +1 -1
- package/out/zero-server/src/mod.d.ts +1 -0
- package/out/zero-server/src/mod.d.ts.map +1 -1
- package/out/zero-server/src/mod.js +1 -0
- package/out/zero-server/src/mod.js.map +1 -1
- package/out/zero-server/src/process-mutations.d.ts +46 -0
- package/out/zero-server/src/process-mutations.d.ts.map +1 -0
- package/out/zero-server/src/process-mutations.js +187 -0
- package/out/zero-server/src/process-mutations.js.map +1 -0
- package/out/zero-server/src/push-processor.d.ts +2 -27
- package/out/zero-server/src/push-processor.d.ts.map +1 -1
- package/out/zero-server/src/push-processor.js +17 -154
- package/out/zero-server/src/push-processor.js.map +1 -1
- package/out/zero-server/src/queries/process-queries.d.ts +1 -1
- package/out/zero-server/src/queries/process-queries.d.ts.map +1 -1
- package/out/zero-server/src/queries/process-queries.js +1 -1
- package/out/zero-server/src/queries/process-queries.js.map +1 -1
- package/out/zero-server/src/zql-database.d.ts +1 -1
- package/out/zero-server/src/zql-database.d.ts.map +1 -1
- package/out/zero.js +14 -10
- package/out/zql/src/builder/builder.d.ts +5 -1
- package/out/zql/src/builder/builder.d.ts.map +1 -1
- package/out/zql/src/builder/builder.js +49 -16
- package/out/zql/src/builder/builder.js.map +1 -1
- package/out/zql/src/builder/debug-delegate.d.ts +29 -0
- package/out/zql/src/builder/debug-delegate.d.ts.map +1 -0
- package/out/zql/src/builder/debug-delegate.js +55 -0
- package/out/zql/src/builder/debug-delegate.js.map +1 -0
- package/out/zql/src/builder/filter.d.ts +0 -3
- package/out/zql/src/builder/filter.d.ts.map +1 -1
- package/out/zql/src/builder/filter.js +0 -3
- package/out/zql/src/builder/filter.js.map +1 -1
- package/out/zql/src/ivm/filter-operators.d.ts +2 -1
- package/out/zql/src/ivm/filter-operators.d.ts.map +1 -1
- package/out/zql/src/ivm/filter-operators.js +7 -2
- package/out/zql/src/ivm/filter-operators.js.map +1 -1
- package/out/zql/src/ivm/memory-source.d.ts +2 -0
- package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
- package/out/zql/src/ivm/memory-source.js.map +1 -1
- package/out/zql/src/ivm/source.d.ts +2 -1
- package/out/zql/src/ivm/source.d.ts.map +1 -1
- package/out/zql/src/query/measure-push-operator.d.ts +19 -0
- package/out/zql/src/query/measure-push-operator.d.ts.map +1 -0
- package/out/zql/src/query/measure-push-operator.js +36 -0
- package/out/zql/src/query/measure-push-operator.js.map +1 -0
- package/out/zql/src/query/metrics-delegate.d.ts +3 -0
- package/out/zql/src/query/metrics-delegate.d.ts.map +1 -1
- package/out/zql/src/query/metrics-delegate.js +6 -1
- package/out/zql/src/query/metrics-delegate.js.map +1 -1
- package/out/zql/src/query/named.d.ts +38 -9
- package/out/zql/src/query/named.d.ts.map +1 -1
- package/out/zql/src/query/named.js +49 -24
- package/out/zql/src/query/named.js.map +1 -1
- package/out/zql/src/query/query-impl.d.ts +1 -1
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zqlite/src/query-delegate.d.ts +1 -0
- package/out/zqlite/src/query-delegate.d.ts.map +1 -1
- package/out/zqlite/src/query-delegate.js +2 -1
- package/out/zqlite/src/query-delegate.js.map +1 -1
- package/out/zqlite/src/table-source.d.ts +3 -2
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +8 -10
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +1 -1
- package/out/chunk-ZIZNSAHP.js.map +0 -7
- package/out/zero-client/src/client/measure-push-operator.d.ts +0 -17
- package/out/zero-client/src/client/measure-push-operator.d.ts.map +0 -1
- package/out/zqlite/src/runtime-debug.d.ts +0 -23
- package/out/zqlite/src/runtime-debug.d.ts.map +0 -1
- package/out/zqlite/src/runtime-debug.js +0 -69
- package/out/zqlite/src/runtime-debug.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin-analyze.d.ts","sourceRoot":"","sources":["../../../../analyze-query/src/bin-analyze.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bin-analyze.d.ts","sourceRoot":"","sources":["../../../../analyze-query/src/bin-analyze.ts"],"names":[],"mappings":"AAOA,OAAO,4BAA4B,CAAC"}
|
|
@@ -5,29 +5,26 @@ import { astToZQL } from "../../ast-to-zql/src/ast-to-zql.js";
|
|
|
5
5
|
import { formatOutput } from "../../ast-to-zql/src/format.js";
|
|
6
6
|
import { logLevel, logOptions } from "../../otel/src/log-options.js";
|
|
7
7
|
import { testLogConfig } from "../../otel/src/test-log-config.js";
|
|
8
|
-
import { assert } from "../../shared/src/asserts.js";
|
|
9
8
|
import "../../shared/src/dotenv.js";
|
|
10
9
|
import { colorConsole, createLogContext } from "../../shared/src/logging.js";
|
|
11
10
|
import { must } from "../../shared/src/must.js";
|
|
12
11
|
import { parseOptions } from "../../shared/src/options.js";
|
|
13
12
|
import * as v from "../../shared/src/valita.js";
|
|
14
|
-
import { transformAndHashQuery } from "../../zero-cache/src/auth/read-authorizer.js";
|
|
15
13
|
import { appOptions, shardOptions, ZERO_ENV_VAR_PREFIX, zeroOptions, } from "../../zero-cache/src/config/zero-config.js";
|
|
16
|
-
import { computeZqlSpecs } from "../../zero-cache/src/db/lite-tables.js";
|
|
17
14
|
import { deployPermissionsOptions, loadSchemaAndPermissions, } from "../../zero-cache/src/scripts/permissions.js";
|
|
18
|
-
import { hydrate } from "../../zero-cache/src/services/view-syncer/pipeline-driver.js";
|
|
19
15
|
import { pgClient } from "../../zero-cache/src/types/pg.js";
|
|
20
16
|
import { getShardID, upstreamSchema } from "../../zero-cache/src/types/shards.js";
|
|
21
|
-
import {
|
|
22
|
-
import { hashOfAST } from "../../zero-protocol/src/query-hash.js";
|
|
17
|
+
import {} from "../../zero-protocol/src/ast.js";
|
|
23
18
|
import { clientToServer, serverToClient, } from "../../zero-schema/src/name-mapper.js";
|
|
24
|
-
import { buildPipeline } from "../../zql/src/builder/builder.js";
|
|
25
19
|
import { MemoryStorage } from "../../zql/src/ivm/memory-storage.js";
|
|
26
20
|
import { completedAST, newQuery } from "../../zql/src/query/query-impl.js";
|
|
27
21
|
import {} from "../../zql/src/query/query.js";
|
|
28
22
|
import { Database } from "../../zqlite/src/db.js";
|
|
29
|
-
import { runtimeDebugFlags
|
|
23
|
+
import { runtimeDebugFlags } from "../../zql/src/builder/debug-delegate.js";
|
|
30
24
|
import { TableSource } from "../../zqlite/src/table-source.js";
|
|
25
|
+
import { Debug } from "../../zql/src/builder/debug-delegate.js";
|
|
26
|
+
import { runAst } from "./run-ast.js";
|
|
27
|
+
import { explainQueries } from "./explain-queries.js";
|
|
31
28
|
const options = {
|
|
32
29
|
schema: deployPermissionsOptions.schema,
|
|
33
30
|
replicaFile: {
|
|
@@ -162,7 +159,6 @@ const config = {
|
|
|
162
159
|
};
|
|
163
160
|
runtimeDebugFlags.trackRowCountsVended = true;
|
|
164
161
|
runtimeDebugFlags.trackRowsVended = config.outputVendedRows;
|
|
165
|
-
const clientGroupID = 'clientGroupIDForAnalyze';
|
|
166
162
|
const lc = createLogContext({
|
|
167
163
|
log: config.log,
|
|
168
164
|
});
|
|
@@ -175,14 +171,16 @@ const { schema, permissions } = await loadSchemaAndPermissions(config.schema.pat
|
|
|
175
171
|
const sources = new Map();
|
|
176
172
|
const clientToServerMapper = clientToServer(schema.tables);
|
|
177
173
|
const serverToClientMapper = serverToClient(schema.tables);
|
|
174
|
+
const debug = new Debug();
|
|
178
175
|
const host = {
|
|
176
|
+
debug,
|
|
179
177
|
getSource: (serverTableName) => {
|
|
180
178
|
const clientTableName = serverToClientMapper.tableName(serverTableName);
|
|
181
179
|
let source = sources.get(serverTableName);
|
|
182
180
|
if (source) {
|
|
183
181
|
return source;
|
|
184
182
|
}
|
|
185
|
-
source = new TableSource(lc, testLogConfig,
|
|
183
|
+
source = new TableSource(lc, testLogConfig, db, serverTableName, Object.fromEntries(Object.entries(schema.tables[clientTableName].columns).map(([colName, column]) => [
|
|
186
184
|
clientToServerMapper.columnName(clientTableName, colName),
|
|
187
185
|
column,
|
|
188
186
|
])), schema.tables[clientTableName].primaryKey.map(col => clientToServerMapper.columnName(clientTableName, col)));
|
|
@@ -196,6 +194,7 @@ const host = {
|
|
|
196
194
|
decorateInput: input => input,
|
|
197
195
|
decorateSourceInput: input => input,
|
|
198
196
|
decorateFilterInput: input => input,
|
|
197
|
+
addEdge() { },
|
|
199
198
|
addServerQuery() {
|
|
200
199
|
return () => { };
|
|
201
200
|
},
|
|
@@ -215,65 +214,29 @@ const host = {
|
|
|
215
214
|
defaultQueryComplete: true,
|
|
216
215
|
addMetric() { },
|
|
217
216
|
};
|
|
218
|
-
let
|
|
219
|
-
let end;
|
|
217
|
+
let result;
|
|
220
218
|
if (config.ast) {
|
|
221
219
|
// the user likely has a transformed AST since the wire and storage formats are the transformed AST
|
|
222
|
-
|
|
220
|
+
result = await runAst(lc, JSON.parse(config.ast), true, {
|
|
221
|
+
applyPermissions: config.applyPermissions,
|
|
222
|
+
authData: config.authData,
|
|
223
|
+
clientToServerMapper,
|
|
224
|
+
permissions,
|
|
225
|
+
outputSyncedRows: config.outputSyncedRows,
|
|
226
|
+
db,
|
|
227
|
+
host,
|
|
228
|
+
});
|
|
223
229
|
}
|
|
224
230
|
else if (config.query) {
|
|
225
|
-
|
|
231
|
+
result = await runQuery(config.query);
|
|
226
232
|
}
|
|
227
233
|
else if (config.hash) {
|
|
228
|
-
|
|
234
|
+
result = await runHash(config.hash);
|
|
229
235
|
}
|
|
230
236
|
else {
|
|
231
237
|
colorConsole.error('No query or AST or hash provided');
|
|
232
238
|
process.exit(1);
|
|
233
239
|
}
|
|
234
|
-
async function runAst(ast, isTransformed) {
|
|
235
|
-
if (!isTransformed) {
|
|
236
|
-
// map the AST to server names if not already transformed
|
|
237
|
-
ast = mapAST(ast, clientToServerMapper);
|
|
238
|
-
}
|
|
239
|
-
if (config.applyPermissions) {
|
|
240
|
-
const authData = config.authData ? JSON.parse(config.authData) : {};
|
|
241
|
-
if (!config.authData) {
|
|
242
|
-
colorConsole.warn('No auth data provided. Permission rules will compare to `NULL` wherever an auth data field is referenced.');
|
|
243
|
-
}
|
|
244
|
-
ast = transformAndHashQuery(lc, clientGroupID, ast, permissions, authData, false).transformedAst;
|
|
245
|
-
colorConsole.log(chalk.blue.bold('\n\n=== Query After Permissions: ===\n'));
|
|
246
|
-
colorConsole.log(await formatOutput(ast.table + astToZQL(ast)));
|
|
247
|
-
}
|
|
248
|
-
const tableSpecs = computeZqlSpecs(lc, db);
|
|
249
|
-
const pipeline = buildPipeline(ast, host, 'query-id');
|
|
250
|
-
const start = performance.now();
|
|
251
|
-
if (config.outputSyncedRows) {
|
|
252
|
-
colorConsole.log(chalk.blue.bold('\n\n=== Synced rows: ===\n'));
|
|
253
|
-
}
|
|
254
|
-
let syncedRowCount = 0;
|
|
255
|
-
const rowsByTable = {};
|
|
256
|
-
for (const rowChange of hydrate(pipeline, hashOfAST(ast), tableSpecs)) {
|
|
257
|
-
assert(rowChange.type === 'add');
|
|
258
|
-
syncedRowCount++;
|
|
259
|
-
if (config.outputSyncedRows) {
|
|
260
|
-
let rows = rowsByTable[rowChange.table];
|
|
261
|
-
if (!rows) {
|
|
262
|
-
rows = [];
|
|
263
|
-
rowsByTable[rowChange.table] = rows;
|
|
264
|
-
}
|
|
265
|
-
rows.push(rowChange.row);
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
if (config.outputSyncedRows) {
|
|
269
|
-
for (const [source, rows] of Object.entries(rowsByTable)) {
|
|
270
|
-
colorConsole.log(chalk.bold(`${source}:`), rows);
|
|
271
|
-
}
|
|
272
|
-
colorConsole.log(chalk.bold('total synced rows:'), syncedRowCount);
|
|
273
|
-
}
|
|
274
|
-
const end = performance.now();
|
|
275
|
-
return [start, end];
|
|
276
|
-
}
|
|
277
240
|
function runQuery(queryString) {
|
|
278
241
|
const z = {
|
|
279
242
|
query: Object.fromEntries(Object.entries(schema.tables).map(([name]) => [
|
|
@@ -284,7 +247,15 @@ function runQuery(queryString) {
|
|
|
284
247
|
const f = new Function('z', `return z.query.${queryString};`);
|
|
285
248
|
const q = f(z);
|
|
286
249
|
const ast = completedAST(q);
|
|
287
|
-
return runAst(ast, false
|
|
250
|
+
return runAst(lc, ast, false, {
|
|
251
|
+
applyPermissions: config.applyPermissions,
|
|
252
|
+
authData: config.authData,
|
|
253
|
+
clientToServerMapper,
|
|
254
|
+
permissions,
|
|
255
|
+
outputSyncedRows: config.outputSyncedRows,
|
|
256
|
+
db,
|
|
257
|
+
host,
|
|
258
|
+
});
|
|
288
259
|
}
|
|
289
260
|
async function runHash(hash) {
|
|
290
261
|
const cvrDB = pgClient(lc, must(config.cvr.db, 'CVR DB must be provided when using the hash option'));
|
|
@@ -293,61 +264,47 @@ async function runHash(hash) {
|
|
|
293
264
|
colorConsole.log('ZQL from Hash:');
|
|
294
265
|
const ast = rows[0].clientAST;
|
|
295
266
|
colorConsole.log(await formatOutput(ast.table + astToZQL(ast)));
|
|
296
|
-
return runAst(ast, true
|
|
267
|
+
return runAst(lc, ast, true, {
|
|
268
|
+
applyPermissions: config.applyPermissions,
|
|
269
|
+
authData: config.authData,
|
|
270
|
+
clientToServerMapper,
|
|
271
|
+
permissions,
|
|
272
|
+
outputSyncedRows: config.outputSyncedRows,
|
|
273
|
+
db,
|
|
274
|
+
host,
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
if (config.outputSyncedRows) {
|
|
278
|
+
colorConsole.log(chalk.blue.bold('=== Synced Rows: ===\n'));
|
|
279
|
+
for (const [table, rows] of Object.entries(result.syncedRows)) {
|
|
280
|
+
colorConsole.log(chalk.bold(table + ':'), rows);
|
|
281
|
+
}
|
|
297
282
|
}
|
|
298
283
|
colorConsole.log(chalk.blue.bold('=== Query Stats: ===\n'));
|
|
284
|
+
colorConsole.log(chalk.bold('total synced rows:'), result.syncedRowCount);
|
|
299
285
|
showStats();
|
|
300
286
|
if (config.outputVendedRows) {
|
|
301
287
|
colorConsole.log(chalk.blue.bold('=== Vended Rows: ===\n'));
|
|
302
288
|
for (const source of sources.values()) {
|
|
303
|
-
|
|
304
|
-
...(runtimeDebugStats
|
|
305
|
-
.getVendedRows()
|
|
306
|
-
.get(clientGroupID)
|
|
307
|
-
?.get(source.table)
|
|
308
|
-
?.entries() ?? []),
|
|
309
|
-
];
|
|
310
|
-
colorConsole.log(chalk.bold(`${source.table}:`), Object.fromEntries(entries));
|
|
289
|
+
colorConsole.log(chalk.bold(`${source.table}:`), debug.getVendedRows()?.[source.table] ?? {});
|
|
311
290
|
}
|
|
312
291
|
}
|
|
313
292
|
colorConsole.log(chalk.blue.bold('\n\n=== Query Plans: ===\n'));
|
|
314
|
-
explainQueries();
|
|
293
|
+
const plans = explainQueries(debug.getVendedRowCounts() ?? {}, db);
|
|
294
|
+
for (const [query, plan] of Object.entries(plans)) {
|
|
295
|
+
colorConsole.log(chalk.bold('query'), query);
|
|
296
|
+
colorConsole.log(plan.map((row, i) => colorPlanRow(row, i)).join('\n'));
|
|
297
|
+
colorConsole.log('\n');
|
|
298
|
+
}
|
|
315
299
|
function showStats() {
|
|
316
300
|
let totalRowsConsidered = 0;
|
|
317
301
|
for (const source of sources.values()) {
|
|
318
|
-
const entries = [
|
|
319
|
-
...(runtimeDebugStats
|
|
320
|
-
.getVendedRowCounts()
|
|
321
|
-
.get(clientGroupID)
|
|
322
|
-
?.get(source.table)
|
|
323
|
-
?.entries() ?? []),
|
|
324
|
-
];
|
|
302
|
+
const entries = Object.entries(debug.getVendedRowCounts()?.[source.table] ?? {});
|
|
325
303
|
totalRowsConsidered += entries.reduce((acc, entry) => acc + entry[1], 0);
|
|
326
|
-
colorConsole.log(chalk.bold(source.table + ' vended:'),
|
|
304
|
+
colorConsole.log(chalk.bold(source.table + ' vended:'), debug.getVendedRowCounts()?.[source.table] ?? {});
|
|
327
305
|
}
|
|
328
306
|
colorConsole.log(chalk.bold('total rows considered:'), colorRowsConsidered(totalRowsConsidered));
|
|
329
|
-
colorConsole.log(chalk.bold('time:'), colorTime(end - start), 'ms');
|
|
330
|
-
}
|
|
331
|
-
function explainQueries() {
|
|
332
|
-
for (const source of sources.values()) {
|
|
333
|
-
const queries = runtimeDebugStats
|
|
334
|
-
.getVendedRowCounts()
|
|
335
|
-
.get(clientGroupID)
|
|
336
|
-
?.get(source.table)
|
|
337
|
-
?.keys() ?? [];
|
|
338
|
-
for (const query of queries) {
|
|
339
|
-
colorConsole.log(chalk.bold('query'), query);
|
|
340
|
-
colorConsole.log(db
|
|
341
|
-
// we should be more intelligent about value replacement.
|
|
342
|
-
// Different values result in different plans. E.g., picking a value at the start
|
|
343
|
-
// of an index will result in `scan` vs `search`. The scan is fine in that case.
|
|
344
|
-
.prepare(`EXPLAIN QUERY PLAN ${query.replaceAll('?', "'sdfse'")}`)
|
|
345
|
-
.all()
|
|
346
|
-
.map((row, i) => colorPlanRow(row.detail, i))
|
|
347
|
-
.join('\n'));
|
|
348
|
-
colorConsole.log('\n');
|
|
349
|
-
}
|
|
350
|
-
}
|
|
307
|
+
colorConsole.log(chalk.bold('time:'), colorTime(result.end - result.start), 'ms');
|
|
351
308
|
}
|
|
352
309
|
function colorTime(duration) {
|
|
353
310
|
if (duration < 100) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin-analyze.js","sourceRoot":"","sources":["../../../../analyze-query/src/bin-analyze.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bin-analyze.js","sourceRoot":"","sources":["../../../../analyze-query/src/bin-analyze.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { RowCountsBySource } from '../../zql/src/builder/debug-delegate.ts';
|
|
2
|
+
import type { Database } from '../../zqlite/src/db.ts';
|
|
3
|
+
export declare function explainQueries(counts: RowCountsBySource, db: Database): Record<string, string[]>;
|
|
4
|
+
//# sourceMappingURL=explain-queries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explain-queries.d.ts","sourceRoot":"","sources":["../../../../analyze-query/src/explain-queries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,wBAAwB,CAAC;AAErD,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,EAAE,EAAE,EAAE,QAAQ,4BAiBrE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function explainQueries(counts, db) {
|
|
2
|
+
const plans = {};
|
|
3
|
+
for (const querySet of Object.values(counts)) {
|
|
4
|
+
const queries = Object.keys(querySet);
|
|
5
|
+
for (const query of queries) {
|
|
6
|
+
const plan = db
|
|
7
|
+
// we should be more intelligent about value replacement.
|
|
8
|
+
// Different values result in different plans. E.g., picking a value at the start
|
|
9
|
+
// of an index will result in `scan` vs `search`. The scan is fine in that case.
|
|
10
|
+
.prepare(`EXPLAIN QUERY PLAN ${query.replaceAll('?', "'sdfse'")}`)
|
|
11
|
+
.all()
|
|
12
|
+
.map(r => r.detail);
|
|
13
|
+
plans[query] = plan;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return plans;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=explain-queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explain-queries.js","sourceRoot":"","sources":["../../../../analyze-query/src/explain-queries.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,cAAc,CAAC,MAAyB,EAAE,EAAY;IACpE,MAAM,KAAK,GAA6B,EAAE,CAAC;IAC3C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,EAAE;gBACb,yDAAyD;gBACzD,iFAAiF;gBACjF,gFAAgF;iBAC/E,OAAO,CAAC,sBAAsB,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;iBACjE,GAAG,EAAoB;iBACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACtB,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { AST } from '../../zero-protocol/src/ast.ts';
|
|
2
|
+
import { type BuilderDelegate } from '../../zql/src/builder/builder.ts';
|
|
3
|
+
import type { Row } from '../../zero-protocol/src/data.ts';
|
|
4
|
+
import type { NameMapper } from '../../zero-schema/src/name-mapper.ts';
|
|
5
|
+
import { LogContext } from '@rocicorp/logger';
|
|
6
|
+
import type { PermissionsConfig } from '../../zero-schema/src/compiled-permissions.ts';
|
|
7
|
+
import type { Database } from '../../zqlite/src/db.ts';
|
|
8
|
+
import type { RowCountsBySource, RowsBySource } from '../../zql/src/builder/debug-delegate.ts';
|
|
9
|
+
export type RunResult = {
|
|
10
|
+
warnings: string[];
|
|
11
|
+
syncedRows: Record<string, Row[]>;
|
|
12
|
+
syncedRowCount: number;
|
|
13
|
+
start: number;
|
|
14
|
+
end: number;
|
|
15
|
+
afterPermissions: string | undefined;
|
|
16
|
+
vendedRowCounts: RowCountsBySource | undefined;
|
|
17
|
+
vendedRows: RowsBySource | undefined;
|
|
18
|
+
plans?: Record<string, string[]> | undefined;
|
|
19
|
+
};
|
|
20
|
+
export declare function runAst(lc: LogContext, ast: AST, isTransformed: boolean, options: {
|
|
21
|
+
applyPermissions: boolean;
|
|
22
|
+
authData?: string | undefined;
|
|
23
|
+
clientToServerMapper?: NameMapper | undefined;
|
|
24
|
+
permissions?: PermissionsConfig | undefined;
|
|
25
|
+
outputSyncedRows: boolean;
|
|
26
|
+
db: Database;
|
|
27
|
+
host: BuilderDelegate;
|
|
28
|
+
}): Promise<RunResult>;
|
|
29
|
+
//# sourceMappingURL=run-ast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-ast.d.ts","sourceRoot":"","sources":["../../../../analyze-query/src/run-ast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,kCAAkC,CAAC;AAK1C,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,iCAAiC,CAAC;AAGzD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,+CAA+C,CAAC;AAGrF,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EACb,MAAM,yCAAyC,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,eAAe,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC/C,UAAU,EAAE,YAAY,GAAG,SAAS,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC;CAC9C,CAAC;AAEF,wBAAsB,MAAM,CAC1B,EAAE,EAAE,UAAU,EACd,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,OAAO,EACtB,OAAO,EAAE;IACP,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,oBAAoB,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC9C,WAAW,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC5C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,EAAE,EAAE,QAAQ,CAAC;IACb,IAAI,EAAE,eAAe,CAAC;CACvB,GACA,OAAO,CAAC,SAAS,CAAC,CAqEpB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { buildPipeline, } from "../../zql/src/builder/builder.js";
|
|
2
|
+
import { hydrate } from "../../zero-cache/src/services/view-syncer/pipeline-driver.js";
|
|
3
|
+
import { transformAndHashQuery } from "../../zero-cache/src/auth/read-authorizer.js";
|
|
4
|
+
import { assert } from "../../shared/src/asserts.js";
|
|
5
|
+
import { computeZqlSpecs } from "../../zero-cache/src/db/lite-tables.js";
|
|
6
|
+
import { hashOfAST } from "../../zero-protocol/src/query-hash.js";
|
|
7
|
+
import { mapAST } from "../../zero-protocol/src/ast.js";
|
|
8
|
+
import { LogContext } from '@rocicorp/logger';
|
|
9
|
+
import { astToZQL } from "../../ast-to-zql/src/ast-to-zql.js";
|
|
10
|
+
import { formatOutput } from "../../ast-to-zql/src/format.js";
|
|
11
|
+
import { must } from "../../shared/src/must.js";
|
|
12
|
+
export async function runAst(lc, ast, isTransformed, options) {
|
|
13
|
+
const { clientToServerMapper, permissions, host, db } = options;
|
|
14
|
+
const result = {
|
|
15
|
+
warnings: [],
|
|
16
|
+
syncedRows: {},
|
|
17
|
+
syncedRowCount: 0,
|
|
18
|
+
start: 0,
|
|
19
|
+
end: 0,
|
|
20
|
+
afterPermissions: undefined,
|
|
21
|
+
vendedRowCounts: host.debug?.getVendedRowCounts(),
|
|
22
|
+
vendedRows: host.debug?.getVendedRows(),
|
|
23
|
+
};
|
|
24
|
+
if (!isTransformed) {
|
|
25
|
+
// map the AST to server names if not already transformed
|
|
26
|
+
ast = mapAST(ast, must(clientToServerMapper));
|
|
27
|
+
}
|
|
28
|
+
if (options.applyPermissions) {
|
|
29
|
+
const authData = options.authData ? JSON.parse(options.authData) : {};
|
|
30
|
+
if (!options.authData) {
|
|
31
|
+
result.warnings.push('No auth data provided. Permission rules will compare to `NULL` wherever an auth data field is referenced.');
|
|
32
|
+
}
|
|
33
|
+
ast = transformAndHashQuery(lc, 'clientGroupIDForAnalyze', ast, must(permissions), authData, false).transformedAst;
|
|
34
|
+
result.afterPermissions = await formatOutput(ast.table + astToZQL(ast));
|
|
35
|
+
}
|
|
36
|
+
const tableSpecs = computeZqlSpecs(lc, db);
|
|
37
|
+
const pipeline = buildPipeline(ast, host, 'query-id');
|
|
38
|
+
const start = performance.now();
|
|
39
|
+
let syncedRowCount = 0;
|
|
40
|
+
const rowsByTable = {};
|
|
41
|
+
const seenByTable = new Set();
|
|
42
|
+
for (const rowChange of hydrate(pipeline, hashOfAST(ast), tableSpecs)) {
|
|
43
|
+
assert(rowChange.type === 'add');
|
|
44
|
+
syncedRowCount++;
|
|
45
|
+
if (options.outputSyncedRows) {
|
|
46
|
+
let rows = rowsByTable[rowChange.table];
|
|
47
|
+
const s = rowChange.table + '.' + JSON.stringify(rowChange.row);
|
|
48
|
+
if (seenByTable.has(s)) {
|
|
49
|
+
continue; // skip duplicates
|
|
50
|
+
}
|
|
51
|
+
seenByTable.add(s);
|
|
52
|
+
if (!rows) {
|
|
53
|
+
rows = [];
|
|
54
|
+
rowsByTable[rowChange.table] = rows;
|
|
55
|
+
}
|
|
56
|
+
rows.push(rowChange.row);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const end = performance.now();
|
|
60
|
+
result.syncedRows = rowsByTable;
|
|
61
|
+
result.start = start;
|
|
62
|
+
result.end = end;
|
|
63
|
+
result.syncedRowCount = syncedRowCount;
|
|
64
|
+
result.vendedRowCounts = host.debug?.getVendedRowCounts();
|
|
65
|
+
result.vendedRows = host.debug?.getVendedRows();
|
|
66
|
+
return result;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=run-ast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-ast.js","sourceRoot":"","sources":["../../../../analyze-query/src/run-ast.ts"],"names":[],"mappings":"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"}
|