I cannot see any reason for this behavior besides a bug, but I've been wrong before so I put it before the community:
ds = Dataset[{
<|"ID" -> "Alpha", "v1" -> 1, "v2" -> 0|>,
<|"ID" -> "Beta" , "v1" -> 1, "v2" -> 1|>,
<|"ID" -> "Alpha", "v1" -> 1, "v2" -> 0|>}];
ds[Select[#"ID" == "Alpha" &], {"ID"}]
% /. {}
The internal structure changed in from:
Dataset[{<|"ID" -> "Alpha"|>, <|"ID" -> "Alpha"|>},
TypeSystem`Vector[TypeSystem`Struct[{"ID"}, {TypeSystem`Atom[String]}],
TypeSystem`AnyLength], <|
"Origin" ->
HoldComplete[
Query[Select[#ID == "Alpha" &], {"ID"}][Dataset`DatasetHandle[43190226294398]]],
"ID" -> 96078453577381|>]
To:
Dataset[{<|"ID" -> "Alpha"|>, <|"ID" -> "Alpha"|>},
TypeSystem`Vector[TypeSystem`Assoc[TypeSystem`Atom[String], TypeSystem`Atom[String], 1],
2], <|"Origin" -> HoldComplete[Dataset`DatasetHandle[96078453577381] /. {}],
"ID" -> 3384469395109|>]
Why the change?
Why does this change affect the output formatting?