mirror of
https://github.com/hatchet-dev/hatchet.git
synced 2026-02-20 07:09:13 -06:00
* wip: api contracts * feat: implement put workflow version endpoint * add support for match existing data, get scaffolding in place for additional triggers * create additional matches * feat: durable sleep, user event matching * update protos * fix: working poc of user events, durable sleep * add migration * fix: migration column * feat: durable event listener * fix: skip overrides * fix: input -> output
68 lines
1.9 KiB
SQL
68 lines
1.9 KiB
SQL
-- name: ListMatchConditionsForEvent :many
|
|
WITH input AS (
|
|
SELECT
|
|
*
|
|
FROM
|
|
(
|
|
SELECT
|
|
unnest(@eventKeys::text[]) AS event_key,
|
|
-- NOTE: nullable field
|
|
unnest(@eventResourceHints::text[]) AS event_resource_hint
|
|
) AS subquery
|
|
)
|
|
SELECT
|
|
v1_match_id,
|
|
id,
|
|
registered_at,
|
|
event_type,
|
|
m.event_key,
|
|
m.event_resource_hint,
|
|
readable_data_key,
|
|
expression
|
|
FROM
|
|
v1_match_condition m
|
|
JOIN
|
|
input i ON (m.tenant_id, m.event_type, m.event_key, m.is_satisfied, COALESCE(m.event_resource_hint, '')::text) =
|
|
(@tenantId::uuid, @eventType::v1_event_type, i.event_key, FALSE, COALESCE(i.event_resource_hint, '')::text);
|
|
|
|
-- name: CreateMatchesForDAGTriggers :many
|
|
WITH input AS (
|
|
SELECT
|
|
*
|
|
FROM
|
|
(
|
|
SELECT
|
|
unnest(@tenantIds::uuid[]) AS tenant_id,
|
|
unnest(cast(@kinds::text[] as v1_match_kind[])) AS kind,
|
|
unnest(@triggerDagIds::bigint[]) AS trigger_dag_id,
|
|
unnest(@triggerDagInsertedAts::timestamptz[]) AS trigger_dag_inserted_at,
|
|
unnest(@triggerStepIds::uuid[]) AS trigger_step_id,
|
|
unnest(@triggerExternalIds::uuid[]) AS trigger_external_id,
|
|
unnest(@triggerExistingTaskIds::bigint[]) AS trigger_existing_task_id,
|
|
unnest(@triggerExistingTaskInsertedAts::timestamptz[]) AS trigger_existing_task_inserted_at
|
|
) AS subquery
|
|
)
|
|
INSERT INTO v1_match (
|
|
tenant_id,
|
|
kind,
|
|
trigger_dag_id,
|
|
trigger_dag_inserted_at,
|
|
trigger_step_id,
|
|
trigger_external_id,
|
|
trigger_existing_task_id,
|
|
trigger_existing_task_inserted_at
|
|
)
|
|
SELECT
|
|
i.tenant_id,
|
|
i.kind,
|
|
i.trigger_dag_id,
|
|
i.trigger_dag_inserted_at,
|
|
i.trigger_step_id,
|
|
i.trigger_external_id,
|
|
i.trigger_existing_task_id,
|
|
i.trigger_existing_task_inserted_at
|
|
FROM
|
|
input i
|
|
RETURNING
|
|
*;
|