Re: Why is it "JSQuery"? - Mailing list pgsql-hackers

From Josh Berkus
Subject Re: Why is it "JSQuery"?
Date
Msg-id 53921BC6.4050105@agliodbs.com
Whole thread Raw
In response to Why is it "JSQuery"?  ("David E. Wheeler" <david@justatheory.com>)
Responses Re: Why is it "JSQuery"?  ("David E. Wheeler" <david@justatheory.com>)
List pgsql-hackers
On 06/06/2014 09:12 AM, David E. Wheeler wrote:
> On Jun 6, 2014, at 6:54 AM, Oleg Bartunov <obartunov@gmail.com> wrote:
>
>> Jsquery - is QUERY language, JsonPath - is language to EXTRACT json parts.
>
> Sure, but could we not potentially build on its syntax, instead of building a new one? I’m not saying we *should*,
butif we don’t, I think there should be a discussion about why not. For example, I think it would not be a good idea to
follow[JSONiq](http://www.jsoniq.org/) because who wants to write queries in JSON? (Have we learned nothing from
XSLT?).
>
> Here’s a (partial) list of existing JSON query languages:
>
>   http://stackoverflow.com/a/7812073/79202
>
> The arguments might be:
>
> * [JSONiq](http://jsoniq.org/): Queries in JSON? Gross!

Also overly complex for the functionality we support.  There's also no
way to make the jsquery strings valid JSON without adding a bunch of
extra text.

> * [UNQL](http://www.unqlspec.org/): Too similar to SQL

... also intended to be a *complete* replacement for SQL, whereas we
just want a syntax to search JSON fields.

> * [JAQL](https://code.google.com/p/jaql/): Too different from SQL
> * [JSONPath](http://goessner.net/articles/JsonPath/): Too verbose

I don't agree with the too verbose, but lacking AND|OR is pretty crippling.

> * [JSON Query](https://github.com/mmckegg/json-query): Too little there
> * [Mongo](http://www.mongodb.org/display/DOCS/Inserting#Inserting-JSON): Gross syntax
> * [LINQ](http://james.newtonking.com/archive/2008/03/02/json-net-2-0-beta-2): Too similar to SQL
> * [searchjs](https://github.com/deitch/searchjs): Queries in JSON? Gross!
> * [JQuery](http://jquery.org/): It's for HTML, not JSON
> * [SpahQL](http://danski.github.io/spahql/): More like XPath
> * [ObjectPath](http://adriank.github.io/ObjectPath/): Too verbose
> * [JFunk](https://code.google.com/p/jfunk/): XPathy
> * [JData](http://jaydata.org): Queries in JavaScript? C’mon.
>
> These are just off-the-cuff evaluations in 10 minutes of looking -- surely not all of them are accurate. Some of them
maybe*are* useful to emulate. It’s definitely worthwhile, IMHO, to evaluate prior art and decide what, if any of it,
shouldinspire the JSQuery syntax, and there should be reasons why and why not. 

Well, I'd also say that we don't care about syntaxes which are not
already popular.  There's no point in being compatible with something
nobody uses.  How many of the above have any uptake?

Also, the explosion of query languages in this area is not an
encouraging sign for us being able to pick the "right" one.  UUID-OSSP
anyone?

So the advantage of the current "jsquery" syntax is that it's similar to
tsquery, which already has some adoption in our userbase.  On the other
hand, I'm not sure how many people actually understand the tsquery
syntax, and jsquery will be different enough to trip people up.

> I do think that the name should be changed if we don’t follow an existing standard, as
[JSQuery](https://code.google.com/p/gwtquery/wiki/JsQuery)is already a thing. 

I saw that too, but I don't get the impression that Google jsquery is
all that active.   No?

--
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Inaccuracy in VACUUM's tuple count estimates
Next
From: Andres Freund
Date:
Subject: Re: Inaccuracy in VACUUM's tuple count estimates