diff --git a/executor.go b/executor.go index c5ce6c457..5378a3fdd 100644 --- a/executor.go +++ b/executor.go @@ -71,7 +71,6 @@ func (e *Executor) Execute(db string, q *pql.Query, slices []uint64, opt *ExecOp } results = append(results, v) } - return results, nil } diff --git a/fragment.go b/fragment.go index 9142ad573..895c3fff7 100644 --- a/fragment.go +++ b/fragment.go @@ -854,8 +854,8 @@ func (f *Fragment) Import(bitmapIDs, profileIDs []uint64) error { if bitmap.SetBit(profileID) { bmCounter += 1 } - // Update the cache. } + f.cache.Invalidate() return nil }(); err != nil { _ = f.closeStorage() diff --git a/handler.go b/handler.go index 07a7f7349..901ee4b68 100644 --- a/handler.go +++ b/handler.go @@ -398,12 +398,14 @@ func (h *Handler) handlePostImport(w http.ResponseWriter, r *http.Request) { } // Find the correct fragment. + h.logger().Println("Go Import:", db, frame, slice) f, err := h.Index.CreateFragmentIfNotExists(db, frame, slice) if err != nil { h.logger().Printf("fragment error: db=%s, frame=%s, slice=%d, err=%s", db, frame, slice, err) http.Error(w, "fragment error", http.StatusInternalServerError) return } + h.logger().Println("Import into Fragment:", db, frame, slice, len(reg.GetProfileIDs())) // Import into fragment. err = f.Import(req.GetBitmapIDs(), req.GetProfileIDs()) diff --git a/roaring/roaring.go b/roaring/roaring.go index ea36afced..4c4b7f788 100644 --- a/roaring/roaring.go +++ b/roaring/roaring.go @@ -638,6 +638,9 @@ func (c *container) max() uint16 { } func (c *container) arrayMax() uint16 { + if len(c.array) == 0 { + return 0 //probably hiding some ugly bug but it prevents a crash + } return c.array[len(c.array)-1] }