On 2015-06-04 11:16 PM, Darko Volaric wrote:
> My point about JSON, etc is that there is no reason not to use that as a
> query language if that makes it easier. If your system is efficient with
> JSON, why not accept a query that is formatted as JSON? It's not
> semantically different to SQL syntax. Here's an example (with a roughly
> JSON notation):
>
> {
>    operation: "insert"
>    table: "blah"
>    columns: ["a", "b", "c"]
>    values: [1.3, 2.0, 3.1]
>    on-conflict: "replace"
> }

It's an interesting idea and I for one am willing to entertain the 
thought, but I'm having difficulty seeing the "simpler" and "easier" 
things you claim, or the memory saving for that matter.

Just take the above JSON query and consider that in SQL that would 
simply look like:

REPLACE INTO blah (a,b,c) VALUES (1.3, 2.0, 3.1);

If we have to open a pole on which version seems simpler or use less 
memory, the result would probably be indecisive if not plainly favouring 
the latter.

I am willing to learn though, for instance, how do you see this next 
query represented in the JSON way?:

INSERT INTO blah (1,b,c) VALUES
(1.1, 2.2, 3.3),
(3.1, 3.2, 3.4),
(5.1, 4.2, 3.5),
(7.1, 5.2, 3.6);


Or maybe this one:

SELECT MAX(A.Code), MAX(A.Name), B.Age, MAX(B.LastEditedDate) AS LastDT
   FROM CodeNames AS A
   LEFT JOIN Codehist AS B ON A.Code = B.Code AND B.Age > 30
  WHERE A.Name LIKE 'SomeVal%'
  GROUP BY B.Age
  ORDER BY LastDT DESC
  LIMIT 50;

(I'll forgo the "Having" clause for simplicity).

I'm finding it difficult to imagine a better layout for that query in a 
JSON (or any other Markup-based) document - but I am quite willing (and 
even interested) to be shown a way that makes more sense and satisfies 
the claims of simplicity and memory efficiency.

Once a layout is found that works, I imagine it would be a whole other 
can of spaghetti to make any program author the syntax sensibly, but 
that is a worthy bridge to cross once the first question is answered well.

Alternatively, you might be able to show how the other notation might 
ease the query-planner's work, or how it might help any other SQL 
process work better or faster. Some significant improvement in 
functionality or efficiency will make a much stronger case than "It's 
easier to compose".

Ryan


Reply via email to