TypeDB 3.8.0-rc0
Download from TypeDB Package Repository:
Pull the Docker image:
docker pull typedb/typedb:3.8.0-rc0
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
-
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
decimalthat usedintegerarguments:person owns salary @values(10)orperson owns salary @range(0..1000000);.We make consistent the behaviour that:
- Integers are losslessly castable to Decimal and Double value types
- Date is lossless castable to DateTime
We have also updated BDD tests to reflect that doubles are no longer losslessly castable to decimals, since they have different precision.
Code Refactors
Other Improvements
-
Add bazel disk cache to speed up local builds when switching branches
-
Change "newsletter" to "blog" in README