Epilogue

EdgeDB renamed to Gel at some point and was later absorbed into Vercel in December 2025.

Requests from Yury

Todo

  • Document how to tell the result of an upsert (update or insert) Todo
    • Here’s a query that will do it:
select (
  insert Person {name := 'Test', phone := '123456789'}
  unless conflict on (.name) else (
    update Person set {phone := '123456789'}
  )
) {is_new := (select not exists (select Person filter .name = 'Test'))};

name is exclusive here. Your query isn’t really an upsert since there’s no update, but you could use the same technique there too, I believe. This leverages the fact that, since everything here happens in a single transaction, the Person will not be found with a select if they are inserted with this query and checks for that with the computed is_new.

Done

If any of the above criteria is not met, we usually provide a custom type in
the client library itself that can be converted to a type from the language's
standard library or from a popular third-party library. Exception: The 
JavaScript ``Date`` type (which is actually a timestamp) has millisecond
precision. We decided it would be better to use that type by default even
though it doesn't have sufficient precision.

Development

Marketing

Learning

DX

Feature Testing

Content

New

Tricky Messaging

Video

Reviews

User Feedback

Web Site

Watering Holes

Meetings

Dev Rel Calls

name Add dev rel call log
type command
action QuickAdd: New EdgeDB dev rel meeting
color green
dv.list(dv.pages('"logs/EdgeDB dev rel meetings"').sort(page => page.file.ctime, 'desc').file.link)

Tools Calls

name Add tools call log
type command
action QuickAdd: New EdgeDB tools meeting
color green
dv.list(dv.pages('"logs/EdgeDB tools meetings"').sort(page => page.file.ctime, 'desc').file.link)

Web Site Calls

name Add web site call log
type command
action QuickAdd: New EdgeDB Web Site Meeting
color green
dv.list(dv.pages('"logs/EdgeDB web site meetings"').sort(page => page.file.ctime, 'desc').file.link)

Team Chats

name Add team chat log
type command
action QuickAdd: New EdgeDB Team Chat Meeting
color green

dv.list(dv.pages('"logs/EdgeDB team chat meetings"').sort(page => page.file.ctime, 'desc').file.link)

Not Linked Here

EdgeDB related notes not linked in this topic note

dv.list(dv.pages('"Devon/notes"').where(note => note.file.name.toLowerCase().includes('edgedb') && !note.file.inlinks.includes(dv.current().file.link)).sort(page => page.file.ctime, 'desc').file.link)