A tuple constructor is an expression that consists of a sequence of comma-separated expressions enclosed in parentheses. It produces a tuple value:
"(" expr [, ... ] ")"
Named tuples are created using the following syntax:
"(" identifier := expr [, ... ] ")"
Note that all elements in a named tuple must have a name.
A tuple constructor automatically creates a corresponding tuple type.
An element of a tuple can be referenced in the form:
expr.element-index
Here, expr is any expression that has a tuple type, and element-index is either the zero-based index of the element or the name of an element in a named tuple.
Examples:
db>
SELECT (1, 'EdgeDB').0;
{1}
db>
SELECT (number := 1, name := 'EdgeDB').name;
{"EdgeDB"}
db>
SELECT (number := 1, name := 'EdgeDB').1;
{"EdgeDB"}
Tuples can be nested:
db>
SELECT (nested_tuple := (1, 2),).nested_tuple.0;
{1}
Referencing a non-existent tuple element will result in an error:
db>
SELECT (1, 2).5;
EdgeQLError: 5 is not a member of a tuple ---- query context ---- line 1 > SELECT (1, 2).3;