CQL native functions
Describes scalar functions that work on values in a single row of data to create a new value.
CQL supports several functions that transform a column value into a new value.
The native database functions are:
- CAST
-
Converts the data returned by the selector to a native CQL data type.
CAST( selector AS to_type )
Cast strictly relies on the Java semantics, for more details on the underlying type see CQL types Java derivation. Only use in SELECT statements.Note: Silently ignores casting a column into its own data type.Selector column type Output data type (to_type) ascii text, varchar bigint tinyint, smallint, int, varint, float, double, decimal, text, varchar
boolean text, varchar counter tinyint, smallint, int, bigint, float, double, decimal, varint, text, varchar date timestamp decimal tinyint, smallint, int, bigint, float, double, varint, text, varchar double tinyint, smallint, int, bigint, float, decimal, varint, text, varchar float tinyint, smallint, int, bigint, double, decimal, varint, text, varchar inet text, varchar int tinyint, smallint, bigint, float, double, decimal, varint, text, varchar smallint tinyint, int, bigint, float, double, decimal, varint,text, varchar time text, varchar timestamp date, text, varchar timeuuid timestamp, date, text, varchar tinyint tinyint, smallint, int, bigint, float, double, decimal, varint, text, varchar uuid text, varchar varint tinyint, smallint, int, bigint, float, double, decimal, text, varchar The Java types, from which most CQL types are derived, are obvious to Java programmers. The derivation of the following types, however, might not be obvious:Table 1. CQL types Java derivation CQL type Java type decimal java.math.BigDecimal float java.lang.Float double java.lang.Double varint java.math.BigInteger - BLOBASto_type
- Converts the target column or literal (enclose strings in single
quotes) from a blob to the specified type.
blobAstype(column_name | literal)
- typeASBLOB
-
Converts the target column or literal (enclose strings in single quotes) to a blob from the specified type, where the from type corresponds to a valid CQL data type.
typeAsBlob(column_name | literal )
- TOKEN
-
Computes a token for values in the target column.
TOKEN(column_name)
The exact signature of the token function depends on the table concerned and of the partitioner used by the cluster.- Murmur3Partitioner type is
bigint
- RandomPartitioner type is
varint
- ByteOrderedPartitioner type is
blob
Use in the following CQL requests:- SELECT selector clause to return values in the target column as tokens; useful for manually paging through the data or to determine the physical location of a row or set of rows.
- SELECT where clause to return a set of records in a given token range. Allows comparison (greater than and less then) in the where clause without the use of ALLOW FILTERING. Useful when dividing query workloads between clients, such as multiple Spark clients for analytics.
Note: UPDATE does not support the token function in the where clause. - Murmur3Partitioner type is
- MINTIMEUUID
-
Computes the smallest fake
timeuuid
from the specified date ('yyyy-mm-dd'
) or timestamp ('yyyy-mm-dd [hh:mm:ss[.fff][+/-NNNN]]'
) formatted string.minTimeuuid( date_string | timestamp_string )
Use in a SELECT statement WHERE clause to return rows in a date range from a
timeuuid
column, for exampleWHERE id >= minTimeuuid('2017-05-01')
. - MAXTIMEUUID
-
Computes the largest fake
timeuuid
from the specified date ('yyyy-mm-dd'
) or timestamp ('yyyy-mm-dd [hh:mm:ss[.fff][+/-NNNN]]'
) formatted string.MAXTIMEUUID( date_string | timestamp_string )
Use in a SELECT statement where clause to return rows in a date range from a
timeuuid
column, for exampleWHERE id <= maxTimeuuid('2017-05-01')
. - NOW
-
Takes no arguments and generates, on the coordinator node, a new unique timeuuid at the time when the statement executed.
NOW()
Use in INSERT or UPDATE statements to generate a new
timeuuid
value.Although allowed in
WHERE
clauses, no values would match a given SELECT or UPDATE statement becausenow()
is guaranteed to be unique. - TODATE
-
Converts a
timestamp
value from milliseconds to days (since epoch) and fortimeuuid
extracts the timestamp and converts it to days since epoch.TODATE(column_name)
Note: Dates and times display in string format, but are stored and compared as integers. - TOTIMESTAMP
-
Converts a
date
value from days into milliseconds since epoch and fortimeuuid
extracts the timestamp.TOTIMESTAMP(column_name)
Note: Time (hh:mm:ss.ffffff+NNNN) of a date are all set to zero in the resulting timestamp. - TOUNIXTIMESTAMP
- Converts the
timeuuid
,timestamp
, ordate
column into the number of seconds since epoch.TOUNIXTIMESTAMP(column_name)
- UUID
- Takes no parameters and generates a random type 4 uuid.
UUID()
- WRITETIME
- Shows the unix timestamp (number of seconds since epoch) that
the data was written.
Use only in selectors clause of SELECT statements on non-partition key columns.WRITETIME(column_name)
- TTL
- Count down in seconds until the value in the field expires and
the data is automatically removed; null indicates that TTL
for the column is not set (or the count down has ended).
Use only in selectors clause of SELECT statements on non-partition key columns.TTL(column_name)
Deprecated functions
The following functions are supported for backward compatibility only.
- DATEOF
- Similar to
TOTIMESTAMP(timeuuid).
- UNIXTIMESTAMPOF
- Similar to
TOUNIXTIMESTAMP(timeuuid).