Hacker News

philzook
Compositional Datalog on SQL: Relational Algebra of the Environment philipzucker.com

kragen4 days ago

Pretty exciting stuff! I'd also be curious how well CTEs work; Postgres seems to have Turing-complete recursive CTEs, while SQLite and ANSI have some peculiar restrictions presumably to guarantee termination. They might even be the same restrictions, I don't know.

Unfortunate you can't add new operators in Python the way you can in Prolog or OCaml to get a readable infix syntax like the one you chose but without the misleading operators like <= for :-. (I've done worse, though...)

philzookop4 days ago

Yeah, using `<=` in this way is pretty sinful.

My maybe inaccurate understanding of recursive CTEs was that they only allow linear occurrences of the recursively defined relation in the query and do not allow many mutually recursively defined relations. These might be per implementation restrictions. These are pretty harsh restrictions from a datalog perspective. I should explore what Postgres offers more. It's just so easy to try stuff out on sqlite.

NeutralForest4 days ago

Oh no, yet another article that looks super interesting and will be in a browser tab until I decide to read it and that requires quite a lot of background info I don't know how to get yet. Oh well.

hn-front (c) 2024 voximity
source