Releases: typedb/typeql
TypeQL 3.10.4
TypeQL Grammar and Language Library distributions for Rust
Available through https://crates.io/crates/typeql.
cargo add typeql@3.10.4
New Features
Bugs Fixed
Code Refactors
Other Improvements
-
Allow leading comma in redefine constraints
Mirrors the leading-comma sugar already accepted by
define:define person, owns name;parses, butredefine person, owns name @card(0..10);did not. Makeredefinable_typeaccept an optional COMMA between the label and the constraint so concat-based query generation has the same shape for define and redefine. -
Update Rust dependencies
TypeQL 3.10.1
TypeQL Grammar and Language Library distributions for Rust
Available through https://crates.io/crates/typeql.
cargo add typeql@3.10.1
New Features
Bugs Fixed
Code Refactors
Other Improvements
-
Update dependencies
-
Update Rust to 1.93.0
TypeQL 3.10.0
TypeQL Grammar and Language Library distributions for Rust
Available through https://crates.io/crates/typeql.
cargo add typeql@3.10.0
New Features
- Implement unicode unescaping
Escaped unicode characters can be used in TypeQL string literals. These must be of the form\uXXXX(exactly 4 hex digits), or\u{XX...X}(1 to 6 hex digits).
Bugs Fixed
Code Refactors
Other Improvements
-
Fix parser for inserting with anonymous relation syntax
Fixes a bug in parsing for inserting with anonymous relation syntax -
Minor grammar refactor for parser performance improvements
Reordering the choices to boost performance by failing faster and having more frequent alternatives earlier. Also removes the!reservedcheck for identifiers and expects this to be handled in an application post-check. -
Bazel 8 upgrade
Update Bazel version from 6.2 to 8.5.1.
The upgrade is done in a backwards-compatible way, such that "upstream" repositories that are yet to be upgraded may depend on this repository. This is done by preserving WORKSPACE and the deps.bzl loader files alongside the new Bazel 8 ones. Once every repository has been upgraded to Bazel 8, these files will be removed.
TypeQL 3.8.4-rc0
TypeQL Grammar and Language Library distributions for Rust
Available through https://crates.io/crates/typeql.
cargo add typeql@3.8.4-rc0
New Features
- Implement unicode unescaping
Escaped unicode characters can be used in TypeQL string literals. These must be of the form\uXXXX(exactly 4 hex digits), or\u{XX...X}(1 to 6 hex digits).
Bugs Fixed
Code Refactors
Other Improvements
-
Fix parser for inserting with anonymous relation syntax
Fixes a bug in parsing for inserting with anonymous relation syntax -
Minor grammar refactor for parser performance improvements
Reordering the choices to boost performance by failing faster and having more frequent alternatives earlier. Also removes the!reservedcheck for identifiers and expects this to be handled in an application post-check.
TypeQL 3.8.3-rc0
TypeQL Grammar and Language Library distributions for Rust
Available through https://crates.io/crates/typeql.
cargo add typeql@3.8.2
New Features
-
Allow leading underscore in type labels
We relax our identifier rules, allowing
_as a leading underscore in type labels. This does NOT extend to variables, since we have some complexity around anonymous variables for the time being we don't want to modify.
Bugs Fixed
Code Refactors
- Introduce Collector variant of Reducer to accomodate the unimplemented list reducer
It was placed under Stat, which it is not and caused confusion & crashes in core.
Other Improvements
-
Add tests for end; clause in query pipelines
Add tests for
end;statements -
Allow decimal syntax without a period
To give both humans and LLMs more flexibility when writing
decimalvalue types, we no longer requiring the.0inxxx.0dec. This is unambiguous since thedecsuffix already syntactically differentiates when a value is a decimal.
TypeQL 3.8.2
TypeQL Grammar and Language Library distributions for Rust
Available through https://crates.io/crates/typeql.
cargo add typeql@3.8.2
New Features
-
Allow leading underscore in type labels
We relax our identifier rules, allowing
_as a leading underscore in type labels. This does NOT extend to variables, since we have some complexity around anonymous variables for the time being we don't want to modify.
Bugs Fixed
Code Refactors
- Introduce Collector variant of Reducer to accomodate the unimplemented list reducer
It was placed under Stat, which it is not and caused confusion & crashes in core.
Other Improvements
-
Add tests for end; clause in query pipelines
Add tests for
end;statements -
Allow decimal syntax without a period
To give both humans and LLMs more flexibility when writing
decimalvalue types, we no longer requiring the.0inxxx.0dec. This is unambiguous since thedecsuffix already syntactically differentiates when a value is a decimal.
TypeQL 3.8.0
TypeQL Grammar and Language Library distributions for Rust
Available through https://crates.io/crates/typeql.
cargo add typeql@3.8.0
New Features
-
Add built-in functions iid() and label()
We add
iid()andlabel()to the built-in functions in the TypeQL grammar.
Bugs Fixed
-
Use XID_START and XID_CONTINUE character classes
We use
XID_STARTandXID_CONTINUEcharacter classes provided by pest instead of manually listing unicode codepoint ranges for our identifiers. We also change the definition of the word boundary (WB) to be "any character that is not an identifier continuation character" that resolves parsing bugs such aslet $var= 4;failing to parse:=is notPUNCTUATION, so not valid word boundary.
Code Refactors
Other Improvements
-
Expose value parser
We expose value parsing as a top-level function, and update the value literal definitions. This lets us re-use the value parser for test frameworks in other repositories.
-
Update TypeQL banner image link in README
-
Add contributing guidelines to CONTRIBUTING.md
-
Allow trailing commas (#421)
To simplify writing and generating queries, we allow trailing commas anywhere we use a comma separated list of variables, statements, reductions, etc.
-
Remove discussion and Stack Overflow links
-
Allow trailing commas
To simplify writing and generating queries, we allow trailing commas anywhere we use a comma separated list of variables, statements, reductions, etc.
TypeQL 3.8.0-rc0
TypeQL Grammar and Language Library distributions for Rust
Available through https://crates.io/crates/typeql.
cargo add typeql@3.8.0-rc0
New Features
-
Add built-in functions iid() and label()
We add
iid()andlabel()to the built-in functions in the TypeQL grammar.
Bugs Fixed
-
Use XID_START and XID_CONTINUE character classes
We use
XID_STARTandXID_CONTINUEcharacter classes provided by pest instead of manually listing unicode codepoint ranges for our identifiers. We also change the definition of the word boundary (WB) to be "any character that is not an identifier continuation character" that resolves parsing bugs such aslet $var= 4;failing to parse:=is notPUNCTUATION, so not valid word boundary.
Code Refactors
Other Improvements
-
Expose value parser
We expose value parsing as a top-level function, and update the value literal definitions. This lets us re-use the value parser for test frameworks in other repositories.
-
Update TypeQL banner image link in README
-
Add contributing guidelines to CONTRIBUTING.md
-
Allow trailing commas (#421)
To simplify writing and generating queries, we allow trailing commas anywhere we use a comma separated list of variables, statements, reductions, etc.
-
Remove discussion and Stack Overflow links
-
Allow trailing commas
To simplify writing and generating queries, we allow trailing commas anywhere we use a comma separated list of variables, statements, reductions, etc.
TypeQL 3.7.0
TypeQL Grammar and Language Library distributions for Rust
Available through https://crates.io/crates/typeql.
cargo add typeql@3.7.0
New Features
-
Try blocks in write stages
We allow
try {}blocks in all write stages, viz.insert,delete,put, andupdate.
Bugs Fixed
Code Refactors
Other Improvements
-
Change CODEOWNERS
-
Fix illegal grammar error formatting
We fix the (internal) illegal grammar error formatting to show the part of the query that caused the error rather than the corresponding parsed subtree.
TypeQL 3.7.0-rc0
TypeQL Grammar and Language Library distributions for Rust
Available through https://crates.io/crates/typeql.
cargo add typeql@3.7.0-rc0
New Features
-
Try blocks in write stages
We allow
try {}blocks in all write stages, viz.insert,delete,put, andupdate.
Bugs Fixed
Code Refactors
Other Improvements
-
Change CODEOWNERS
-
Fix illegal grammar error formatting
We fix the (internal) illegal grammar error formatting to show the part of the query that caused the error rather than the corresponding parsed subtree.