From dd56b271f4491d5d7530d56baecefec94c46e2f7 Mon Sep 17 00:00:00 2001 From: "Karl O. Pinc kop@karlpinc.com" Date: Mon, 1 Jun 2026 19:04:31 +0000 Subject: [PATCH] Use macro to enforce Certainty = sdb_identity_certain --- db/schemas/sokwedb/tables/create/events.m4 | 20 ++++++++++++++++++++ doc/src/tables/events.m4 | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/db/schemas/sokwedb/tables/create/events.m4 b/db/schemas/sokwedb/tables/create/events.m4 index b11df97..a5b22c4 100644 --- a/db/schemas/sokwedb/tables/create/events.m4 +++ b/db/schemas/sokwedb/tables/create/events.m4 @@ -40,6 +40,24 @@ define([_point_behavior_time], [CONSTRAINT changequote(`,')dnl See above +dnl Macro to ensure particular behavior codes have +dnl Certainty = sdb_identity_certain +dnl +dnl Syntax: _behavior_certain(behavior) +dnl +dnl Input: +dnl behavior An EVENTS.Behavior value +dnl +dnl Remarks: +dnl Convenient macro that might not need to exist. +changequote([,]) +define([_behavior_certain], [CONSTRAINT + "When the Behavior is ($1) Certainty must equal sdb_identity_certain" + CHECK(behavior <> '$1' + OR certainty = 'sdb_identity_certain')])dnl +changequote(`,')dnl See above + + CREATE TABLE events ( key_column(`EVENTS', `EID', INTEGER) ,fid INTEGER @@ -75,6 +93,8 @@ CREATE TABLE events ( _point_behavior_time(`sdb_aggression') _point_behavior_time(`sdb_groom_scan') + + _behavior_certain(`sdb_groom_scan') ); grant_priv(`EVENTS') diff --git a/doc/src/tables/events.m4 b/doc/src/tables/events.m4 index df5e11a..6ced5f3 100644 --- a/doc/src/tables/events.m4 +++ b/doc/src/tables/events.m4 @@ -253,7 +253,7 @@ The following table lists these rules and implications: equal the value of the |EVENTS|.\ |EVENTS.Stop| column. For grooming interval sampling events, the |EVENTS|.\ - |EVENTS.Certainty| column is always |true|. + |EVENTS.Certainty| column must be ``sdb_identity_certain``. .. _EVENTS_mating_code: -- 2.34.1