docs(validations): document how each rule treats a special missing value #8

Merged
allan merged 7 commits from docs/special-missing-rule-behaviour into main 2026-09-23 22:30:42 +00:00
7 Commits
Author SHA1 Message Date
dc 10448de15b docs(validations): point the range rules at the special missing section, and tidy
MINVAL and MAXVAL now say what a special missing does to them and that the bound
itself may be a special missing, pointing at the Special Missing Values section,
since that is the least obvious thing about them.

Also in that section: the framing sentence covers the range rules' ordering, the
summary sentence is rewritten (it read badly), and the arrow in the ROUND row is
plain ASCII.
2026-09-23 22:00:18 +00:00
dc 83641a204f docs(validations): a range rule compares in SAS's own order
A range rule keys both the cell value and its own value into the order SAS uses
for a numeric variable: every missing below every non-missing value, and the
missing values ordered ._ then the regular missing then .A through .Z. So a range
can be written in special missings and mean what SAS means by it - MINVAL .A with
MAXVAL .C accepts .B and rejects .D - and the numeric cases follow from the same
order: a missing fails a numeric MINVAL and passes a numeric MAXVAL, and a number
sits above every missing.

Replaces the "a range rule ignores a missing value" wording, which described the
previous take's behaviour rather than SAS's.
2026-09-23 21:27:57 +00:00
dc 66c48a4cc7 docs(validations): a range rule ignores a missing value
Three corrections to the special missing section:

- the period is optional: a special missing is typed as `a` or `.a`, `_` or `._`
- MINVAL and MAXVAL both accept a missing value, and both still reject a real
  number that is out of range. A minimum constrains a number, and a missing is
  not a number - NOTNULL is the rule for a column that must be populated
- only NOTNULL and the formulas actually reject a special missing, so the
  "not supported" summary is replaced with what does reject it and what does not
2026-09-23 21:01:11 +00:00
dc 1a5cea9ebe docs(validations): a date formatted column takes no special missing 2026-09-23 15:38:37 +00:00
dc abf01d6375 docs(validations): the dropdowns support special missings
Both SOFTSELECT and HARDSELECT support them, and the dropdown lists them
alongside the ordinary values (no NaN entries for a numeric column).
2026-09-23 08:37:12 +00:00
dc e7fdb3ab52 docs(validations): primary keys are NOT NULL; HARDSELECT can match a special missing
- a primary key column rejects a blank and a special missing whether or not
  the table carries a constraint or MPE_VALIDATIONS a NOTNULL rule
- HARDSELECT is now checked like any other value: it passes when the
  dropdown list contains the special missing
- HARDSELECT drops out of the 'not supported' list
2026-09-23 08:19:40 +00:00
dc 4d53ced89c docs(validations): document how each rule treats a special missing value
New Special Missing Values section covering NOTNULL, MINVAL/MAXVAL, CASE,
ROUND, the regex rules, the dropdowns and the formula rules, with the
'not supported' set called out.  Behaviour verified against a real SAS
estate and the deployed frontend validator.
2026-09-23 07:50:06 +00:00