You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
1.1 KiB
Markdown

2 years ago
# Datatypes
A runtime value in Cozo can be of the following _value-types_:
* Null
* Bool
* Number
* String
* Bytes
* List
Number can be Float (double precision) or Int (signed, 64 bits). Cozo will do auto promotion from Int to Float when necessary.
List can contain any number of mixed-type values, including other lists.
Cozo defines a total order for all values according to the above order. Lists are ordered lexicographically by their elements. Strings are ordered lexicographically by their UTF-8 byte representation.
In schema definition, the required type for a value can be specified by any of the following _schema-types_
* Ref
* Component
* Int
* Float
* Bool
* String
* Bytes
* List
When retrieving values of triples, values of the first three schema-types (Ref, Component, Int) are all represented by the value-type Number (actually Int).
Note the absence of Null type in schema-types.
When asserting (inserting or updating) triples, if a value given is not of the correct schema-type, Cozo will first try to coerce the value and will only error out if no known coercion methods exist.