diff --git a/asapv1_golden b/asapv1_golden index cf56579..08440a1 160000 --- a/asapv1_golden +++ b/asapv1_golden @@ -1 +1 @@ -Subproject commit cf565798800d2b8121dd3453b603814b9afee484 +Subproject commit 08440a1196027e5b75fe779462f0262fa1e34544 diff --git a/wire/asapv1/kind.go b/wire/asapv1/kind.go index 6638781..6efb707 100644 --- a/wire/asapv1/kind.go +++ b/wire/asapv1/kind.go @@ -12,51 +12,61 @@ type KindID string // The kind_id registry. An id is allocated once and never reassigned. A // variant with its top bit set names the delta of the state variant without it. const ( - KindHLLUnspecified KindID = "\x01\x00" - KindHLLClassic KindID = "\x01\x01" - KindHLLErtlMLE KindID = "\x01\x02" - KindHLLHIP KindID = "\x01\x03" - KindHLLClassicDelta KindID = "\x01\x81" - KindHLLErtlMLEDelta KindID = "\x01\x82" - KindCountMin KindID = "\x02\x00" - KindCountMinDelta KindID = "\x02\x80" - KindCMSHeap KindID = "\x03\x00" - KindCMSHeapDelta KindID = "\x03\x80" - KindCountSketch KindID = "\x04\x00" - KindCountSketchDelta KindID = "\x04\x80" - KindDDSketch KindID = "\x05\x00" - KindDDSketchDelta KindID = "\x05\x80" - KindKLL KindID = "\x06\x00" - KindKLLDynamic KindID = "\x06\x01" - KindHydraKLL KindID = "\x07\x00" - KindHydraCountMin KindID = "\x07\x01" - KindHydraCountSketch KindID = "\x07\x02" - KindHydraHLL KindID = "\x07\x03" - KindHydraUnivMon KindID = "\x07\x04" - KindSetAggregator KindID = "\x08\x00" - KindSetAggregatorDelta KindID = "\x08\x80" - KindRetired09 KindID = "\x09\x00" - KindCSHeap KindID = "\x0a\x00" - KindCSHeapDelta KindID = "\x0a\x80" - KindElastic KindID = "\x0b\x00" - KindCoco KindID = "\x0c\x00" - KindUniformSampling KindID = "\x0d\x00" - KindKMV KindID = "\x0e\x00" - KindHashSketchEnsemble KindID = "\x0f\x00" - KindUnivMon KindID = "\x10\x00" - KindUnivMonOptimized KindID = "\x11\x00" - KindNitroBatch KindID = "\x12\x00" - KindExponentialHistogram KindID = "\x13\x00" - KindEHSketchList KindID = "\x14\x00" - KindEHUnivOptimized KindID = "\x15\x00" - KindOctoSketch KindID = "\x16\x00" - KindBloom KindID = "\x17\x00" - KindSpaceSaving KindID = "\x18\x00" - KindCountL2HH KindID = "\x19\x00" - KindUnivMonQ KindID = "\x1a\x00" - KindFoldCMS KindID = "\x1b\x00" - KindFoldCS KindID = "\x1c\x00" - KindRetired1D KindID = "\x1d\x00" + KindHLLUnspecified KindID = "\x01\x00" + KindHLLClassic KindID = "\x01\x01" + KindHLLErtlMLE KindID = "\x01\x02" + KindHLLHIP KindID = "\x01\x03" + KindHLLClassicDelta KindID = "\x01\x81" + KindHLLErtlMLEDelta KindID = "\x01\x82" + KindCountMin KindID = "\x02\x00" + KindCountMinDelta KindID = "\x02\x80" + KindCMSHeap KindID = "\x03\x00" + KindCMSHeapDelta KindID = "\x03\x80" + KindCountSketch KindID = "\x04\x00" + KindCountSketchDelta KindID = "\x04\x80" + KindDDSketch KindID = "\x05\x01" + KindDDSketchDelta KindID = "\x05\x81" + // KindDDSketchWithScalars is the retired DDSketch kind whose payload also + // carried sum / min / max: decoded with those scalars dropped, never + // encoded. + KindDDSketchWithScalars KindID = "\x05\x00" + // KindDDSketchWithScalarsDelta is the retired delta of + // KindDDSketchWithScalars, with KindDDSketchDelta's payload: decoded, + // never encoded. + KindDDSketchWithScalarsDelta KindID = "\x05\x80" + KindKLL KindID = "\x06\x00" + KindKLLDynamic KindID = "\x06\x01" + KindHydraKLL KindID = "\x07\x00" + KindHydraCountMin KindID = "\x07\x01" + KindHydraCountSketch KindID = "\x07\x02" + KindHydraHLL KindID = "\x07\x03" + KindHydraUnivMon KindID = "\x07\x04" + KindSetAggregator KindID = "\x08\x00" + KindSetAggregatorDelta KindID = "\x08\x80" + KindRetired09 KindID = "\x09\x00" + KindCSHeap KindID = "\x0a\x00" + KindCSHeapDelta KindID = "\x0a\x80" + KindElastic KindID = "\x0b\x00" + KindCoco KindID = "\x0c\x00" + KindUniformSampling KindID = "\x0d\x00" + KindKMV KindID = "\x0e\x00" + KindHashSketchEnsemble KindID = "\x0f\x00" + KindUnivMon KindID = "\x10\x00" + KindUnivMonOptimized KindID = "\x11\x00" + KindNitroBatch KindID = "\x12\x00" + KindExponentialHistogram KindID = "\x13\x00" + KindEHSketchList KindID = "\x14\x00" + KindEHUnivOptimized KindID = "\x15\x00" + KindOctoSketch KindID = "\x16\x00" + KindBloom KindID = "\x17\x00" + KindSpaceSaving KindID = "\x18\x00" + KindCountL2HH KindID = "\x19\x00" + KindUnivMonQ KindID = "\x1a\x00" + KindFoldCMS KindID = "\x1b\x00" + KindFoldCS KindID = "\x1c\x00" + KindRetired1D KindID = "\x1d\x00" + KindCMSSpaceSaving KindID = "\x1e\x00" + KindCSSpaceSaving KindID = "\x1f\x00" ) type kindEntry struct { @@ -65,51 +75,55 @@ type kindEntry struct { } var registry = map[KindID]kindEntry{ - KindHLLUnspecified: {"HLL Unspecified", false}, - KindHLLClassic: {"HLL Classic", true}, - KindHLLErtlMLE: {"HLL Ertl-MLE", true}, - KindHLLHIP: {"HLL HIP", true}, - KindHLLClassicDelta: {"HLL Classic delta", true}, - KindHLLErtlMLEDelta: {"HLL Ertl-MLE delta", true}, - KindCountMin: {"Count-Min", true}, - KindCountMinDelta: {"Count-Min delta", true}, - KindCMSHeap: {"CMSHeap", true}, - KindCMSHeapDelta: {"CMSHeap delta", true}, - KindCountSketch: {"Count Sketch", true}, - KindCountSketchDelta: {"Count Sketch delta", true}, - KindDDSketch: {"DDSketch", true}, - KindDDSketchDelta: {"DDSketch delta", true}, - KindKLL: {"KLL", true}, - KindKLLDynamic: {"KLL Dynamic", true}, - KindHydraKLL: {"Hydra KLL", true}, - KindHydraCountMin: {"Hydra Count-Min", true}, - KindHydraCountSketch: {"Hydra Count Sketch", true}, - KindHydraHLL: {"Hydra HLL", true}, - KindHydraUnivMon: {"Hydra UnivMon", true}, - KindSetAggregator: {"SetAggregator", true}, - KindSetAggregatorDelta: {"SetAggregator delta", true}, - KindRetired09: {"retired", false}, - KindCSHeap: {"CSHeap", true}, - KindCSHeapDelta: {"CSHeap delta", true}, - KindElastic: {"Elastic", true}, - KindCoco: {"Coco", true}, - KindUniformSampling: {"UniformSampling", true}, - KindKMV: {"KMV", true}, - KindHashSketchEnsemble: {"HashSketchEnsemble", false}, - KindUnivMon: {"UnivMon", true}, - KindUnivMonOptimized: {"UnivMon Optimized", true}, - KindNitroBatch: {"NitroBatch", false}, - KindExponentialHistogram: {"ExponentialHistogram", true}, - KindEHSketchList: {"EHSketchList", true}, - KindEHUnivOptimized: {"EHUnivOptimized", false}, - KindOctoSketch: {"OctoSketch", false}, - KindBloom: {"Bloom", true}, - KindSpaceSaving: {"Space-Saving", true}, - KindCountL2HH: {"CountL2HH", true}, - KindUnivMonQ: {"UnivMon-Q", true}, - KindFoldCMS: {"FoldCMS", false}, - KindFoldCS: {"FoldCS", false}, - KindRetired1D: {"retired", false}, + KindHLLUnspecified: {"HLL Unspecified", false}, + KindHLLClassic: {"HLL Classic", true}, + KindHLLErtlMLE: {"HLL Ertl-MLE", true}, + KindHLLHIP: {"HLL HIP", true}, + KindHLLClassicDelta: {"HLL Classic delta", true}, + KindHLLErtlMLEDelta: {"HLL Ertl-MLE delta", true}, + KindCountMin: {"Count-Min", true}, + KindCountMinDelta: {"Count-Min delta", true}, + KindCMSHeap: {"CMSHeap", true}, + KindCMSHeapDelta: {"CMSHeap delta", true}, + KindCountSketch: {"Count Sketch", true}, + KindCountSketchDelta: {"Count Sketch delta", true}, + KindDDSketch: {"DDSketch", true}, + KindDDSketchDelta: {"DDSketch delta", true}, + KindDDSketchWithScalars: {"DDSketch with scalars", true}, + KindDDSketchWithScalarsDelta: {"DDSketch with scalars delta", true}, + KindKLL: {"KLL", true}, + KindKLLDynamic: {"KLL Dynamic", true}, + KindHydraKLL: {"Hydra KLL", true}, + KindHydraCountMin: {"Hydra Count-Min", true}, + KindHydraCountSketch: {"Hydra Count Sketch", true}, + KindHydraHLL: {"Hydra HLL", true}, + KindHydraUnivMon: {"Hydra UnivMon", true}, + KindSetAggregator: {"SetAggregator", true}, + KindSetAggregatorDelta: {"SetAggregator delta", true}, + KindRetired09: {"retired", false}, + KindCSHeap: {"CSHeap", true}, + KindCSHeapDelta: {"CSHeap delta", true}, + KindElastic: {"Elastic", true}, + KindCoco: {"Coco", true}, + KindUniformSampling: {"UniformSampling", true}, + KindKMV: {"KMV", true}, + KindHashSketchEnsemble: {"HashSketchEnsemble", false}, + KindUnivMon: {"UnivMon", true}, + KindUnivMonOptimized: {"UnivMon Optimized", true}, + KindNitroBatch: {"NitroBatch", false}, + KindExponentialHistogram: {"ExponentialHistogram", true}, + KindEHSketchList: {"EHSketchList", true}, + KindEHUnivOptimized: {"EHUnivOptimized", false}, + KindOctoSketch: {"OctoSketch", false}, + KindBloom: {"Bloom", true}, + KindSpaceSaving: {"Space-Saving", true}, + KindCountL2HH: {"CountL2HH", true}, + KindUnivMonQ: {"UnivMon-Q", true}, + KindFoldCMS: {"FoldCMS", false}, + KindFoldCS: {"FoldCS", false}, + KindRetired1D: {"retired", false}, + KindCMSSpaceSaving: {"CMSSpaceSaving", true}, + KindCSSpaceSaving: {"CSSpaceSaving", true}, } // Name returns the registry name of k, or "" if k is not in the registry. diff --git a/wire/asapv1/kind_test.go b/wire/asapv1/kind_test.go index 212776b..a9f3aad 100644 --- a/wire/asapv1/kind_test.go +++ b/wire/asapv1/kind_test.go @@ -6,8 +6,8 @@ import ( ) func TestRegistry(t *testing.T) { - if len(registry) != 45 { - t.Fatalf("registry has %d ids, want 45", len(registry)) + if len(registry) != 49 { + t.Fatalf("registry has %d ids, want 49", len(registry)) } payloads := 0 for kind, e := range registry { @@ -22,19 +22,23 @@ func TestRegistry(t *testing.T) { t.Errorf("%v is not the delta of a registered state kind", kind) } } - if payloads != 36 { - t.Errorf("registry has %d ids with a payload, want 36", payloads) + if payloads != 40 { + t.Errorf("registry has %d ids with a payload, want 40", payloads) } cases := map[KindID]string{ - KindHLLClassic: "01 01 (HLL Classic)", - KindCountMin: "02 00 (Count-Min)", - KindCSHeap: "0a 00 (CSHeap)", - KindUnivMonQ: "1a 00 (UnivMon-Q)", - KindRetired09: "09 00 (retired)", - KindRetired1D: "1d 00 (retired)", - "\x1e\x00": "1e 00 (unregistered)", - "": " (unregistered)", - KindHydraUnivMon: "07 04 (Hydra UnivMon)", + KindHLLClassic: "01 01 (HLL Classic)", + KindCountMin: "02 00 (Count-Min)", + KindCSHeap: "0a 00 (CSHeap)", + KindUnivMonQ: "1a 00 (UnivMon-Q)", + KindRetired09: "09 00 (retired)", + KindRetired1D: "1d 00 (retired)", + KindDDSketch: "05 01 (DDSketch)", + KindDDSketchWithScalars: "05 00 (DDSketch with scalars)", + KindDDSketchWithScalarsDelta: "05 80 (DDSketch with scalars delta)", + KindCSSpaceSaving: "1f 00 (CSSpaceSaving)", + "\x20\x00": "20 00 (unregistered)", + "": " (unregistered)", + KindHydraUnivMon: "07 04 (Hydra UnivMon)", } for kind, want := range cases { if got := kind.String(); got != want {