Skip to content
NEW BENCHMARKS

SurrealDB 3.x by the numbers

View

1/3

Release 1.2

3 patch releases · Latest 1.2.2 on Mar 7, 2024

Newer release line available: 1.3

Bug fixes: Ensure relevant indexes are triggered when using IN in a SELECT query. Ensure the query planner accepts Datetime and Uuid values. Restore cosine…

1.2.2

Released on Mar 7, 2024

Bug fixes:

  • Ensure relevant indexes are triggered when using IN in a SELECT query.

  • Ensure the query planner accepts Datetime and Uuid values.

  • Restore cosine distance on MTree indexes.

  • Fix regression in index data serialisation.

  • Ensure rquickjs builds don't stall on macOS.

Upgrade or install

Get SurrealDB v1.2.2

Pick how you want to install or upgrade. Surrealist can update connected instances in place, or choose a platform below to copy a CLI command for v1.2.2.

You can upgrade your SurrealDB Cloud instance to v1.2.2 effortlessly through the Surrealist app.

  1. Select your organisation and instance
  2. On the dashboard, click on the "Upgrade" button
  3. Your instance will be updated and restarted automatically

1.2.1

Released on Feb 16, 2024

Bug fixes:

  • Fix an issue with WHERE clause on queries resolving record links or graph edges.

  • Fix MATH::SQRT_2 not parsing.

  • Fix a panic in span rendering.

  • Fix CLI output not displaying properly sometimes.

Newer patch available

Upgrade to 1.2.2

You are viewing the 1.2.1 changelog. A newer patch in this release line is available - we recommend running 1.2.2 for the latest fixes and improvements.

View 1.2.2 release notes

1.2.0

Released on Feb 13, 2024

Features:

  • Bump MSRV to 1.75.

  • In-memory index store.

  • Show execution time in CLI.

  • knn brute force.

  • Implement support for remote JSON Web Key Sets.

  • Add support for LIVE SELECT in the SDK and CLI.

  • Add IF EXISTS to REMOVE TABLE statement.

  • Add READONLY keyword to DEFINE FIELD statement.

  • Add alias -V and --version flags for surreal version command.

  • Define types for subfields when defining array fields.

  • Add string::semver::compare, string::semver::major, string::semver::minor, string::semver::patch, string::semver::inc::major, string::semver::inc::minor, string::semver::inc::patch, string::semver::set::major, string::semver::set::minor, string::semver::set::patch methods.

Bug fixes:

  • Make record id string parsing never fail early.

  • Prevent overflow in math::power().

  • Fix error message pointing to wrong character.

  • Respect alias for dynamic field queries with type::field.

  • Remove min/1000 in tx:delp.

  • Replace custom JWT parser causing decoding issues.

  • Issue with scoring on complex queries.

  • Limit recursion depth when parsing nested RELATE statements.

  • Fix a bug where a non-empty list parser would parse empty lists.

  • Ensure an attempt to set a protected variable returns an error.

  • Fix duration addition in timeout causing overflow.

  • Panic invoking parameters and functions without a database.

  • Fix a bug where the kind parser would eat whitespace.

  • Fix WebSocket notification sending format.

  • Implement missing errors for missing clauses on DEFINE-statements.

  • Ensure advanced DEFINE PARAM parameters are computed correctly.

  • Ensure path idioms are correct when looping over.

  • Fix json failing to parse with trailing whitespace.

  • Fix the five second delay in Wasm after initial connection.

  • Add context to live query notifications.

  • Fix the modulo operator on sql2 and parser1.

  • Improve the js-surql value conversion for numbers.

  • Implement revision types for client/server communication.

  • Fix builtin error pointing to the wrong part.

  • Fix a panic when invalid builtin function names are passed to the executor.

Performance improvements:

  • Ensure compression is only enabled when response is a certain size.

  • In MTree large vector improvement.

-- Specify the namespace and database for the token
USE NS abcum DB app_vitalsense;

-- Set the name of the token
DEFINE TOKEN token_name
-- Use this token provider for database authorization
ON DATABASE
-- Specify the JWKS specification used to verify the token
TYPE JWKS
-- Specify the URL where the JWKS object can be found
VALUE "https://example.com/.well-known/jwks.json"
;
DEFINE FIELD created ON resource VALUE time::now() READONLY;
DEFINE FIELD foo ON bar TYPE array<number>
-- Where <number> is a subfield of the array type.
-- It now defines the number subfield automatically instead of having to run this manually:
DEFINE FIELD foo.* ON bar TYPE number

Newer patch available

Upgrade to 1.2.2

You are viewing the 1.2.0 changelog. A newer patch in this release line is available - we recommend running 1.2.2 for the latest fixes and improvements.

View 1.2.2 release notes

Our newsletter

Get tutorials, AI agent recipes, webinars, and early product updates in your inbox every two weeks

SurrealDB

The context layer for AI agents.

Documents, graphs, vectors, time-series, and memory.
One transaction, one query, one deployment.

Explore with AI

Independently verified

SOC 2 Type 2

GDPR

Cyber Essentials Plus

ISO 27001

Trust Centre

Copyright © 2026 SurrealDB Ltd. Registered in England and Wales. Company no. 13615201

Registered address: 3rd Floor 1 Ashley Road, Altrincham, Cheshire, WA14 2DT, United Kingdom

Trading address: Huckletree Oxford Circus, 213 Oxford Street, London, W1D 2LG, United Kingdom