@rudderhq/db 0.4.6-canary.1 → 0.4.6-canary.11
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/dist/client.test.js +161 -0
- package/dist/client.test.js.map +1 -1
- package/dist/migrations/0100_mean_richard_fisk.sql +110 -0
- package/dist/migrations/0101_bizarre_morlun.sql +111 -0
- package/dist/migrations/meta/0100_snapshot.json +18827 -0
- package/dist/migrations/meta/0101_snapshot.json +18860 -0
- package/dist/migrations/meta/_journal.json +14 -0
- package/dist/schema/heartbeat_runs.d.ts +19 -0
- package/dist/schema/heartbeat_runs.d.ts.map +1 -1
- package/dist/schema/heartbeat_runs.js +2 -0
- package/dist/schema/heartbeat_runs.js.map +1 -1
- package/dist/schema/index.d.ts +1 -0
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +1 -0
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/organization_issue_prefix_aliases.d.ts +76 -0
- package/dist/schema/organization_issue_prefix_aliases.d.ts.map +1 -0
- package/dist/schema/organization_issue_prefix_aliases.js +11 -0
- package/dist/schema/organization_issue_prefix_aliases.js.map +1 -0
- package/package.json +2 -2
package/dist/client.test.js
CHANGED
|
@@ -158,6 +158,167 @@ describe("applyPendingMigrations", () => {
|
|
|
158
158
|
await verifySql.end();
|
|
159
159
|
}
|
|
160
160
|
}, 20_000);
|
|
161
|
+
it("completes migration 0100 when an older version already created the alias table", async () => {
|
|
162
|
+
const connectionString = await createTempDatabase();
|
|
163
|
+
await applyPendingMigrations(connectionString);
|
|
164
|
+
const sql = postgres(connectionString, { max: 1, onnotice: () => { } });
|
|
165
|
+
try {
|
|
166
|
+
const migration0100Hash = await migrationHash("0100_mean_richard_fisk.sql");
|
|
167
|
+
await sql.unsafe(`
|
|
168
|
+
INSERT INTO "organizations" ("id", "url_key", "name", "issue_prefix")
|
|
169
|
+
VALUES ('00000000-0000-0000-0000-000000000100', 'migration-recovery', 'Migration Recovery', 'MRC')
|
|
170
|
+
`);
|
|
171
|
+
await sql.unsafe(`
|
|
172
|
+
INSERT INTO "organization_issue_prefix_aliases" ("org_id", "prefix")
|
|
173
|
+
VALUES ('00000000-0000-0000-0000-000000000100', 'OLDMRC')
|
|
174
|
+
`);
|
|
175
|
+
await sql.unsafe(`DROP TRIGGER "organizations_route_key_namespace_trigger" ON "organizations"`);
|
|
176
|
+
await sql.unsafe(`DROP TRIGGER "organization_alias_route_key_namespace_trigger" ON "organization_issue_prefix_aliases"`);
|
|
177
|
+
await sql.unsafe(`DROP FUNCTION "enforce_organization_route_key_namespace"()`);
|
|
178
|
+
await sql.unsafe(`DROP FUNCTION "enforce_organization_alias_route_key_namespace"()`);
|
|
179
|
+
await sql.unsafe(`ALTER TABLE "organization_issue_prefix_aliases" DROP CONSTRAINT "organization_issue_prefix_aliases_org_id_organizations_id_fk"`);
|
|
180
|
+
await sql.unsafe(`DROP INDEX "organization_issue_prefix_aliases_prefix_idx"`);
|
|
181
|
+
await sql.unsafe(`DELETE FROM "drizzle"."__drizzle_migrations" WHERE hash = '${migration0100Hash}'`);
|
|
182
|
+
await sql.unsafe(`
|
|
183
|
+
INSERT INTO "drizzle"."__drizzle_migrations" ("hash", "created_at")
|
|
184
|
+
VALUES ('legacy-0100-hash', 1783928221647)
|
|
185
|
+
`);
|
|
186
|
+
}
|
|
187
|
+
finally {
|
|
188
|
+
await sql.end();
|
|
189
|
+
}
|
|
190
|
+
const pendingState = await inspectMigrations(connectionString);
|
|
191
|
+
expect(pendingState).toMatchObject({
|
|
192
|
+
status: "needsMigrations",
|
|
193
|
+
pendingMigrations: ["0100_mean_richard_fisk.sql"],
|
|
194
|
+
reason: "pending-migrations",
|
|
195
|
+
});
|
|
196
|
+
await applyPendingMigrations(connectionString);
|
|
197
|
+
const finalState = await inspectMigrations(connectionString);
|
|
198
|
+
expect(finalState.status).toBe("upToDate");
|
|
199
|
+
const verifySql = postgres(connectionString, { max: 1, onnotice: () => { } });
|
|
200
|
+
try {
|
|
201
|
+
const aliases = await verifySql.unsafe(`SELECT prefix FROM "organization_issue_prefix_aliases" ORDER BY prefix`);
|
|
202
|
+
expect(aliases.map((row) => row.prefix)).toEqual(["OLDMRC"]);
|
|
203
|
+
const constraints = await verifySql.unsafe(`
|
|
204
|
+
SELECT conname
|
|
205
|
+
FROM pg_constraint
|
|
206
|
+
WHERE conname = 'organization_issue_prefix_aliases_org_id_organizations_id_fk'
|
|
207
|
+
`);
|
|
208
|
+
expect(constraints).toHaveLength(1);
|
|
209
|
+
const indexes = await verifySql.unsafe(`
|
|
210
|
+
SELECT indexname
|
|
211
|
+
FROM pg_indexes
|
|
212
|
+
WHERE schemaname = 'public'
|
|
213
|
+
AND indexname = 'organization_issue_prefix_aliases_prefix_idx'
|
|
214
|
+
`);
|
|
215
|
+
expect(indexes).toHaveLength(1);
|
|
216
|
+
const functions = await verifySql.unsafe(`
|
|
217
|
+
SELECT proname
|
|
218
|
+
FROM pg_proc
|
|
219
|
+
WHERE proname IN (
|
|
220
|
+
'enforce_organization_route_key_namespace',
|
|
221
|
+
'enforce_organization_alias_route_key_namespace'
|
|
222
|
+
)
|
|
223
|
+
ORDER BY proname
|
|
224
|
+
`);
|
|
225
|
+
expect(functions.map((row) => row.proname)).toEqual([
|
|
226
|
+
"enforce_organization_alias_route_key_namespace",
|
|
227
|
+
"enforce_organization_route_key_namespace",
|
|
228
|
+
]);
|
|
229
|
+
const triggers = await verifySql.unsafe(`
|
|
230
|
+
SELECT tgname
|
|
231
|
+
FROM pg_trigger
|
|
232
|
+
WHERE NOT tgisinternal
|
|
233
|
+
AND tgname IN (
|
|
234
|
+
'organizations_route_key_namespace_trigger',
|
|
235
|
+
'organization_alias_route_key_namespace_trigger'
|
|
236
|
+
)
|
|
237
|
+
ORDER BY tgname
|
|
238
|
+
`);
|
|
239
|
+
expect(triggers.map((row) => row.tgname)).toEqual([
|
|
240
|
+
"organization_alias_route_key_namespace_trigger",
|
|
241
|
+
"organizations_route_key_namespace_trigger",
|
|
242
|
+
]);
|
|
243
|
+
}
|
|
244
|
+
finally {
|
|
245
|
+
await verifySql.end();
|
|
246
|
+
}
|
|
247
|
+
}, 20_000);
|
|
248
|
+
it("rolls back migration 0100 when a legacy alias conflicts with another organization route", async () => {
|
|
249
|
+
const connectionString = await createTempDatabase();
|
|
250
|
+
await applyPendingMigrations(connectionString);
|
|
251
|
+
const sql = postgres(connectionString, { max: 1, onnotice: () => { } });
|
|
252
|
+
const migration0100Hash = await migrationHash("0100_mean_richard_fisk.sql");
|
|
253
|
+
try {
|
|
254
|
+
await sql.unsafe(`DROP TRIGGER "organizations_route_key_namespace_trigger" ON "organizations"`);
|
|
255
|
+
await sql.unsafe(`DROP TRIGGER "organization_alias_route_key_namespace_trigger" ON "organization_issue_prefix_aliases"`);
|
|
256
|
+
await sql.unsafe(`DROP FUNCTION "enforce_organization_route_key_namespace"()`);
|
|
257
|
+
await sql.unsafe(`DROP FUNCTION "enforce_organization_alias_route_key_namespace"()`);
|
|
258
|
+
await sql.unsafe(`ALTER TABLE "organization_issue_prefix_aliases" DROP CONSTRAINT "organization_issue_prefix_aliases_org_id_organizations_id_fk"`);
|
|
259
|
+
await sql.unsafe(`DROP INDEX "organization_issue_prefix_aliases_prefix_idx"`);
|
|
260
|
+
await sql.unsafe(`DELETE FROM "drizzle"."__drizzle_migrations" WHERE hash = '${migration0100Hash}'`);
|
|
261
|
+
await sql.unsafe(`
|
|
262
|
+
INSERT INTO "drizzle"."__drizzle_migrations" ("hash", "created_at")
|
|
263
|
+
VALUES ('legacy-conflicting-0100-hash', 1783928221647)
|
|
264
|
+
`);
|
|
265
|
+
await sql.unsafe(`
|
|
266
|
+
INSERT INTO "organizations" ("id", "url_key", "name", "issue_prefix")
|
|
267
|
+
VALUES
|
|
268
|
+
('00000000-0000-0000-0000-000000000101', 'legacy-owner', 'Legacy Owner', 'LOWN'),
|
|
269
|
+
('00000000-0000-0000-0000-000000000102', 'claimed-route', 'Claimed Route', 'CRTE')
|
|
270
|
+
`);
|
|
271
|
+
await sql.unsafe(`
|
|
272
|
+
INSERT INTO "organization_issue_prefix_aliases" ("org_id", "prefix")
|
|
273
|
+
VALUES ('00000000-0000-0000-0000-000000000101', 'CLAIMED-ROUTE')
|
|
274
|
+
`);
|
|
275
|
+
}
|
|
276
|
+
finally {
|
|
277
|
+
await sql.end();
|
|
278
|
+
}
|
|
279
|
+
await expect(applyPendingMigrations(connectionString)).rejects.toThrow("Existing organization route identities and historical Issue Keys conflict case-insensitively");
|
|
280
|
+
const pendingState = await inspectMigrations(connectionString);
|
|
281
|
+
expect(pendingState).toMatchObject({
|
|
282
|
+
status: "needsMigrations",
|
|
283
|
+
pendingMigrations: ["0100_mean_richard_fisk.sql"],
|
|
284
|
+
reason: "pending-migrations",
|
|
285
|
+
});
|
|
286
|
+
const verifySql = postgres(connectionString, { max: 1, onnotice: () => { } });
|
|
287
|
+
try {
|
|
288
|
+
const migrationEntries = await verifySql.unsafe(`
|
|
289
|
+
SELECT count(*)::int AS count
|
|
290
|
+
FROM "drizzle"."__drizzle_migrations"
|
|
291
|
+
WHERE hash = '${migration0100Hash}'
|
|
292
|
+
`);
|
|
293
|
+
expect(migrationEntries[0]?.count).toBe(0);
|
|
294
|
+
const aliases = await verifySql.unsafe(`SELECT prefix FROM "organization_issue_prefix_aliases" ORDER BY prefix`);
|
|
295
|
+
expect(aliases.map((row) => row.prefix)).toEqual(["CLAIMED-ROUTE"]);
|
|
296
|
+
const restoredObjects = await verifySql.unsafe(`
|
|
297
|
+
SELECT (
|
|
298
|
+
(SELECT count(*) FROM pg_constraint
|
|
299
|
+
WHERE conname = 'organization_issue_prefix_aliases_org_id_organizations_id_fk')
|
|
300
|
+
+ (SELECT count(*) FROM pg_indexes
|
|
301
|
+
WHERE schemaname = 'public'
|
|
302
|
+
AND indexname = 'organization_issue_prefix_aliases_prefix_idx')
|
|
303
|
+
+ (SELECT count(*) FROM pg_proc
|
|
304
|
+
WHERE proname IN (
|
|
305
|
+
'enforce_organization_route_key_namespace',
|
|
306
|
+
'enforce_organization_alias_route_key_namespace'
|
|
307
|
+
))
|
|
308
|
+
+ (SELECT count(*) FROM pg_trigger
|
|
309
|
+
WHERE NOT tgisinternal
|
|
310
|
+
AND tgname IN (
|
|
311
|
+
'organizations_route_key_namespace_trigger',
|
|
312
|
+
'organization_alias_route_key_namespace_trigger'
|
|
313
|
+
))
|
|
314
|
+
)::int AS count
|
|
315
|
+
`);
|
|
316
|
+
expect(restoredObjects[0]?.count).toBe(0);
|
|
317
|
+
}
|
|
318
|
+
finally {
|
|
319
|
+
await verifySql.end();
|
|
320
|
+
}
|
|
321
|
+
}, 20_000);
|
|
161
322
|
it("replays migration 0044 safely when its schema changes already exist", async () => {
|
|
162
323
|
const connectionString = await createTempDatabase();
|
|
163
324
|
await applyPendingMigrations(connectionString);
|
package/dist/client.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.test.js","sourceRoot":"","sources":["../src/client.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.test.js","sourceRoot":"","sources":["../src/client.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS "organization_issue_prefix_aliases" (
|
|
2
|
+
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
3
|
+
"org_id" uuid NOT NULL,
|
|
4
|
+
"prefix" text NOT NULL,
|
|
5
|
+
"created_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
6
|
+
);
|
|
7
|
+
--> statement-breakpoint
|
|
8
|
+
DO $$
|
|
9
|
+
BEGIN
|
|
10
|
+
IF NOT EXISTS (
|
|
11
|
+
SELECT 1
|
|
12
|
+
FROM pg_constraint
|
|
13
|
+
WHERE conname = 'organization_issue_prefix_aliases_org_id_organizations_id_fk'
|
|
14
|
+
AND conrelid = 'organization_issue_prefix_aliases'::regclass
|
|
15
|
+
) THEN
|
|
16
|
+
ALTER TABLE "organization_issue_prefix_aliases"
|
|
17
|
+
ADD CONSTRAINT "organization_issue_prefix_aliases_org_id_organizations_id_fk"
|
|
18
|
+
FOREIGN KEY ("org_id") REFERENCES "public"."organizations"("id")
|
|
19
|
+
ON DELETE cascade ON UPDATE no action;
|
|
20
|
+
END IF;
|
|
21
|
+
END
|
|
22
|
+
$$;
|
|
23
|
+
--> statement-breakpoint
|
|
24
|
+
CREATE UNIQUE INDEX IF NOT EXISTS "organization_issue_prefix_aliases_prefix_idx" ON "organization_issue_prefix_aliases" USING btree ("prefix");
|
|
25
|
+
--> statement-breakpoint
|
|
26
|
+
SELECT pg_advisory_xact_lock(hashtext('rudder:organization-issue-prefix'));
|
|
27
|
+
--> statement-breakpoint
|
|
28
|
+
LOCK TABLE "organizations" IN SHARE ROW EXCLUSIVE MODE;
|
|
29
|
+
--> statement-breakpoint
|
|
30
|
+
DO $$
|
|
31
|
+
BEGIN
|
|
32
|
+
IF EXISTS (
|
|
33
|
+
SELECT lower(route_key)
|
|
34
|
+
FROM (
|
|
35
|
+
SELECT "id" AS org_id, "url_key" AS route_key FROM "organizations"
|
|
36
|
+
UNION ALL
|
|
37
|
+
SELECT "id" AS org_id, "issue_prefix" AS route_key FROM "organizations"
|
|
38
|
+
UNION ALL
|
|
39
|
+
SELECT "org_id", "prefix" AS route_key FROM "organization_issue_prefix_aliases"
|
|
40
|
+
) existing_route_keys
|
|
41
|
+
GROUP BY lower(route_key)
|
|
42
|
+
HAVING count(DISTINCT org_id) > 1
|
|
43
|
+
) THEN
|
|
44
|
+
RAISE EXCEPTION 'Existing organization route identities and historical Issue Keys conflict case-insensitively. Resolve the conflicting keys before applying migration 0100.';
|
|
45
|
+
END IF;
|
|
46
|
+
END
|
|
47
|
+
$$;
|
|
48
|
+
--> statement-breakpoint
|
|
49
|
+
CREATE OR REPLACE FUNCTION "enforce_organization_route_key_namespace"() RETURNS trigger
|
|
50
|
+
LANGUAGE plpgsql
|
|
51
|
+
AS $$
|
|
52
|
+
BEGIN
|
|
53
|
+
PERFORM pg_advisory_xact_lock(hashtext('rudder:organization-issue-prefix'));
|
|
54
|
+
IF EXISTS (
|
|
55
|
+
SELECT 1
|
|
56
|
+
FROM "organizations" other
|
|
57
|
+
WHERE other."id" <> NEW."id"
|
|
58
|
+
AND (
|
|
59
|
+
lower(other."url_key") IN (lower(NEW."url_key"), lower(NEW."issue_prefix"))
|
|
60
|
+
OR lower(other."issue_prefix") IN (lower(NEW."url_key"), lower(NEW."issue_prefix"))
|
|
61
|
+
)
|
|
62
|
+
) OR EXISTS (
|
|
63
|
+
SELECT 1
|
|
64
|
+
FROM "organization_issue_prefix_aliases" alias
|
|
65
|
+
WHERE alias."org_id" <> NEW."id"
|
|
66
|
+
AND lower(alias."prefix") IN (lower(NEW."url_key"), lower(NEW."issue_prefix"))
|
|
67
|
+
) THEN
|
|
68
|
+
RAISE EXCEPTION 'Organization URL key and Issue Key routes must be unique across organizations.';
|
|
69
|
+
END IF;
|
|
70
|
+
RETURN NEW;
|
|
71
|
+
END
|
|
72
|
+
$$;
|
|
73
|
+
--> statement-breakpoint
|
|
74
|
+
CREATE OR REPLACE FUNCTION "enforce_organization_alias_route_key_namespace"() RETURNS trigger
|
|
75
|
+
LANGUAGE plpgsql
|
|
76
|
+
AS $$
|
|
77
|
+
BEGIN
|
|
78
|
+
PERFORM pg_advisory_xact_lock(hashtext('rudder:organization-issue-prefix'));
|
|
79
|
+
IF EXISTS (
|
|
80
|
+
SELECT 1
|
|
81
|
+
FROM "organizations" organization
|
|
82
|
+
WHERE organization."id" <> NEW."org_id"
|
|
83
|
+
AND (
|
|
84
|
+
lower(organization."url_key") = lower(NEW."prefix")
|
|
85
|
+
OR lower(organization."issue_prefix") = lower(NEW."prefix")
|
|
86
|
+
)
|
|
87
|
+
) OR EXISTS (
|
|
88
|
+
SELECT 1
|
|
89
|
+
FROM "organization_issue_prefix_aliases" alias
|
|
90
|
+
WHERE alias."org_id" <> NEW."org_id"
|
|
91
|
+
AND alias."id" <> NEW."id"
|
|
92
|
+
AND lower(alias."prefix") = lower(NEW."prefix")
|
|
93
|
+
) THEN
|
|
94
|
+
RAISE EXCEPTION 'Historical Issue Key routes must be unique across organizations.';
|
|
95
|
+
END IF;
|
|
96
|
+
RETURN NEW;
|
|
97
|
+
END
|
|
98
|
+
$$;
|
|
99
|
+
--> statement-breakpoint
|
|
100
|
+
DROP TRIGGER IF EXISTS "organizations_route_key_namespace_trigger" ON "organizations";
|
|
101
|
+
--> statement-breakpoint
|
|
102
|
+
CREATE TRIGGER "organizations_route_key_namespace_trigger"
|
|
103
|
+
BEFORE INSERT OR UPDATE OF "url_key", "issue_prefix" ON "organizations"
|
|
104
|
+
FOR EACH ROW EXECUTE FUNCTION "enforce_organization_route_key_namespace"();
|
|
105
|
+
--> statement-breakpoint
|
|
106
|
+
DROP TRIGGER IF EXISTS "organization_alias_route_key_namespace_trigger" ON "organization_issue_prefix_aliases";
|
|
107
|
+
--> statement-breakpoint
|
|
108
|
+
CREATE TRIGGER "organization_alias_route_key_namespace_trigger"
|
|
109
|
+
BEFORE INSERT OR UPDATE OF "org_id", "prefix" ON "organization_issue_prefix_aliases"
|
|
110
|
+
FOR EACH ROW EXECUTE FUNCTION "enforce_organization_alias_route_key_namespace"();
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
ALTER TABLE "heartbeat_runs" ADD COLUMN "result_summary_json" jsonb;--> statement-breakpoint
|
|
2
|
+
CREATE FUNCTION "rudder_backfill_run_result_summary"("input" jsonb)
|
|
3
|
+
RETURNS jsonb
|
|
4
|
+
LANGUAGE plpgsql
|
|
5
|
+
AS $$
|
|
6
|
+
DECLARE
|
|
7
|
+
"summary" jsonb;
|
|
8
|
+
"line" text;
|
|
9
|
+
"event" jsonb;
|
|
10
|
+
"event_type" text;
|
|
11
|
+
"candidate" text;
|
|
12
|
+
"message" jsonb;
|
|
13
|
+
BEGIN
|
|
14
|
+
IF "input" IS NULL OR jsonb_typeof("input") <> 'object' THEN
|
|
15
|
+
RETURN NULL;
|
|
16
|
+
END IF;
|
|
17
|
+
|
|
18
|
+
"summary" := jsonb_strip_nulls(jsonb_build_object(
|
|
19
|
+
'summary', CASE WHEN jsonb_typeof("input" -> 'summary') = 'string' THEN left("input" ->> 'summary', 500) END,
|
|
20
|
+
'result', CASE
|
|
21
|
+
WHEN jsonb_typeof("input" -> 'result') = 'string' THEN left("input" ->> 'result', 500)
|
|
22
|
+
WHEN jsonb_typeof("input" -> 'body') = 'string' THEN left("input" ->> 'body', 500)
|
|
23
|
+
END,
|
|
24
|
+
'message', CASE WHEN jsonb_typeof("input" -> 'message') = 'string' THEN left("input" ->> 'message', 500) END,
|
|
25
|
+
'error', CASE WHEN jsonb_typeof("input" -> 'error') = 'string' THEN left("input" ->> 'error', 500) END,
|
|
26
|
+
'userMessage', CASE WHEN jsonb_typeof("input" -> 'userMessage') = 'string' THEN left("input" ->> 'userMessage', 500) END,
|
|
27
|
+
'total_cost_usd', CASE
|
|
28
|
+
WHEN jsonb_typeof("input" -> 'total_cost_usd') = 'number' THEN "input" -> 'total_cost_usd'
|
|
29
|
+
END,
|
|
30
|
+
'cost_usd', CASE
|
|
31
|
+
WHEN jsonb_typeof("input" -> 'cost_usd') = 'number' THEN "input" -> 'cost_usd'
|
|
32
|
+
END,
|
|
33
|
+
'costUsd', CASE
|
|
34
|
+
WHEN jsonb_typeof("input" -> 'costUsd') = 'number' THEN "input" -> 'costUsd'
|
|
35
|
+
END
|
|
36
|
+
));
|
|
37
|
+
|
|
38
|
+
IF "summary" ?| array['summary', 'result', 'message', 'userMessage']
|
|
39
|
+
OR jsonb_typeof("input" -> 'stdout') <> 'string' THEN
|
|
40
|
+
RETURN NULLIF("summary", '{}'::jsonb);
|
|
41
|
+
END IF;
|
|
42
|
+
|
|
43
|
+
FOR "line" IN SELECT regexp_split_to_table("input" ->> 'stdout', E'\\r?\\n') LOOP
|
|
44
|
+
BEGIN
|
|
45
|
+
"event" := "line"::jsonb;
|
|
46
|
+
EXCEPTION WHEN OTHERS THEN
|
|
47
|
+
CONTINUE;
|
|
48
|
+
END;
|
|
49
|
+
IF jsonb_typeof("event") <> 'object' THEN
|
|
50
|
+
CONTINUE;
|
|
51
|
+
END IF;
|
|
52
|
+
|
|
53
|
+
"event_type" := "event" ->> 'type';
|
|
54
|
+
"candidate" := NULL;
|
|
55
|
+
IF "event_type" = 'result' THEN
|
|
56
|
+
"candidate" := coalesce("event" ->> 'result', "event" ->> 'text', "event" ->> 'response');
|
|
57
|
+
ELSIF "event_type" = 'item.completed' AND "event" #>> '{item,type}' = 'agent_message' THEN
|
|
58
|
+
"candidate" := "event" #>> '{item,text}';
|
|
59
|
+
ELSIF "event_type" IN ('assistant', 'turn_end') THEN
|
|
60
|
+
"message" := "event" -> 'message';
|
|
61
|
+
IF jsonb_typeof("message") = 'string' THEN
|
|
62
|
+
"candidate" := "message" #>> '{}';
|
|
63
|
+
ELSIF jsonb_typeof("message") = 'object' THEN
|
|
64
|
+
"candidate" := coalesce("message" ->> 'text',
|
|
65
|
+
CASE WHEN jsonb_typeof("message" -> 'content') = 'string' THEN "message" ->> 'content' END);
|
|
66
|
+
IF "candidate" IS NULL AND jsonb_typeof("message" -> 'content') = 'array' THEN
|
|
67
|
+
SELECT string_agg("piece", E'\n\n' ORDER BY "ordinality") INTO "candidate"
|
|
68
|
+
FROM (
|
|
69
|
+
SELECT "ordinality", CASE
|
|
70
|
+
WHEN jsonb_typeof("part") = 'string' THEN "part" #>> '{}'
|
|
71
|
+
WHEN jsonb_typeof("part") = 'object' THEN coalesce("part" ->> 'text', "part" ->> 'content')
|
|
72
|
+
END AS "piece"
|
|
73
|
+
FROM jsonb_array_elements("message" -> 'content') WITH ORDINALITY AS "parts"("part", "ordinality")
|
|
74
|
+
) AS "message_parts"
|
|
75
|
+
WHERE "piece" IS NOT NULL AND btrim("piece") <> '';
|
|
76
|
+
END IF;
|
|
77
|
+
END IF;
|
|
78
|
+
ELSIF "event_type" = 'agent_end' AND jsonb_typeof("event" -> 'messages') = 'array' THEN
|
|
79
|
+
SELECT "assistant_message" INTO "message"
|
|
80
|
+
FROM jsonb_array_elements("event" -> 'messages') WITH ORDINALITY AS "messages"("assistant_message", "ordinality")
|
|
81
|
+
WHERE "assistant_message" ->> 'role' = 'assistant'
|
|
82
|
+
ORDER BY "ordinality" DESC
|
|
83
|
+
LIMIT 1;
|
|
84
|
+
IF jsonb_typeof("message" -> 'content') = 'string' THEN
|
|
85
|
+
"candidate" := "message" ->> 'content';
|
|
86
|
+
ELSIF jsonb_typeof("message" -> 'content') = 'array' THEN
|
|
87
|
+
SELECT string_agg("piece", E'\n\n' ORDER BY "ordinality") INTO "candidate"
|
|
88
|
+
FROM (
|
|
89
|
+
SELECT "ordinality", CASE
|
|
90
|
+
WHEN jsonb_typeof("part") = 'string' THEN "part" #>> '{}'
|
|
91
|
+
WHEN jsonb_typeof("part") = 'object' THEN coalesce("part" ->> 'text', "part" ->> 'content')
|
|
92
|
+
END AS "piece"
|
|
93
|
+
FROM jsonb_array_elements("message" -> 'content') WITH ORDINALITY AS "parts"("part", "ordinality")
|
|
94
|
+
) AS "message_parts"
|
|
95
|
+
WHERE "piece" IS NOT NULL AND btrim("piece") <> '';
|
|
96
|
+
END IF;
|
|
97
|
+
END IF;
|
|
98
|
+
|
|
99
|
+
IF "candidate" IS NOT NULL AND btrim("candidate") <> '' THEN
|
|
100
|
+
"summary" := "summary" || jsonb_build_object('result', left(btrim("candidate"), 500));
|
|
101
|
+
END IF;
|
|
102
|
+
END LOOP;
|
|
103
|
+
|
|
104
|
+
RETURN NULLIF("summary", '{}'::jsonb);
|
|
105
|
+
END;
|
|
106
|
+
$$;--> statement-breakpoint
|
|
107
|
+
UPDATE "heartbeat_runs"
|
|
108
|
+
SET "result_summary_json" = "rudder_backfill_run_result_summary"("result_json")
|
|
109
|
+
WHERE "result_json" IS NOT NULL;--> statement-breakpoint
|
|
110
|
+
DROP FUNCTION "rudder_backfill_run_result_summary"(jsonb);--> statement-breakpoint
|
|
111
|
+
CREATE INDEX "heartbeat_runs_org_created_id_idx" ON "heartbeat_runs" USING btree ("org_id","created_at","id");
|