Karl O. Pinc kop@karlpinc.com [Mon, 15 Jun 2026 17:44:26 +0000 (17:44 +0000)]
Move tables on right of page upwards to make free space
Karl O. Pinc kop@karlpinc.com [Mon, 15 Jun 2026 14:23:19 +0000 (14:23 +0000)]
Note that EVENTS.Certainty sometimes has no meaning
Karl O. Pinc kop@karlpinc.com [Mon, 15 Jun 2026 13:39:27 +0000 (13:39 +0000)]
Note EVENTS records feeding station arrivals and departures
Karl O. Pinc kop@karlpinc.com [Mon, 15 Jun 2026 13:22:53 +0000 (13:22 +0000)]
Alphabetize
Karl O. Pinc kop@karlpinc.com [Mon, 15 Jun 2026 13:01:18 +0000 (13:01 +0000)]
Drop the ATTENDANCE table, use a WATCHES.Type of sdb_attendance instead
Karl O. Pinc kop@karlpinc.com [Mon, 15 Jun 2026 03:14:07 +0000 (03:14 +0000)]
Index EVENTS on date+focal+type
Some EVENTS.Type values (ad-hoc pantgrunt observations) will not
necessarily be unique per-individual per-day.
Karl O. Pinc kop@karlpinc.com [Mon, 15 Jun 2026 02:53:48 +0000 (02:53 +0000)]
Get rid of commented out code
Karl O. Pinc kop@karlpinc.com [Sun, 14 Jun 2026 23:20:27 +0000 (23:20 +0000)]
Adjust docs and validation for WATCHES.Type = sdb_follow
Karl O. Pinc kop@karlpinc.com [Sun, 14 Jun 2026 23:00:12 +0000 (23:00 +0000)]
Fix line length
Karl O. Pinc kop@karlpinc.com [Sun, 14 Jun 2026 22:41:07 +0000 (22:41 +0000)]
Change from just a update trigger to insert or update
Karl O. Pinc kop@karlpinc.com [Fri, 12 Jun 2026 15:25:07 +0000 (15:25 +0000)]
Create WATCHES.Type column
Karl O. Pinc kop@karlpinc.com [Wed, 10 Jun 2026 22:40:53 +0000 (22:40 +0000)]
Change names: FOLLOWS -> WATCHES, FOLLOWS.FID -> WATCHES.WID
Karl O. Pinc kop@karlpinc.com [Wed, 10 Jun 2026 22:15:11 +0000 (22:15 +0000)]
Fix FID + Time unique index
Karl O. Pinc kop@karlpinc.com [Wed, 10 Jun 2026 22:06:50 +0000 (22:06 +0000)]
Fix index names
Karl O. Pinc kop@karlpinc.com [Wed, 10 Jun 2026 21:10:54 +0000 (21:10 +0000)]
Remove commented out Seq column doc
Karl O. Pinc kop@karlpinc.com [Wed, 10 Jun 2026 19:15:15 +0000 (19:15 +0000)]
Remove spurious leftover text
Karl O. Pinc kop@karlpinc.com [Wed, 10 Jun 2026 19:01:38 +0000 (19:01 +0000)]
Change diagram file name: follows.svg -> watches.svg
Karl O. Pinc kop@karlpinc.com [Wed, 10 Jun 2026 19:00:06 +0000 (19:00 +0000)]
Change FOLLOWS name to WATCHES, and FOLLOWS.FID to WID in diagrams
Stevan Earl [Wed, 10 Jun 2026 23:15:17 +0000 (23:15 +0000)]
fix: change comm_memb_log trigger guard from insert to update
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:39:17 +0000 (23:39 +0000)]
Validate PANTGRUNS.EnteredBy against PEOPLE.Active
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:37:27 +0000 (23:37 +0000)]
Validate LOCATIONS_B.EnteredBy against PEOPLE.Active
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:36:02 +0000 (23:36 +0000)]
Validate GROOMINGS.ExtractedBy against PEOPLE.Active
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:34:06 +0000 (23:34 +0000)]
Validate GROOM_SCANS_B.ExtractedBy against PEOPLE.Active
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:33:03 +0000 (23:33 +0000)]
Validate COMM_MEMB_LOG.MadeBy against PEOPLE.Active
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:31:45 +0000 (23:31 +0000)]
Fire comm_memb_log_trigger after INSERT as well as update
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:30:41 +0000 (23:30 +0000)]
Validate BIOGRAPHY_LOG.MadeBy against PEOPLE.Active
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:30:15 +0000 (23:30 +0000)]
Fire biography_log_trigger after INSERT as well as update
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:28:42 +0000 (23:28 +0000)]
Validate ARRIVALS_A.Recorder and Observer2 against PEOPLE.Active
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:28:03 +0000 (23:28 +0000)]
Validate AGGRESSIONS.ExtractedBy against PEOPLE.Active
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:10:44 +0000 (23:10 +0000)]
Remove dead code
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 22:45:48 +0000 (22:45 +0000)]
ARRIVALS_A has no column called DataSource
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 21:34:10 +0000 (21:34 +0000)]
Create, document, index, and trigger PANTGRUNTS
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 22:02:28 +0000 (22:02 +0000)]
Add PANTGRUNTS.Source column
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 22:00:20 +0000 (22:00 +0000)]
Create PG_SOURCES code table
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 21:33:25 +0000 (21:33 +0000)]
Get rid of unneeded key columns
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 20:53:18 +0000 (20:53 +0000)]
Produce a consistent error message
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 20:21:58 +0000 (20:21 +0000)]
Fix hyperlink targets
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 20:02:51 +0000 (20:02 +0000)]
Change Community to CommID on PANTGRUNTS diagram
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 19:58:06 +0000 (19:58 +0000)]
Remove PANTGRUNTS.Mutual column
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 00:33:25 +0000 (00:33 +0000)]
Create, document, index, and trigger LOCATIONS_B
Karl O. Pinc kop@karlpinc.com [Mon, 8 Jun 2026 23:28:59 +0000 (23:28 +0000)]
Fix so null_xor_null() macro can be used on dispariate data types
Karl O. Pinc kop@karlpinc.com [Mon, 8 Jun 2026 20:55:49 +0000 (20:55 +0000)]
Change function and trigger names to reflect that they fire on insert
Karl O. Pinc kop@karlpinc.com [Mon, 8 Jun 2026 16:30:35 +0000 (16:30 +0000)]
Create LOCATION_ORIGINS support table
Karl O. Pinc kop@karlpinc.com [Mon, 8 Jun 2026 16:27:24 +0000 (16:27 +0000)]
Fix section underlineing
Karl O. Pinc kop@karlpinc.com [Sun, 7 Jun 2026 22:52:23 +0000 (22:52 +0000)]
New sdb_null_xor_null() macro, when one colum or another must be null
Karl O. Pinc kop@karlpinc.com [Sun, 7 Jun 2026 22:51:31 +0000 (22:51 +0000)]
Adjust text to read better when incorporated into a paragraph
Karl O. Pinc kop@karlpinc.com [Sun, 7 Jun 2026 02:05:23 +0000 (02:05 +0000)]
Fix SWELLING_STATES diagram to reflect db
Karl O. Pinc kop@karlpinc.com [Sun, 7 Jun 2026 02:04:29 +0000 (02:04 +0000)]
Fix SWELLING_SOURCES diagram to reflect db
Karl O. Pinc kop@karlpinc.com [Sun, 7 Jun 2026 02:02:32 +0000 (02:02 +0000)]
Fix REPRO_STATES diagram to reflect db
Karl O. Pinc kop@karlpinc.com [Sun, 7 Jun 2026 01:45:37 +0000 (01:45 +0000)]
Create, document, index, and trigger REPRO_STATES
Karl O. Pinc kop@karlpinc.com [Sun, 7 Jun 2026 01:31:22 +0000 (01:31 +0000)]
Fix animid_column() macro so column cannot be NULL
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 21:41:01 +0000 (21:41 +0000)]
Use eid_primary_key() macro
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 21:30:15 +0000 (21:30 +0000)]
Correctly invoke animid_column() macro
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 21:28:58 +0000 (21:28 +0000)]
Invoke animid_column() macro with parenthesis
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 21:17:21 +0000 (21:17 +0000)]
Alphabetize by table name
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 21:15:25 +0000 (21:15 +0000)]
Create REPRO_STATE_CHANGE_SOURCES code table
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 21:13:16 +0000 (21:13 +0000)]
Create PARITIES code table
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 21:12:10 +0000 (21:12 +0000)]
Create LE_CERTAINTIES code table
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 21:11:09 +0000 (21:11 +0000)]
Create ED_CERTAINTIES code table
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 20:31:21 +0000 (20:31 +0000)]
Correct copyright date
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 00:00:32 +0000 (00:00 +0000)]
Remove the ARRIVALS_A.ArAID column and use EID as the primary key
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 23:38:37 +0000 (23:38 +0000)]
Index and trigger SPECIES_PRESENT
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 23:26:12 +0000 (23:26 +0000)]
Fix hyperlinks
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 23:05:54 +0000 (23:05 +0000)]
Remove the SPECIES_PRESENT.OSID column and use EID as the primary key
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 20:42:51 +0000 (20:42 +0000)]
EVENTS with Behavior = sdb_other_species cannot be related to ROLES row
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 20:10:16 +0000 (20:10 +0000)]
sdb_other_species events must be "certain"
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 20:09:46 +0000 (20:09 +0000)]
sdb_other_species events must have a related FOLLOWS row
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 19:50:59 +0000 (19:50 +0000)]
Write triggers for HUMANS
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 20:08:52 +0000 (20:08 +0000)]
Document the sdb_other_species event type's validation rules
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 19:43:30 +0000 (19:43 +0000)]
Fix hyperlink
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 19:41:14 +0000 (19:41 +0000)]
Remove the HUMANS.HuID column and use EID as the primary key
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 19:33:13 +0000 (19:33 +0000)]
Remove the GROOM_SCANS_B.GsID column and use EID as the primary key
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 19:25:10 +0000 (19:25 +0000)]
Remove GROOMINGS.GrID and use EID as the primary key
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 18:45:20 +0000 (18:45 +0000)]
Remove FOOD_EVENTS.FEID and use EID as the primary key
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 17:55:49 +0000 (17:55 +0000)]
Remove AGGRESSIONS.AgID and use EID as the primary key
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 17:26:51 +0000 (17:26 +0000)]
Add triggers for SWELLING_SOURCES
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 17:13:24 +0000 (17:13 +0000)]
Correct "ATTENDANCE after under study" error message
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 17:11:12 +0000 (17:11 +0000)]
Fix inequality that broke ATTENDANCE under-study check
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 17:07:52 +0000 (17:07 +0000)]
Spelling
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 16:56:02 +0000 (16:56 +0000)]
A shorter and more clear error message
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 16:33:01 +0000 (16:33 +0000)]
Index the swelling sources on SWELLING_STATES
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 16:17:00 +0000 (16:17 +0000)]
New build_arrivals_seq() function, in case the auto-building goes wrong
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 01:22:25 +0000 (01:22 +0000)]
Automatically maintain ARRIVALS.Seq
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 01:14:00 +0000 (01:14 +0000)]
Clarify ARRIVALS.Seq ordering in the docs
Karl O. Pinc kop@karlpinc.com [Thu, 4 Jun 2026 19:38:15 +0000 (19:38 +0000)]
Require an ARRIVALS row have a related ROLES row
Karl O. Pinc kop@karlpinc.com [Thu, 4 Jun 2026 18:21:33 +0000 (18:21 +0000)]
Remove ARRIVALS.ArID and use EID as the primary key
ArID is a confusing affection and anti-performant.
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 19:11:12 +0000 (19:11 +0000)]
New table macro eid_primary_key()
Give the user a useful unique index name so they know what to do
when the violate the index's constraint.
Karl O. Pinc kop@karlpinc.com [Thu, 4 Jun 2026 18:18:12 +0000 (18:18 +0000)]
Fix and use correct key column name
Karl O. Pinc kop@karlpinc.com [Thu, 4 Jun 2026 18:00:24 +0000 (18:00 +0000)]
Remove accidental leftover graphic elements
Karl O. Pinc kop@karlpinc.com [Thu, 4 Jun 2026 18:00:01 +0000 (18:00 +0000)]
Simplify because events only fire on update
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 21:26:21 +0000 (21:26 +0000)]
Support groom scanning at the feeding station as an EVENTS row
Uses the sdb_groom_scan_a EVENTS.Behavior code. Document rules
and implement.
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 20:29:59 +0000 (20:29 +0000)]
Create, document, index, and trigger ARRIVALS_A
This is the feeding station arrival and departure "event detail"
table, that goes with the ATTENDANCE table. The per-presence,
per-date, information has moved to this table.
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 20:22:32 +0000 (20:22 +0000)]
Remove arrival related information from ATTENDANCE
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 20:14:14 +0000 (20:14 +0000)]
Fix check for unique roles per event
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 19:18:25 +0000 (19:18 +0000)]
Update roles docs to note that roles apply to feeding station attendance
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 19:09:57 +0000 (19:09 +0000)]
Update diagrams for event based attendance design
Split ATTENDANCE table, creating ARRIVALS_A, an attendance arrival
and departure event table.
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 19:06:15 +0000 (19:06 +0000)]
Grammer
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 19:04:31 +0000 (19:04 +0000)]
Use macro to enforce Certainty = sdb_identity_certain
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 19:01:22 +0000 (19:01 +0000)]
Use macro to enforce Start = Stop
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 17:30:22 +0000 (17:30 +0000)]
Shorten EVENTS.Behavior constraint name to fit within limits
Unfortunately, there is not enough space to list the allowed
behavior codes. The user will just have to refer to the documentaion
when they violate the constraint.