Name the near miss by the row whose cell spells it, retire the rules the key-only selector makes false, and ask which key each table keeps
This commit is contained in:
+10
-11
@@ -342,10 +342,7 @@ a load error rather than a file silently ignored.
|
||||
|
||||
`municipality[0180]` reads as selection to anyone who has indexed an array, and `[St.
|
||||
Louis]` keeps a name whole where a colon or a dot-separated spelling could not; zsh
|
||||
needs the brackets quoted, which the README's examples show. A name that spells another
|
||||
row's key is refused at load rather than shadowed: a key names one row by contract, so
|
||||
the name could never select its own, and the check is one lookup per row against the key
|
||||
index that already exists.
|
||||
needs the brackets quoted, which the README's examples show.
|
||||
|
||||
## `parent` names the link column and the table alike
|
||||
|
||||
@@ -397,7 +394,9 @@ parent. A row is selected or drawn alike.
|
||||
out, and a record's link column still holds the key, since it is a column, not a path.
|
||||
- A path may not step back down into a child table after a step up:
|
||||
`city[Oslo].country.city.name` could be Oslo or a city of Norway drawn afresh, so it is
|
||||
refused, naming `city[Oslo].name` and `country[NO].city.name`.
|
||||
refused, naming the path to the row it stepped up from, `city[Oslo].name`, and the path
|
||||
down from the parent, `country[NO].city.name`; after a drawn row, `city.country.city.name`
|
||||
names `city.name` and `country.city.name`.
|
||||
- A route through another row is another path to the same data, not a second spelling:
|
||||
`city[Oslo].country.name` and `country[NO].name` both load.
|
||||
|
||||
@@ -407,10 +406,11 @@ the path ended.
|
||||
|
||||
## A selector names a row by its key alone
|
||||
|
||||
Decided 2026-09-27 by the maintainer, for goal 4's one spelling per result. A table with
|
||||
a `key` selects by it alone: `country[NO]` loads, and `country[Norway]` is refused
|
||||
naming `[NO]`, since a name could spell another row's key. A table with no `key`
|
||||
selects by its `name` inside its parent, which is the key it has.
|
||||
Decided 2026-09-27 by the maintainer, for goal 4's one spelling per result; valid while
|
||||
every table either has a `key` or names its rows inside a parent. A table with a `key`
|
||||
selects by it alone: `country[NO]` loads, and `country[Norway]` is refused naming
|
||||
`[NO]`, found by the row whose cell spells the selector. A table with no `key` selects by
|
||||
its `name` inside its parent, which is the key it has.
|
||||
|
||||
## A parent row with no child row is a load error
|
||||
|
||||
@@ -632,8 +632,7 @@ claim fejkdata has no business making.
|
||||
A flat list of names carries neither the code a PRI encodes nor a selector reaching it,
|
||||
and goal 3 draws the two as one fact. The canonical spelling losing to the one its
|
||||
domain writes, above, settles the rest: a configuration writes `info`, so RFC 5424's
|
||||
`Informational` stays the `severity` column, and the code and the keyword hold the two
|
||||
selector slots.
|
||||
`Informational` stays the `severity` column.
|
||||
|
||||
## `misc.tld` keys carry the leading dot, where other tables key on a bare code
|
||||
|
||||
|
||||
@@ -179,10 +179,16 @@ by a `data-import/` script, as README goal 12 asks.
|
||||
README's `city[Oslo].country` example with
|
||||
`fejkdata -d ./mydata 'city[Oslo].country.name'`, rendering `Norway`.
|
||||
- Select a row by its key alone, as the decision "A selector names a row by its key
|
||||
alone" states: `geo.SE.municipality[Lund]` and `misc.territory[Sweden]` select a row
|
||||
today, where the error should name `[1281]` and `[SE]`. Refuse a `name` option beside
|
||||
`key`, which then selects nothing, drop it from the shipped tables, and state the
|
||||
README's selectors and `CHANGELOG.md`'s "a path selects a row by key or name" to match.
|
||||
alone" states, once the open question on each table's key is settled:
|
||||
`geo.SE.municipality[Lund]` and `misc.territory[Sweden]` select a row today.
|
||||
- Have a selector that misses name the key of the row whose cell spells it, matched
|
||||
without case, else say the table selects by its key: `misc.territory[Sweden]` and
|
||||
`misc.territory[se]` name `[SE]`, `misc.protocol[tcp]` its key, `misc.tld[se]`
|
||||
`[.se]`, and `misc.loglevel[Error]` the row a column spells `Error` in.
|
||||
- Refuse a `name` option beside `key`, which then selects nothing, and drop it from
|
||||
the shipped tables.
|
||||
- Rewrite what selects by name: README.md lines 20, 174, 183, 193, 198, 255, 257,
|
||||
260, 473-491 and 499-504, and CHANGELOG.md lines 13-17 and 56.
|
||||
- Render selected rows as the decision "A selected row is fixed, not drawn, and an
|
||||
unnamed read beside it is refused" states: `New` refuses
|
||||
`{/misc.territory[SE].capital} / {/misc.territory[FI].capital}` today, and a choice
|
||||
@@ -217,13 +223,6 @@ by a `data-import/` script, as README goal 12 asks.
|
||||
`drawn.category`, `pinRow` names `t.path` and `mustRow` panics with `t.category`, so one
|
||||
table is `territory` and `misc.territory`, and the short spelling names no file where two
|
||||
folders hold that name.
|
||||
- Name a spelling that works when a row selector misses: `misc.protocol[tcp]`,
|
||||
`misc.httpmethod[get]` and `misc.territory[se]` all answer "no row … has key or name"
|
||||
and stop there, where a case-insensitive match could name the row that exists, and a
|
||||
table with no `name` column could say it selects by key alone. `misc.tld[se]` misses
|
||||
on the leading dot its keys carry rather than on case, and `misc.loglevel[Error]`
|
||||
misses although a column carries `Error`, so the near miss is worth naming whatever
|
||||
shape it takes.
|
||||
- Let a table column carry a `datatype`, so `--format json` writes
|
||||
`"safe": true` and `--format sql` a boolean rather than the text `'true'`. Today only
|
||||
a JSON field takes one, so `misc.httpmethod`'s booleans are typed in Go and text
|
||||
@@ -232,6 +231,14 @@ by a `data-import/` script, as README goal 12 asks.
|
||||
|
||||
### Open questions to settle
|
||||
|
||||
- Decide which spelling each shipped table selects by, now a selector names its key
|
||||
alone. Keeping today's key loses `geo.US.region[IL].locality[Springfield]` to a
|
||||
numeric GEOID, `misc.loglevel[err]` to `[3]`, `misc.tld[.рф]` to `[.xn--p1ai]`,
|
||||
`misc.currency[Euro]`, `misc.protocol`'s second spelling and
|
||||
`geo.SE.region[Skåne län]`. The tables carrying both today: `geo.SE` and `geo.US`
|
||||
region, municipality and US locality, `misc` currency, httpstatus, language,
|
||||
loglevel, mimetype, protocol, territory and tld, and both locales' `sex`. Decide too
|
||||
whether the `name` option, left meaning "the key inside a parent", keeps its name.
|
||||
- Decide whether a goal 5 violation joins the comprehension gate's exception list: the
|
||||
`{/sel}|{/sel}` panic waits behind the whole round at 5.9, and
|
||||
`{/geo.SE.locality}|{/geo.SE.municipality}` mispairs the shipped data meanwhile, though a
|
||||
|
||||
Reference in New Issue
Block a user