eugeneware / eugeneware/subindex

Sample code not working

Open
#8 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.