The `:` prefix is an interesting choice. I don't fully understand when it is needed. It seems to always be used at the beginning of the query. But why is it not used before WHERE?
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.
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.
I like arrow for its type system. It's efficient, complete and does not have "infinite precision decimals". Considering Postgres's decimal encoding, using i256 as the backing type is so much saner approach.
I wanted to try tauri out, but i couldn't get the nix dev shell for it working. My suspicion was that they do something too magical with the build process.
My launcher of last 8years: Lawndesk. It's not on play store and you have to download it from github, but it is the only no-nonsens launcher on android without a drawer.
I just want a grid of apps, each of which appears exactly once. And then folders, to keep things on known locations
Nice. My gripe with designer apps is that they are online first. I'd want to save designs to files, close to other files of the project. I'd want to open each file in their own window, not in browser tabs.
Except they have a very annoying 2 machine limit and their license manager is a pain to get to. On a weekly basis I am deactivating/reactivating license keys between my home computer, work laptop, travel laptop. Super frustrating.
On top of that, their recent redesign comes with a number of boneheaded decisions that would make a Sketch alternative a gift from the heavens above...
I am the author of the Blog. I wanted to share the journey as part of analysis. Blog is not on precedence between || and + but primarily highlight fact that implicit casting cause it to change in Oracle.
Ideally precedence is same in both engines.
Sorry for being dismissive. I've written a post [1] that highlights the core discrepancy between the two dialects. I like criticizing SQL and having a documented case like this is nice.
Location: Europe / SI
Remote: Yes
Willing to relocate: No
Technologies: Rust / Python / Java / PostgreSQL
Résumé/CV: https://aljaz.murerzen.eu/cv.pdf
Email: aljaz.erzen at gmail com
Hello, I'm Aljaž and I like working on databases and programming languages.
I strive to develop reliable, performant software, while being pedantic about type safety and clean architecture.
A good idea in theory. When I was at uni, i designed a protocol for that, with the vision of having individual stores, "commerce article aggregators", and user apps that can query either stores directly or aggregators, all using the same interface, same user preferences and filters.