TypeDB 3.8.0
Download from TypeDB Package Repository:
Pull the Docker image:
docker pull typedb/typedb:3.8.0
New Features
-
Implement date/time and string binary operators
We implement addition and subtraction operators for
date,datetime,datetime_tz, andduration.We also implement string concatenation, also performedd with the
+operator. -
Implement built-in functions length(), iid(), and label()
len(): string length in codepoints / unicode scalar values (USVs):len("TypeDB") == 6,len("こんにちは") == 5,len("⭐") == 1,len("❤️🔥") == 4;iid(): an instance's internal ID as a string, to be used in aniidconstraint in following queries;label(): a type's label as a string, for convenience in fetch queries.
Bugs Fixed
-
Tag parameters with value type
We tag extracted parameters in queries with their value type. Previously the plan cache would not be able to distinguish queries with integer literals from ones with datetime literals, e.g., which would cause it to retrieve a wrong compiled plan from the cache, causing a server crash.
-
Always regenerate indices for modified relations on schema commit #7594 changed relation-index behaviour so schema transactions avoid reading or writing to relation-indices - and generate indices at commit time for newly inserted relations, or relations of types that became eligible for indices as part of schema modifications.
-
Fix division error checking so a zero result is not considered an error Division relied on
f64::is_normal. Now, onlyFpCategory::InfandFpCategory::Nanare considered errors. This is checked byf64::is_finite -
Fix Sentry crash reporting by updating dependencies Update dependencies https://github.com/typedb/typedb-dependencies/pull/595 to use the
rustlsfeature ofsentry, allowing it to always send reports to the protected sentry endpoint. Fixes https://github.com/typedb/typedb/issues/7650.The ureq HTTP transport used by Sentry requires a TLS backend to make HTTPS requests to sentry.io. Our sentry dependency was configured with
default-features = falseand the ureq feature, which, following the description on the official docs page, enabledrustlsby default. If built using Bazel, this indeed works correctly. However, when built through Cargo, no actual reports could be sent to the Sentry endpoint, asrustlsis not enabled forureqby default (default features, includingrustls, are turned off). -
Annotations can use losslessy castable arguments
We fix two panics that arose when using castable values (eg. integers range annotations for decimal value types) in parameters to annotations, such as a that used arguments: or .
Code Refactors
Other Improvements
-
Introduce bazel ci config setting
We add a bazel config profile
ci, which does not use a local disk cache. Local disk caches can help speed up builds, especially when switching branches or creating new worktrees. However, they can be very large and cause CI systems to run out of disk space, while also not providing any benefits (roughly building once per CI job, and already using the global networked cache). -
Add bazel disk cache to speed up local builds when switching branches
-
Change "newsletter" to "blog" in README