1.0 Alpha 3
This changelog summarizes new features and breaking changes in EdgeDB 1.0 alpha 3 “Proxima Centauri”.
CLI
The EdgeDB command-line tools are now written in Rust. The tools are a single binary now and can run on multiple different platforms, including Windows.
A few more commands have been added to REPL:
\dump FILENAME dump current database into a file
\restore FILENAME restore the database from file into
the current one
\s, \history show history
\e, \edit [N] spawn $EDITOR to edit history entry N
then use the output as the input
\set [OPTION [VALUE]] show/change setting
\set Show setting descriptions (without
arguments)
Existing introspection commands have been slightly updated to use a different way of supplying command options. Commands now also have long-form names that are more human-readable.
Also, there are a few settings that control the look and feel of the
REPL (and can be changed via the \set
command:
expand-strings Stop escaping newlines in quoted
strings
implicit-properties Print implicit properties of objects:
id, type id
input-mode Set input mode. One of: vi, emacs
introspect-types Print type names instead of `Object`
in default output mode (may fail if
schema is updated after enabling
option)
limit Set implicit LIMIT. Defaults to 100,
specify 0 to disable
output-mode Set output mode. One of: json, json-
elements, default, tab-separated
verbose-errors Print all errors with maximum
verbosity
EdgeQL
-
Distinguish
required
andoptional
query parameters (#1352, #1355) -
Allow tuple arrays in schema definitions (73125882).
-
Get rid of
schema::CompoundType
in favor ofis_compound_type
property (c30c1c4f). -
Add
anytype
andanytuple
as proper abstract types to the schema (affb65de). -
schema::Constraint
no longer hasargs
, useparams
instead (14cec6f1). -
Make
std::Object
the implicit base type for all user-defined object types only. -
Make
std::BaseObject
the root type for all object types both user-defined and system object types. -
Accept
1e100n
format as a validbigint
constant rather thandecimal
(#1372) -
Make self-referencing (recursive) aliases forbidden.
-
Fix dependency tracking affecting index creation (#1181).
-
Fix derivation of link targets in certain cases of multiple inheritance (52c6b2d4).
-
Fix handling of ad-hoc tuples (#1255).
-
Fix incorrect implicit limit injection in subqueries in computed expressions (#1271).
-
Computables cardinality must now be declared explicitly as
required
,single
ormulti
. The expression is validated to be within the upper and lower limits implied by the declaration (#1201, #349). -
Prohibit database names longer than 63 characters (#1158).
-
Prohibit duplicate elements in shapes (#1368).
-
Implement
alter function
(#1433).
GraphQL
Standard Library
-
Rename
std::to_str()
array-joining function toarray_join()
. -
Rename
std::to_array()
string-splitting function tostr_split()
.
Server
-
Convert EdgeQL lexer (#1178)
-
Convert GraphQL parser to Rust and perform constant extraction (#1299).
-
Constant extraction from EdgeQL queries (#1356)
-
Make it possible to use different EdgeDB servers connected to the same Postgres cluster (#1197).
-
Protocol: implement
JSON_ELEMENTS
IO format for responses (#1169).
Misc
-
Add cheatsheet to documentation.
-
Strictly type-annotate the core schema module.
-
Clean-up and improve schema and introspection code to make the internal APIs more consistent (#1408).
-
Update the edgedb-js driver to v0.7.3.
-
Update the edgedb-python driver to v0.8.0.