mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-10-07 19:37:51 +00:00
Do not clear existence column (#117)
This commit is contained in:
parent
4713ccd0c8
commit
59f5d4f7d6
2 changed files with 42 additions and 7 deletions
|
|
@ -2679,13 +2679,6 @@ func (e *executor) executeClearBit(ctx context.Context, index string, c *pql.Cal
|
|||
return false, ErrFieldNotFound
|
||||
}
|
||||
|
||||
// Clear column on existence field
|
||||
if ef := idx.existenceField(); ef != nil {
|
||||
if _, err := ef.ClearBit(0, colID); err != nil {
|
||||
return false, errors.Wrap(err, "clearing existence column")
|
||||
}
|
||||
}
|
||||
|
||||
// Int field.
|
||||
if f.Type() == FieldTypeInt || f.Type() == FieldTypeDecimal {
|
||||
return e.executeClearValueField(ctx, index, c, f, colID, opt)
|
||||
|
|
|
|||
|
|
@ -692,6 +692,48 @@ func TestExecutor_Execute_Clear(t *testing.T) {
|
|||
t.Fatalf("expected column changed")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("RowKeyColumnKey_NotClearNot", func(t *testing.T) {
|
||||
writeQuery := `Set("056009039|q2db_3385|11", f="all_users")`
|
||||
readQueries := []string{
|
||||
`Not(Row(f="has_deleted_date"))`,
|
||||
`Clear("056009039|q2db_3385|11", f="has_deleted_date")`,
|
||||
`Not(Row(f="has_deleted_date")) `,
|
||||
}
|
||||
results := []interface{}{
|
||||
"056009039|q2db_3385|11",
|
||||
false,
|
||||
"056009039|q2db_3385|11",
|
||||
}
|
||||
|
||||
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.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue