kop_sokwedb
7 days agoA shorter and more clear error message
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 16:56:02 +0000 (16:56 +0000)]
A shorter and more clear error message

7 days agoIndex the swelling sources on SWELLING_STATES
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 16:33:01 +0000 (16:33 +0000)]
Index the swelling sources on SWELLING_STATES

7 days agoNew build_arrivals_seq() function, in case the auto-building goes wrong
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

7 days agoAutomatically maintain ARRIVALS.Seq
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 01:22:25 +0000 (01:22 +0000)]
Automatically maintain ARRIVALS.Seq

7 days agoClarify ARRIVALS.Seq ordering in the docs
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 01:14:00 +0000 (01:14 +0000)]
Clarify ARRIVALS.Seq ordering in the docs

7 days agoRequire an ARRIVALS row have a related ROLES row
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

7 days agoRemove ARRIVALS.ArID and use EID as the primary key
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.

7 days agoNew table macro eid_primary_key()
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.

8 days agoFix and use correct key column name
Karl O. Pinc kop@karlpinc.com [Thu, 4 Jun 2026 18:18:12 +0000 (18:18 +0000)]
Fix and use correct key column name

8 days agoRemove accidental leftover graphic elements
Karl O. Pinc kop@karlpinc.com [Thu, 4 Jun 2026 18:00:24 +0000 (18:00 +0000)]
Remove accidental leftover graphic elements

8 days agoSimplify because events only fire on update
Karl O. Pinc kop@karlpinc.com [Thu, 4 Jun 2026 18:00:01 +0000 (18:00 +0000)]
Simplify because events only fire on update

11 days agoSupport groom scanning at the feeding station as an EVENTS row
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.

11 days agoCreate, document, index, and trigger ARRIVALS_A
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.

11 days agoRemove arrival related information from ATTENDANCE
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 20:22:32 +0000 (20:22 +0000)]
Remove arrival related information from ATTENDANCE

11 days agoFix check for unique roles per event
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 20:14:14 +0000 (20:14 +0000)]
Fix check for unique roles per event

11 days agoUpdate roles docs to note that roles apply to feeding station attendance
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

11 days agoUpdate diagrams for event based attendance design
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.

11 days agoGrammer
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 19:06:15 +0000 (19:06 +0000)]
Grammer

11 days agoUse macro to enforce Certainty = sdb_identity_certain
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

11 days agoUse macro to enforce Start = Stop
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 19:01:22 +0000 (19:01 +0000)]
Use macro to enforce Start = Stop

12 days agoShorten EVENTS.Behavior constraint name to fit within limits
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.

12 days agoAllow the EVENT.Behavior to be sdb_groom_scan
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 17:27:23 +0000 (17:27 +0000)]
Allow the EVENT.Behavior to be sdb_groom_scan

12 days agoGive time precision docs their own section
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 04:55:59 +0000 (04:55 +0000)]
Give time precision docs their own section

12 days agoHyperlink to tables that have been documented
Karl O. Pinc kop@karlpinc.com [Sun, 31 May 2026 22:00:43 +0000 (22:00 +0000)]
Hyperlink to tables that have been documented

12 days agoMove docs of sdb_actor, sdb_actee, and sdb_mutual into ROLE_CODES
Karl O. Pinc kop@karlpinc.com [Sun, 31 May 2026 21:19:58 +0000 (21:19 +0000)]
Move docs of sdb_actor, sdb_actee, and sdb_mutual into ROLE_CODES

13 days agoUpdate copyright date
Karl O. Pinc kop@karlpinc.com [Sun, 31 May 2026 13:20:10 +0000 (13:20 +0000)]
Update copyright date

13 days agoGrammar
Karl O. Pinc kop@karlpinc.com [Sun, 31 May 2026 13:17:21 +0000 (13:17 +0000)]
Grammar

13 days agoMake sdb_mutual (Mutual) a special ROLE_CODES.Role value
Karl O. Pinc kop@karlpinc.com [Sat, 30 May 2026 00:05:42 +0000 (00:05 +0000)]
Make sdb_mutual (Mutual) a special ROLE_CODES.Role value

When there is one participant with a sdb_mutual role, there must be
at least one other participant with this role.

2 weeks agoAllow EVENTS and ATTENDANCE to relate, add EVENTS.AtID column
Karl O. Pinc kop@karlpinc.com [Thu, 28 May 2026 17:46:05 +0000 (17:46 +0000)]
Allow EVENTS and ATTENDANCE to relate, add EVENTS.AtID column

2 weeks agoNew null_xor_null() macro: exactly one of 2 columns must be NULL
Karl O. Pinc kop@karlpinc.com [Thu, 28 May 2026 17:43:02 +0000 (17:43 +0000)]
New null_xor_null() macro: exactly one of 2 columns must be NULL

2 weeks agoEVENTS is to reference ATTENDANCE, so create ATTENDANCE first
Karl O. Pinc kop@karlpinc.com [Thu, 28 May 2026 17:35:00 +0000 (17:35 +0000)]
EVENTS is to reference ATTENDANCE, so create ATTENDANCE first

2 weeks agoConvert the follow_map_time_problems table into the clean schema
Karl O. Pinc kop@karlpinc.com [Thu, 28 May 2026 15:00:34 +0000 (15:00 +0000)]
Convert the follow_map_time_problems table into the clean schema

2 weeks agoWith groom scans, start must equal stop
Karl O. Pinc kop@karlpinc.com [Thu, 28 May 2026 13:04:55 +0000 (13:04 +0000)]
With groom scans, start must equal stop

2 weeks agoChange table name GROOM_SCANS -> GROOM_SCANS_B
Karl O. Pinc kop@karlpinc.com [Thu, 28 May 2026 00:53:15 +0000 (00:53 +0000)]
Change table name GROOM_SCANS -> GROOM_SCANS_B

2 weeks agoReplace "estrus" with "swelling", FEMALE_STATES -> REPRO_STATES
Karl O. Pinc kop@karlpinc.com [Thu, 28 May 2026 00:34:56 +0000 (00:34 +0000)]
Replace "estrus" with "swelling", FEMALE_STATES -> REPRO_STATES

2 weeks agoChange "estrus" to "swelling" in ESTRUS_STATES names
Karl O. Pinc kop@karlpinc.com [Thu, 28 May 2026 00:17:42 +0000 (00:17 +0000)]
Change "estrus" to "swelling" in ESTRUS_STATES names

2 weeks agoTalk about "swelling" not "estrus" in the CYCLE_STATES docs
Karl O. Pinc kop@karlpinc.com [Wed, 27 May 2026 23:57:36 +0000 (23:57 +0000)]
Talk about "swelling" not "estrus" in the CYCLE_STATES docs

2 weeks agoChange global constant name sdb_manual_estrus -> sdb_manual_swelling
Karl O. Pinc kop@karlpinc.com [Wed, 27 May 2026 23:53:02 +0000 (23:53 +0000)]
Change global constant name sdb_manual_estrus -> sdb_manual_swelling

2 weeks agoChange "estrus" to "swelling" in ESTRUS_SOURCES names
Karl O. Pinc kop@karlpinc.com [Wed, 27 May 2026 23:33:32 +0000 (23:33 +0000)]
Change "estrus" to "swelling" in ESTRUS_SOURCES names

2 weeks agoFix so FOLLOWS.CommID is validated against COMM_IDS
Karl O. Pinc kop@karlpinc.com [Wed, 27 May 2026 19:59:47 +0000 (19:59 +0000)]
Fix so FOLLOWS.CommID is validated against COMM_IDS

2 weeks agoChange column name: FOLLOWS.Community -> CommID
Karl O. Pinc kop@karlpinc.com [Wed, 27 May 2026 23:46:36 +0000 (23:46 +0000)]
Change column name: FOLLOWS.Community -> CommID

Make consistent with other column names.  Per 2026-05-26 meeting.

2 weeks agoFix copyright dates
Karl O. Pinc kop@karlpinc.com [Wed, 27 May 2026 19:50:08 +0000 (19:50 +0000)]
Fix copyright dates

2 weeks agoChange column name: AGGRESSIONS.Community ->CommID
Karl O. Pinc kop@karlpinc.com [Wed, 27 May 2026 19:41:29 +0000 (19:41 +0000)]
Change column name: AGGRESSIONS.Community ->CommID

Make consistent with other column names.  Per 2026-05-26 meeting.

2 weeks agoChange column name: AGGRESSION_EVENT_LOG.Community ->CommID
Karl O. Pinc kop@karlpinc.com [Wed, 27 May 2026 19:27:09 +0000 (19:27 +0000)]
Change column name: AGGRESSION_EVENT_LOG.Community ->CommID

Make consistent with other column names.  Per 2026-05-26 meeting.

2 weeks agoCreate, document, index, and trigger ATTENDANCE
Karl O. Pinc kop@karlpinc.com [Wed, 27 May 2026 19:07:02 +0000 (19:07 +0000)]
Create, document, index, and trigger ATTENDANCE

2 weeks agoIncrease maximum FOOD_EVENTS per EVENTS row
Karl O. Pinc kop@karlpinc.com [Tue, 26 May 2026 19:07:49 +0000 (19:07 +0000)]
Increase maximum FOOD_EVENTS per EVENTS row

Some of the MS Access columns have semi-colons separating food values,
so instead of 2 values to go with the 2 MS Access columns we need
4 possible values.

2 weeks agoAdd ATTENDANCE to demography ER diagram
Karl O. Pinc [Mon, 25 May 2026 22:54:56 +0000 (17:54 -0500)]
Add ATTENDANCE to demography ER diagram

2 weeks agoRemove estrus tables from demography ER diagram
Karl O. Pinc [Mon, 25 May 2026 21:55:13 +0000 (16:55 -0500)]
Remove estrus tables from demography ER diagram

2 weeks agoTable qualify column names for clarity
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 18:22:33 +0000 (18:22 +0000)]
Table qualify column names for clarity

2 weeks agoCreate, document, index, and trigger GROOM_SCANS
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 18:12:49 +0000 (18:12 +0000)]
Create, document, index, and trigger GROOM_SCANS

2 weeks agoTypos
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 18:10:17 +0000 (18:10 +0000)]
Typos

2 weeks agoEVENTS.Start and Stop have semantics that depend on the behavior
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 17:53:15 +0000 (17:53 +0000)]
EVENTS.Start and Stop have semantics that depend on the behavior

2 weeks agoLink to the detailed description of behavior codes
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 17:51:41 +0000 (17:51 +0000)]
Link to the detailed description of behavior codes

2 weeks agoAdd GROOM_SCANS to the Events ER diagram
Karl O. Pinc [Mon, 25 May 2026 17:39:47 +0000 (12:39 -0500)]
Add GROOM_SCANS to the Events ER diagram

2 weeks agoAdjust data integrity rules to allow "other" grooming participants
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 17:24:08 +0000 (17:24 +0000)]
Adjust data integrity rules to allow "other" grooming participants

2 weeks agoRemoved dropped GROOMINGS.Other column
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 16:55:46 +0000 (16:55 +0000)]
Removed dropped GROOMINGS.Other column

2 weeks agoRemove index from dropped columns
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 16:52:50 +0000 (16:52 +0000)]
Remove index from dropped columns

2 weeks agoGeneralize EVENTS.Certainty description
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 16:27:23 +0000 (16:27 +0000)]
Generalize EVENTS.Certainty description

2 weeks agoDocument Observer check on transaction commit
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 15:00:13 +0000 (15:00 +0000)]
Document Observer check on transaction commit

2 weeks agoAdd female reproductive ER diagram to docs
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 14:40:24 +0000 (14:40 +0000)]
Add female reproductive ER diagram to docs

2 weeks agoA ER diagram related to female sexual cycling
Karl O. Pinc [Mon, 25 May 2026 14:29:07 +0000 (09:29 -0500)]
A ER diagram related to female sexual cycling

We'll see if we want to keep this.  For the hot minute, the
estrus states are left on the demography ER diagram.

2 weeks agoDrop GROOMINGS.Other column
Karl O. Pinc [Sun, 24 May 2026 01:00:01 +0000 (20:00 -0500)]
Drop GROOMINGS.Other column

2 weeks agoCreate, document, index, and trigger GROOMINGS
Karl O. Pinc kop@karlpinc.com [Sat, 23 May 2026 23:36:03 +0000 (23:36 +0000)]
Create, document, index, and trigger GROOMINGS

2 weeks agoThe ROLES.Role of sdb_actor and sdb_actee must occur in pairs
Karl O. Pinc kop@karlpinc.com [Sat, 23 May 2026 21:04:40 +0000 (21:04 +0000)]
The ROLES.Role of sdb_actor and sdb_actee must occur in pairs

3 weeks agoRemove hardcoding of aggression event
Karl O. Pinc kop@karlpinc.com [Thu, 21 May 2026 23:26:38 +0000 (23:26 +0000)]
Remove hardcoding of aggression event

We will need to execute this code to support grooming events.

3 weeks agoPrevent updates to ROLES.Role
Karl O. Pinc kop@karlpinc.com [Thu, 21 May 2026 23:25:39 +0000 (23:25 +0000)]
Prevent updates to ROLES.Role

3 weeks agoThere can only be one individual related to a food event
Karl O. Pinc kop@karlpinc.com [Thu, 21 May 2026 23:08:30 +0000 (23:08 +0000)]
There can only be one individual related to a food event

3 weeks agoThe individual consuming the food must be the focal
Karl O. Pinc kop@karlpinc.com [Wed, 20 May 2026 15:12:04 +0000 (15:12 +0000)]
The individual consuming the food must be the focal

3 weeks agoDeclare variables needed to to check focal participantion as globals
Karl O. Pinc kop@karlpinc.com [Wed, 20 May 2026 14:40:49 +0000 (14:40 +0000)]
Declare variables needed to to check focal participantion as globals

3 weeks agoPlace an upper limit (2) on the foods consumed per food event
Karl O. Pinc kop@karlpinc.com [Wed, 20 May 2026 14:25:28 +0000 (14:25 +0000)]
Place an upper limit (2) on the foods consumed per food event

3 weeks agoFix markup
Karl O. Pinc kop@karlpinc.com [Mon, 18 May 2026 16:16:30 +0000 (16:16 +0000)]
Fix markup

3 weeks agoGive unique indexes descriptive names
Karl O. Pinc kop@karlpinc.com [Mon, 18 May 2026 15:53:44 +0000 (15:53 +0000)]
Give unique indexes descriptive names

The user can see these names on index violations, which are db rule
integrity violations.  Give them a clue as to what the probem is.

3 weeks agoAn individual can only appear in an event once
Karl O. Pinc kop@karlpinc.com [Mon, 18 May 2026 15:27:52 +0000 (15:27 +0000)]
An individual can only appear in an event once

3 weeks agoCorrect markup, improve text of "participant must be studyed" paragraph
Karl O. Pinc kop@karlpinc.com [Mon, 18 May 2026 15:02:51 +0000 (15:02 +0000)]
Correct markup, improve text of "participant must be studyed" paragraph

3 weeks agoMove the "not there" warning from AGGRESSIONS to ROLES
Karl O. Pinc kop@karlpinc.com [Sun, 17 May 2026 00:48:25 +0000 (00:48 +0000)]
Move the "not there" warning from AGGRESSIONS to ROLES

3 weeks agoChange GROOMINS.Others -> Other in ER diagram
Karl O. Pinc kop@karlpinc.com [Sun, 17 May 2026 00:38:43 +0000 (00:38 +0000)]
Change GROOMINS.Others -> Other in ER diagram

4 weeks agoRemove extra words
Karl O. Pinc kop@karlpinc.com [Sat, 16 May 2026 17:12:53 +0000 (17:12 +0000)]
Remove extra words

4 weeks agoImprove AGGRESSIONS docs
Karl O. Pinc kop@karlpinc.com [Sat, 16 May 2026 12:10:40 +0000 (12:10 +0000)]
Improve AGGRESSIONS docs

Based on Ian's review of 2026-05-15

4 weeks agoAllow aggression event logs back to 1960
Karl O. Pinc kop@karlpinc.com [Sat, 16 May 2026 11:58:28 +0000 (11:58 +0000)]
Allow aggression event logs back to 1960

Per Ian's review of 2026-05-15

4 weeks agoRemove GROOMINGS.TimeCertainty and Duplicate columns, add Problems
Karl O. Pinc [Fri, 15 May 2026 01:30:20 +0000 (20:30 -0500)]
Remove GROOMINGS.TimeCertainty and Duplicate columns, add Problems

4 weeks agoAdd new columns to AGGRESSIONS ER diagram
Karl O. Pinc [Thu, 14 May 2026 20:43:53 +0000 (15:43 -0500)]
Add new columns to AGGRESSIONS ER diagram

4 weeks agoCreate, document, index, and trigger FOOD_EVENTS
Karl O. Pinc kop@karlpinc.com [Thu, 14 May 2026 20:04:00 +0000 (20:04 +0000)]
Create, document, index, and trigger FOOD_EVENTS

4 weeks agoFix "must" v.s. "should" wording
Karl O. Pinc kop@karlpinc.com [Thu, 14 May 2026 19:25:42 +0000 (19:25 +0000)]
Fix "must" v.s. "should" wording

4 weeks agoDocument the transaction concept
Karl O. Pinc kop@karlpinc.com [Thu, 14 May 2026 17:27:11 +0000 (17:27 +0000)]
Document the transaction concept

4 weeks agoBetter handle :ref:s that show up in sentences
Karl O. Pinc kop@karlpinc.com [Thu, 14 May 2026 19:16:07 +0000 (19:16 +0000)]
Better handle :ref:s that show up in sentences

4 weeks agoFix hyperlink
Karl O. Pinc kop@karlpinc.com [Thu, 14 May 2026 16:16:44 +0000 (16:16 +0000)]
Fix hyperlink

4 weeks agoCreate, document, and index FOOD_NAMES table
Karl O. Pinc kop@karlpinc.com [Thu, 14 May 2026 00:00:07 +0000 (00:00 +0000)]
Create, document, and index FOOD_NAMES table

4 weeks agoCreate, document, and index FOOD_PARTS table
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 23:58:49 +0000 (23:58 +0000)]
Create, document, and index FOOD_PARTS table

4 weeks agoNew macro: positive_check() Checks a column is a positive number
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 23:53:14 +0000 (23:53 +0000)]
New macro: positive_check()  Checks a column is a positive number

4 weeks agoGet rid of trailing spaces
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 23:51:44 +0000 (23:51 +0000)]
Get rid of trailing spaces

4 weeks agoAlphabetize by code table name
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 23:49:54 +0000 (23:49 +0000)]
Alphabetize by code table name

4 weeks agoRe-arrange the overview paragraphs
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 23:03:47 +0000 (23:03 +0000)]
Re-arrange the overview paragraphs

4 weeks agoBetter docs regards EVENTS.Behavior codes and the event detail tables
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 23:01:24 +0000 (23:01 +0000)]
Better docs regards EVENTS.Behavior codes and the event detail tables

4 weeks agoIndex AGGRESSIONS
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 22:33:34 +0000 (22:33 +0000)]
Index AGGRESSIONS

4 weeks agoChange note regarding extracted text into a sidebar
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 22:29:04 +0000 (22:29 +0000)]
Change note regarding extracted text into a sidebar

4 weeks agoIndex SIGHTINGS
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 22:12:46 +0000 (22:12 +0000)]
Index SIGHTINGS

4 weeks agoExplicitly document that SIGHTINGS.AnimID and Date pair must be unique
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 22:07:03 +0000 (22:07 +0000)]
Explicitly document that SIGHTINGS.AnimID and Date pair must be unique

4 weeks agoFix SIGHTINGS.Date link text in RST references
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 22:05:28 +0000 (22:05 +0000)]
Fix SIGHTINGS.Date link text in RST references

4 weeks agoCreate SIGHTINGS trigger
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 20:19:32 +0000 (20:19 +0000)]
Create SIGHTINGS trigger

4 weeks agoPut lower bound on SIGHTINGS.Date
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 20:15:44 +0000 (20:15 +0000)]
Put lower bound on SIGHTINGS.Date