Files
hatchet/pkg/repository/v1/sqlcv1/matches-overwrite.sql
abelanger5 00c4bbff09 feat(v1): new gRPC API endpoints (#1367)
* 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
2025-03-23 18:58:20 -07:00

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
*;