yki
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
select_registration_kind(eid bigint)
Parameters
Name
Type
Mode
eid
bigint
IN
Definition
DECLARE registration_kind record; BEGIN SELECT INTO "registration_kind" (SELECT COUNT(*) FROM registration r WHERE r.exam_session_id = eid AND r.kind = 'QUEUE' AND r.state IN ('STARTED','SUBMITTED')) AS queue_count, (SELECT COUNT(*) FROM registration r WHERE r.exam_session_id = eid AND r.kind = 'ADMISSION' AND r.state IN ('STARTED','SUBMITTED','COMPLETED')) AS participants_count, max_participants FROM "exam_session" es WHERE es."id" = eid; IF registration_kind.queue_count > 0 THEN RETURN 'QUEUE'; ELSIF registration_kind.participants_count >= registration_kind.max_participants THEN RETURN 'QUEUE'; ELSE RETURN 'ADMISSION'; END IF; END;