I'm not quite sure I understand the proposal. It reads like you are
proposing an alternate syntax next to the currently proposed syntax,
or are you proposing to make the alternative syntax the only syntax?
Also, I'm not quite sure what the new syntax would be in the proposal.
Does SELECT now come at the very end, also after e.g. ORDER BY and
OFFSET/LIMIT? How does it sit with the compounding operators (UNION,
etc. -- perhaps more problematic in SQL than in UnQL)?
The 'processing pipeline' idea has a certain beauty to it. How would
it work if e.g. the FROM clause is left out? Would that imply an outer
join of all available collections?
Seems to me it's more logical to put the SELECT clause at the end
of a statement.
But given how widespread SQL is, and how obviously UNQL is based on
it, changing it will make UNQL less intuitive to the masses. Will
the UNQL SELECT statement be referred to as the FROM statement
instead? Or as "the statement similar to the SQL SELECT statement"?
It's only a fraction of SQL users that have even noticed that the
order of the other clauses in a SELECT statement makes sense anyway.
Dan.
And I completely disagree that making this change will make UnQL less intuitive to the masses. Perhaps the old school SQL crowd...but that is not the masses by any measure. We are trying to build something for the masses of application developers that are beginning to reject reject SQL as a tool for interacting with non-relational data. See the "success" of ORM tools and related layers of software designed to hide the language from "the masses." That is where the masses live and work today.
Perhaps we need to step back and ask why we are building UnQL. What are the goals and what design criteria do they imply? Keeping that which is illogical and cumbersome to avoid relearning for a few seems incredibly wrong. But, again, depends on your goals.
James Phillips
408-832-3066 (cell)
While "select field_x" in sql is useless
"from collection_x" is a complete query.
(equivalent to "select * from table_x", but much shorter.)