<@UPGSW2TGE> &gt; Allow complete management of th...
# thinking-together
k
@Eric Hanson
Allow complete management of the database using only INSERT, UPDATE and DELETE commands (expose the DDL as DML)
Do you have something like Datalog going on, where you try to only append rows, and you're capturing every mutation as a new version? If so I'd like to nerd out about that particular aspect, maybe under this comment.
👍 2
i
Yes. Let's have a thread about this!
e
No not exactly. Well.. hmm. For version control, it takes more of a git-like approach, where the user decides when to snapshot and it takes a diff.
💡 2
The DDL as DML part is accomplished by meta, the writable system catalog, but that's kind of a different concept.
Although since the version control system only version controls "rows", since every meta entity (like "table", "column", etc.) is still a row in this updatable view, you can version control schema as well.
If that makes any sense
k
Yes I think so. Your approach seems more realistic than the one I was getting ready to poke holes at 😄
e
Heh phew
k
I've had a lot of scar tissue trying to retrofit an existing schema for a Datalog/Datomic model. It seems you have to design for Datalog from the ground up.
e
Yeah no this is just stock PostgreSQL and the VCS just bolts on and does nothing that interferes with anything
I actually studied under David Maier at PSU in grad school, the guy who invented Datalog
i
@Kartik Agaram Can you expand a bit on the issues you had with datalog?
k
Gimme a couple of hours. This was something I've written up internally to my day job, but needs a little reworking to be clear to this audience. There's also concerns that are not relevant here that I need to tease apart. The original doc was quite hard to write. The scenarios got quite subtle and hard to convey, even to people with a lot more shared context.
w
Versions within versions. Transactions within transactions.
v
@Kartik Agaram Major-version are like snapshots, minor versions are like diffs?
👍 1
k
Yes, that's a good way to think about it. Full vs incremental backups. Mostly because we can know in advance which versions people will overwhelmingly want to look at.