Open kevinswiber opened 10 years ago
Very cool man! This is great work and I'm sure that it will be a valuable code read. I'd love to discuss more, and it seems like you have lots of domain knowledge! hey, if you use IRC you should hop into #stackvm
and ##leveldb
on freenode
for mad science party. :)
So... as the world turns, and it's now 9 months later...
I wrote a persistent key-value store for Node early last year, https://github.com/argo/medea. I now have a project that needs it. Also, @kesla has created an implementation of AbstractLevelDOWN for Medea, https://github.com/kesla/medeadown.
My project is going to need SQL queries. As linked above, I happen to know a thing or two about parsing SQL. While I was going to create a SQL implementation that only works with Medea, it seems a shame to not extend that to the wider LevelUP community.
Have you seen enough interest in this project that the Node/LevelDB community would benefit? Otherwise, I may just couple to Medea functionality rather than going through the AbstractLevelDOWN interface.
Cheers.
The parsing/lexing is actually complete (to spec) what's missing is the mapping between the parsed-ast and level-*, which shouldn't be too hard if there are a few people working together on it ;)
On Tuesday, July 22, 2014, Kevin Swiber notifications@github.com wrote:
So... as the world turns, and it's now 9 months later...
I wrote a persistent key-value store for Node early last year, https://github.com/argo/medea. I now have a project that needs it. Also, @kesla https://github.com/kesla has created an implementation of AbstractLevelDOWN for Medea, https://github.com/kesla/medeadown.
My project is going to need SQL queries. As linked above, I happen to know a thing or two about parsing SQL. While I was going to create a SQL implementation that only works with Medea, it seems a shame to not extend that to the wider LevelUP community.
Have you seen enough interest in this project that the Node/LevelDB community would benefit? Otherwise, I may just couple to Medea functionality rather than going through the AbstractLevelDOWN interface.
Cheers.
— Reply to this email directly or view it on GitHub https://github.com/hij1nx/level-sql/issues/2#issuecomment-49809710.
Paolo Fragomeni Founder, Here is How http://hereishow.to
github.com/hij1nx twitter.com/hij1nx
I actually don't need SQL ANSI/ISO specification conformity. I'm using Calypso Query Language (https://github.com/kevinswiber/caql), which will likely merge in some features of N1QL (https://github.com/couchbaselabs/tuqtng/blob/master/docs/n1ql-v1.md) down the road.
I worked on getting it wired up to Medea today, and that appears to be working well (so far).
I think I can make this code modular enough so that it's trivial to implement LevelDOWN compatibility, so I may end up doing both. Thanks for your thoughts!
Just to follow up...
I've got some initial support for CaQL and LevelUP. Not being super-familiar with LevelUP, I'm certain there is room for improvement.
level-caql: https://github.com/kevinswiber/level-caql
medea-caql: https://github.com/kevinswiber/medea-caql
caql-js-compiler: https://github.com/kevinswiber/caql-js-compiler
Cheers.
Howdy.
This repo just popped up on my radar.
I'm doing something similar with kevinswiber/calypso.
You can find all the query language parsing code here: https://github.com/kevinswiber/calypso/tree/master/compiling
I'm using Jison to generate a SQL parser. It doesn't fully conform to any SQL standard, but it's a start.
The goal of Calypso is to provide a common query language that can be implemented on top of any queryable data source. I have drivers for MongoDB and a Backend-as-a-Service called Usergrid. Calypso was born out of another project. I still need to port over older CouchDB and Salesforce drivers.
It also has a data mapper associated with it for automatically hydrating query results into object models.
The source code is released under the MIT license (my employer, Apigee, holds the copyright).
Here's a usage example: https://gist.github.com/kevinswiber/44542186e5dbc5bd03c6
Anyway, the point is... there might be some code you can steal from Calypso to serve your interests. If so, have at it!
Cheers!