eugeneware / eugeneware/subindex
Sample code not working
- Dominant language
- JavaScript
- Stars
- 18
- Forks
- 6
- PR merge metrics
- No merged PRs in 30d
Description
I tried to run the sample code:
```
var levelQuery = require('level-queryengine'),
jsonqueryEngine = require('jsonquery-engine'),
levelup = require('levelup'),
db = levelQuery(levelup('/tmp/my-db', { valueEncoding: 'json' }));
db.query.use(jsonqueryEngine());
db.ensureIndex('num');
db.ensureIndex('tags');
db.put('hey', {tags: 'tag1', num:1}, function (err) {
// db.query({ $and: [ { tags: 'tag1' }, { num: { $lt: 100 } } ] })
db.query({ tags: 'tag1' })
.on('data', console.log)
.on('stats', console.log);
});
```
in an empty directory (just after a `npm install level-queryengine jsonquery-engine levelup leveldown`), and it fails:
```
buffer.js:739
return this.hexWrite(string, offset, length);
^
TypeError: Invalid hex string
at TypeError (native)
at Buffer.write (buffer.js:739:21)
at fromString (buffer.js:198:26)
at Function.Buffer.from (buffer.js:113:12)
at new Buffer (buffer.js:94:17)
at decode (/tmp/fff/node_modules/subindex/index.js:14:26)
at DestroyableTransform._transform (/tmp/fff/node_modules/subindex/index.js:55:27)
at DestroyableTransform.Transform._read (/tmp/fff/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:184:10)
at DestroyableTransform.Transform._write (/tmp/fff/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:172:12)
at doWrite (/tmp/fff/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:237:10)
```
I tried to debug a little, and it looks like `db.indexDb.createReadStream` returns keys containing the `level-sublevel` metadata (e.g. `ÿindexesÿa0707461677300707461673100706865790000`).
I'm not really sure why this is happening.
Am I doing anything wrong, or did anything broke?
Contributor guide
Research direction
Start by reproducing the sample in an empty directory with the listed npm packages, then inspect node_modules/subindex/index.js at decode and _transform, where the stack trace points. Compare the keys from db.indexDb.createReadStream with the format expected by decode; done means the sample runs without the Invalid hex string error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100