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

Open
hermes wants to merge 4 commits from docs/special-missing-rule-behaviour into main
Collaborator

Adds a Special Missing Values section to the Data Validation page, covering what each rule does with a SAS special missing (.A-.Z, ._), plus a pointer from the rule table.

What was verified (against a real SAS estate, and against the deployed frontend validator in a real browser):

  • NOTNULL - fails. A special missing is null to a SAS NOT NULL / primary key constraint, and a physical constraint on the target table rejects it with an integrity constraint error.
  • MINVAL - fails (a special missing sorts below every number).
  • MAXVAL - passes, but then rejects the column's real numbers, so the rule and the special missing cannot coexist.
  • CASE - not applicable (character rule).
  • ROUND - ignored; it only rounds values that are numbers.
  • HARDREGEX / SOFTREGEX - checked like any other value; not exempt (the Regex Rules section already says this, now cross-referenced).
  • SOFTSELECT - passes; HARDSELECT - fails (strict membership test, and the numeric dropdown list holds numbers).
  • HARDFORMULA / SOFTFORMULA - returns #VALUE! for the row rather than a number.

Also notes that a range rule's own value must be a number (a special missing there fails every cell for MINVAL and every real number for MAXVAL), and adds the NOTNULL table row caveat.

The companion frontend fix (NOTNULL now rejecting a special missing on a numeric column) is in dc/dc PR #323.

Adds a **Special Missing Values** section to the Data Validation page, covering what each rule does with a SAS special missing (`.A`-`.Z`, `._`), plus a pointer from the rule table. What was verified (against a real SAS estate, and against the deployed frontend validator in a real browser): - **NOTNULL** - fails. A special missing is null to a SAS NOT NULL / primary key constraint, and a physical constraint on the target table rejects it with an integrity constraint error. - **MINVAL** - fails (a special missing sorts below every number). - **MAXVAL** - passes, but then rejects the column's real numbers, so the rule and the special missing cannot coexist. - **CASE** - not applicable (character rule). - **ROUND** - ignored; it only rounds values that are numbers. - **HARDREGEX / SOFTREGEX** - checked like any other value; not exempt (the Regex Rules section already says this, now cross-referenced). - **SOFTSELECT** - passes; **HARDSELECT** - fails (strict membership test, and the numeric dropdown list holds numbers). - **HARDFORMULA / SOFTFORMULA** - returns `#VALUE!` for the row rather than a number. Also notes that a range rule's own value must be a number (a special missing there fails every cell for `MINVAL` and every real number for `MAXVAL`), and adds the NOTNULL table row caveat. The companion frontend fix (NOTNULL now rejecting a special missing on a numeric column) is in dc/dc PR #323.
hermes added 1 commit 2026-09-23 07:50:21 +00:00
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.
hermes added 1 commit 2026-09-23 08:19:42 +00:00
- 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
hermes added 1 commit 2026-09-23 08:37:15 +00:00
Both SOFTSELECT and HARDSELECT support them, and the dropdown lists them
alongside the ordinary values (no NaN entries for a numeric column).
hermes added 1 commit 2026-09-23 15:38:43 +00:00
You are not authorized to merge this pull request.
This pull request can be merged automatically.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin docs/special-missing-rule-behaviour:docs/special-missing-rule-behaviour
git checkout docs/special-missing-rule-behaviour
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dc/docs.datacontroller.io#8