Product

Announcing Memgraph 2.0

by
Antonio Andelic

During the last year, we had a lot of release blog posts. Writing them can be tiring at times, but it is still an amazing feeling to wrap up the development of the new Memgraph version with a quick rundown of the progress made since the last release.

Having said that, this release is even more special for multiple reasons, and the biggest one is making the Memgraph repository public. This was something new for us and required us to learn a lot of new concepts, especially on the legal side. Fear not, we are not changing careers - everyone will continue developing Memgraph and no one is switching sides and becoming a lawyer. These changes and steps were worthy of raising the major version of Memgraph.

As part from the broader announcement, I want to tell you what Memgraph 2.0 is really bringing to the table.

Temporal types

Cypher supports a lot of types. Memgraph have covered the majority before, but a few were still missing like temporal types. If you felt that manipulating time was the only feature missing from Memgraph, you can relax now.

Four new types were added: Date, LocalDateTime, LocalTime, and Duration. Memgraph still don’t support temporal types that have timezones because timezones are really complex. Regardless, those four types should be enough for you to do a lot of exciting things with Memgraph. Memgraph procedure API is also updated to support temporal types, so you can do even more advanced things with time in Python and C/C++. Also, Memgraph Python and Rust clients support them as well.

Modifying the graph from procedures

Memgraph procedures allow you to write really complex things - they are one of Memgraph’s biggest strengths. Until now, you could only get information from a query, analyze it, and return the results.

Memgraph gives you even more freedom now. You can now create a vertex, delete an edge, change a property, drop all the data by accident… Whatever you feel like doing!

Both Python API and C-API for procedures support those functionalities, so be sure to try them out. Small disclaimer, there are some restrictions on the queries that call write procedures. For more information, check our documentation page for procedures.

One binary to rule them all

Until now, Memgraph has been building two binaries: Community Edition and Enterprise Edition. Because of the Source Available angle with all the code, having multiple binaries does not make sense any more.

So, Memgraph is now squashed in one beautiful unit. Additional advantage of this approach is that you can simply activate and deactivate Enterprise Edition whenever you want without installing anything!

This required Memgraph to introduce support for license keys and support for runtime settings. Memgraph can now be modified with settings using the queries described here. Find out how to get an Enterprise license here.

There are always bugs

As always, we also had some time to fix some bugs, so let’s wrap it up with a small rundown of them:

  • planner now correctly uses indices with MERGE clause if a symbol is used inside it
  • FREE MEMORY now correctly returns unused memory to OS
  • fixed recovering from durability files in some instances
  • fixed usage of execute symbol anywhere in the query

For more details, check out our Change Log.

Go and try it out! You can download the Memgraph 2.0 version here.

If you spot any bugs or generally weird behavior, please drop us a line on our issues page and forum. And remember, if you need any kind of information about Memgraph, the documentation site will always be by your side.

We also invite you to join our new Discord Server and stay informed on everything Memgraph related!

Happy hacking!

Table of Contents
Sign up for our Newsletter

Continue Reading