Query cache- We plan to introduce stored computeds. No ETA
Migration from existing postgres based project- Not a good idea to do generically; could be translated from an ORM schema; want to create a migration from Prisma
Work on an answer and message Elvis with it
Is there a way to know/mark when your query with an “unless conflict” hit the conflict case?
select (
insert Person {
name := 'New',
} unless conflict on .name else Person {existing := true}
) {
name,
inserted := .existing ?? false
};
Return a computed that does a exists select for the object you tried to insert
You can’t tell from the insert
What is the use case?
Sharing a single db across repos/projects?
Basically, in my second repository, I copied the edgedb.toml file and dbschema folder (for initialization purposes only) Then ran edgedb project init --link --server-instance=<instance name of first repository that stores schema> --no-migrations Now in my second repository, when I run @edgdedb/generate commands, the generators reference the latest schema from the first repository! Success. (In my second repository, the edgedb.toml and migrations files do not reflect the latest schema/migrations– but this is no problem!)
Put schema in a repo and use a git submodule
replicate toml file in projects
Can specify schema directory in toml
Connection pooling client-side or server-side?
Specific concern is around connection pooling vs. serverless
EdgeDB connections are cheap. Postgres connections are pools on server-side. 10s of thousands without much trouble.
Don’t worry about connections to EdgeDB.
Still a bottleneck of how many concurrent queries you can do based on how many connections to Postgres you have
Can configure this. Will be intuited using introspection. EdgeDB will use the hard limit in Postgres instance. If it’s local, looks at the amount of RAM.
If you do open 10s of thousands and you have a problem, let us know. By design, it should be fine.