Support filtering by byte array / binary fields
Nobody has claimed this yet.
- Dominant language
- Clojure
- Stars
- 49.3k
- Forks
- 6.8k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 653
Description
See #1326 for original issue (JSON encoder couldn't handle byte arrays), and #1367 for BSON ID support in MongoDB
Currently we have no way to filter by binary PKs, which come back as byte arrays (at least for MySQL).
There are lots of unanswered questions about filtering by binary PKs in DBs that aren't really designed to work that way.
1. How should we make people type in IDs? Base-16/base-64/octal? Someone is probably going to want whichever option we don't go with
2. How long can these IDs be? We need to return the full ID in order to filter by it. We can't really tell binary PKs apart from other binary data by the time it gets to the JSON encoder. So whatever length we pick will apply to the 99.99% of binary columns that aren't PKs as well. What if someone is doing some sort of crazy hashing and wants us to support 128-byte IDs?
:arrow_down: Please click the :+1: reaction instead of leaving a `+1` or `update?` comment
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the original issue in #1326 about JSON encoding byte arrays and #1367 about BSON ID support in MongoDB. Resolve how binary primary-key IDs should be entered and how their supported length should be handled, then verify that binary primary keys can be used for filtering without breaking other binary fields.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- clojure, mongodb, mysql
- Domain
- databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100