mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-09-07 09:05:55 +00:00
make all query translations writeable
This commit is contained in:
parent
6fa8ead5ff
commit
420b44a79a
2 changed files with 17 additions and 6 deletions
|
|
@ -3954,11 +3954,7 @@ func (e *executor) translateCalls(ctx context.Context, defaultIndexName string,
|
|||
|
||||
// Generate a list of all used
|
||||
keySets := make(map[string]map[string]struct{})
|
||||
writable := false
|
||||
for _, c := range calls {
|
||||
if c.Writable() {
|
||||
writable = true
|
||||
}
|
||||
if err := e.collectCallKeySets(ctx, defaultIndexName, c, keySets); err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
@ -3975,14 +3971,14 @@ func (e *executor) translateCalls(ctx context.Context, defaultIndexName string,
|
|||
if !idx.Keys() || len(keySets) == 0 {
|
||||
continue
|
||||
}
|
||||
if keyMaps[indexName], err = e.Cluster.translateIndexKeySet(ctx, indexName, keySet, writable); err != nil {
|
||||
if keyMaps[indexName], err = e.Cluster.translateIndexKeySet(ctx, indexName, keySet, true); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
// Translate calls.
|
||||
for _, c := range calls {
|
||||
if err := e.translateCall(ctx, defaultIndexName, c, keyMaps, c.Writable()); err != nil {
|
||||
if err := e.translateCall(ctx, defaultIndexName, c, keyMaps, true); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5667,6 +5667,21 @@ func TestExecutor_Execute_NoIndex(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestExecutor_Translate_NoKeys(t *testing.T) {
|
||||
c := test.MustRunCluster(t, 1)
|
||||
defer c.Close()
|
||||
|
||||
c.CreateField(t, "i", pilosa.IndexOptions{}, "k", pilosa.OptFieldKeys())
|
||||
c.Query(t, "i", `Set(1, k="a")`)
|
||||
c.Query(t, "i", `Set(2, k="b")`)
|
||||
resp := c.Query(t, "i", `Count(Union(Row(k="a"), Row(k="b"), Row(k="c")))`)
|
||||
if len(resp.Results) != 1 {
|
||||
t.Errorf("expected one result but got %v", resp.Results)
|
||||
} else if resp.Results[0] != uint64(2) {
|
||||
t.Errorf("expected 2 but got %v", resp.Results[0])
|
||||
}
|
||||
}
|
||||
|
||||
func TestExecutor_Execute_CountDistinct(t *testing.T) {
|
||||
data, err := ioutil.ReadFile("testdata/schema.json")
|
||||
if err != nil {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue