HackerTrans
トップ新着トレンドコメント過去質問紹介求人

canu21

no profile record

投稿

[untitled]

1 ポイント·投稿者 canu21·先月·0 コメント

[untitled]

1 ポイント·投稿者 canu21·3 か月前·0 コメント

Show HN: OmniQL – One Query Language for PostgreSQL, MySQL, MongoDB, and Redis

omniql.com
2 ポイント·投稿者 canu21·5 か月前·4 コメント

コメント

canu21
·3 か月前·議論
[dead]
canu21
·5 か月前·議論
In OmniQL, JOIN isn't a clause inside another query. It's a standalone operation. You write :INNER JOIN Order User ON user_id = id, not :GET ... JOIN .... Since it starts the query and tells the engine what to do, it gets the : prefix. The rule is: anything that begins a query gets :, anything that modifies it (WHERE, ON, LIMIT) doesn't. This is actually a deliberate design choice. In SQL, JOIN lives inside a SELECT so you end up with one big statement doing multiple things. In OmniQL each : command does one thing. Flat and predictable rather than nesting clauses inside clauses. This also lets the engine translate consistently whether it outputs SQL JOINs for Postgres and MySQL or a $lookup aggregation pipeline for MongoDB. Same syntax, engine handles the rest.
canu21
·5 か月前·議論
The : prefix marks OmniQL commands, the action you want to perform (:GET, :CREATE, :DELETE, etc.). It's how the parser distinguishes OmniQL syntax from native SQL or other query languages. WHERE, AND, OR, LIMIT etc. are clauses. They modify the command but aren't commands themselves. So the rule is simple: commands get :, clauses don't. Think of it like a terminal. You prefix the command (git push) but not the flags (--force). Same idea here.
canu21
·5 か月前·議論
[dead]