column
column copied to clipboard
High-performance, columnar, in-memory store with bitmap indexing in Go
Introduces `WithUnion`, which operates similarly to `Union`, but will allocate a separate bitmap (1) for calculating the multi-OR before applying it to the txn's current index via an AND. This...
Hello, I've managed to reliably replicate the race case found in multiple git workflow runs. This requires using a docker container that mocks the specifications of the Github Actions environment,...
Hey, it's me again I've stumbled across a case where my filtering logic sometimes returns the correct result; a count of 5, and sometimes returns a count of 0. I've...
I stumbled onto this project from your other one, kelindar/bitmap, while evaluating bitmap libraries. I don't know if I'll use this library, but I wanted to let you know I...
```go c := column.NewCollection() c.CreateColumn("a", column.ForString()) c.CreateColumn("b", column.ForString()) c.CreateIndex("a_1", "a", func(r column.Reader) bool { return r.String() == "1" }) c.CreateIndex("a_2", "a", func(r column.Reader) bool { return r.String() == "2" })...
In the `With` / `Without` / `Union` functions it is not checked whether the passed columns are indexes, which might cause unexpected/undesired behavior if used with "normal" columns. Let's take...
Imagine I get a stream of messages like below from a incoming socket ``` {"name": "Alice", "grandslams": 20, "country": "switzerland"} {"name": "Bob", "grandslams": 10, "country": "spain"} {"name": "Charlie", "grandslams": 12,...
What is your take on Go 1.18 generics? Is that something you plan to support or implement? This would replace `genny`.
sql dsl
cool project. I saw in some issue or other that you would be happy about an SQL DSL. Genji has one if your interested. https://github.com/genjidb/genji its quite nice... Let me...
Hi Looking at the [txn source](https://github.com/kelindar/column/blob/main/txn.go), it seems that [Commit](https://github.com/kelindar/column/blob/main/txn.go#L357) is not holding the table lock for the entire apply duration, but instead on per `delete/update/insert` basis. This means that...