Add extra Clear test (check if existency column bit is set)

This commit is contained in:
Kuba Podgórski 2020-02-13 10:34:40 +01:00
parent 771cc3ae94
commit 377d14081a

View file

@ -675,6 +675,52 @@ func TestExecutor_Execute_Clear(t *testing.T) {
t.Fatalf("expected column changed")
}
})
t.Run("RowKeyColumnKey_NotClearNot", func(t *testing.T) {
writeQuery := `Set("one", f="ten")`
readQueries := []string{
`Not(Row(f="whatever"))`,
`Clear("one", f="whatever")`,
`Not(Row(f="whatever")) `,
`Clear("one", f="ten")`,
`Not(Row(f="whatever")) `,
}
results := []interface{}{
"one",
false,
"one",
true,
"one",
}
responses := runCallTest(t, writeQuery, readQueries, &pilosa.IndexOptions{
Keys: true,
TrackExistence: true,
}, pilosa.OptFieldKeys())
for i, resp := range responses {
if len(resp.Results) != 1 {
t.Fatalf("response %d: len(results) expected: 1, got: %d", i, len(resp.Results))
}
switch r := resp.Results[0].(type) {
case bool:
if results[i] != r {
t.Fatalf("response %d: expected: %v, got: %v", i, results[i], r)
}
case *pilosa.Row:
if len(r.Keys) != 1 {
t.Fatalf("response %d: len(keys) expected: 1, got: %d", i, len(r.Keys))
}
if results[i] != r.Keys[0] {
t.Fatalf("response %d: expected: %v, got: %v", i, results[i], r.Keys[0])
}
default:
t.Fatalf("response %d: expected: %T, got: %T", i, results[i], r)
}
}
})
}
// Ensure a set query can be executed on a bool field.