= Changes

The following describes the changes in each version of CQL.

== 3.4.5

* Adds support for arithmetic operators (`11935`)
* Adds support for `+` and `-` operations on dates (`11936`)
* Adds `currentTimestamp`, `currentDate`, `currentTime` and
`currentTimeUUID` functions (`13132`)

== 3.4.4

* `ALTER TABLE` `ALTER` has been removed; a column's type may not be
changed after creation (`12443`).
* `ALTER TYPE` `ALTER` has been removed; a field's type may not be
changed after creation (`12443`).

== 3.4.3

* Adds a new `duration` `data types <data-types>` (`11873`).
* Support for `GROUP BY` (`10707`).
* Adds a `DEFAULT UNSET` option for `INSERT JSON` to ignore omitted
columns (`11424`).
* Allows `null` as a legal value for TTL on insert and update. It will
be treated as equivalent to inserting a 0 (`12216`).

== 3.4.2

* If a table has a non zero `default_time_to_live`, then explicitly
specifying a TTL of 0 in an `INSERT` or `UPDATE` statement will result
in the new writes not having any expiration (that is, an explicit TTL of
0 cancels the `default_time_to_live`). This wasn't the case before and
the `default_time_to_live` was applied even though a TTL had been
explicitly set.
* `ALTER TABLE` `ADD` and `DROP` now allow multiple columns to be
added/removed.
* New `PER PARTITION LIMIT` option for `SELECT` statements (see
https://issues.apache.org/jira/browse/CASSANDRA-7017)[CASSANDRA-7017].
* `User-defined functions <cql-functions>` can now instantiate
`UDTValue` and `TupleValue` instances via the new `UDFContext` interface
(see
https://issues.apache.org/jira/browse/CASSANDRA-10818)[CASSANDRA-10818].
* `User-defined types <udts>` may now be stored in a non-frozen form,
allowing individual fields to be updated and deleted in `UPDATE`
statements and `DELETE` statements, respectively.
(https://issues.apache.org/jira/browse/CASSANDRA-7423)[CASSANDRA-7423]).

== 3.4.1

* Adds `CAST` functions.

== 3.4.0

* Support for `materialized views <materialized-views>`.
* `DELETE` support for inequality expressions and `IN` restrictions on
any primary key columns.
* `UPDATE` support for `IN` restrictions on any primary key columns.

== 3.3.1

* The syntax `TRUNCATE TABLE X` is now accepted as an alias for
`TRUNCATE X`.

== 3.3.0

* `User-defined functions and aggregates <cql-functions>` are now
supported.
* Allows double-dollar enclosed strings literals as an alternative to
single-quote enclosed strings.
* Introduces Roles to supersede user based authentication and access
control
* New `date`, `time`, `tinyint` and `smallint` `data types <data-types>`
have been added.
* `JSON support <cql-json>` has been added
* Adds new time conversion functions and deprecate `dateOf` and
`unixTimestampOf`.

== 3.2.0

* `User-defined types <udts>` supported.
* `CREATE INDEX` now supports indexing collection columns, including
indexing the keys of map collections through the `keys()` function
* Indexes on collections may be queried using the new `CONTAINS` and
`CONTAINS KEY` operators
* `Tuple types <tuples>` were added to hold fixed-length sets of typed
positional fields.
* `DROP INDEX` now supports optionally specifying a keyspace.

== 3.1.7

* `SELECT` statements now support selecting multiple rows in a single
partition using an `IN` clause on combinations of clustering columns.
* `IF NOT EXISTS` and `IF EXISTS` syntax is now supported by
`CREATE USER` and `DROP USER` statements, respectively.

== 3.1.6

* A new `uuid()` method has been added.
* Support for `DELETE ... IF EXISTS` syntax.

== 3.1.5

* It is now possible to group clustering columns in a relation, see
`WHERE <where-clause>` clauses.
* Added support for `static columns <static-columns>`.

== 3.1.4

* `CREATE INDEX` now allows specifying options when creating CUSTOM
indexes.

== 3.1.3

* Millisecond precision formats have been added to the
`timestamp <timestamps>` parser.

== 3.1.2

* `NaN` and `Infinity` has been added as valid float constants. They are
now reserved keywords. In the unlikely case you we using them as a
column identifier (or keyspace/table one), you will now need to double
quote them.

== 3.1.1

* `SELECT` statement now allows listing the partition keys (using the
`DISTINCT` modifier). See
https://issues.apache.org/jira/browse/CASSANDRA-4536[CASSANDRA-4536].
* The syntax `c IN ?` is now supported in `WHERE` clauses. In that case,
the value expected for the bind variable will be a list of whatever type
`c` is.
* It is now possible to use named bind variables (using `:name` instead
of `?`).

== 3.1.0

* `ALTER TABLE` `DROP` option added.
* `SELECT` statement now supports aliases in select clause. Aliases in
WHERE and ORDER BY clauses are not supported.
* `CREATE` statements for `KEYSPACE`, `TABLE` and `INDEX` now supports
an `IF NOT EXISTS` condition. Similarly, `DROP` statements support a
`IF EXISTS` condition.
* `INSERT` statements optionally supports a `IF NOT EXISTS` condition
and `UPDATE` supports `IF` conditions.

== 3.0.5

* `SELECT`, `UPDATE`, and `DELETE` statements now allow empty `IN`
relations (see
https://issues.apache.org/jira/browse/CASSANDRA-5626)[CASSANDRA-5626].

== 3.0.4

* Updated the syntax for custom `secondary indexes <secondary-indexes>`.
* Non-equal condition on the partition key are now never supported, even
for ordering partitioner as this was not correct (the order was *not*
the one of the type of the partition key). Instead, the `token` method
should always be used for range queries on the partition key (see
`WHERE clauses <where-clause>`).

== 3.0.3

* Support for custom `secondary indexes <secondary-indexes>` has been
added.

== 3.0.2

* Type validation for the `constants <constants>` has been fixed. For
instance, the implementation used to allow `'2'` as a valid value for an
`int` column (interpreting it has the equivalent of `2`), or `42` as a
valid `blob` value (in which case `42` was interpreted as an hexadecimal
representation of the blob). This is no longer the case, type validation
of constants is now more strict. See the `data types <data-types>`
section for details on which constant is allowed for which type.
* The type validation fixed of the previous point has lead to the
introduction of blobs constants to allow the input of blobs. Do note
that while the input of blobs as strings constant is still supported by
this version (to allow smoother transition to blob constant), it is now
deprecated and will be removed by a future version. If you were using
strings as blobs, you should thus update your client code ASAP to switch
blob constants.
* A number of functions to convert native types to blobs have also been
introduced. Furthermore the token function is now also allowed in select
clauses. See the `section on functions <cql-functions>` for details.

== 3.0.1

* Date strings (and timestamps) are no longer accepted as valid
`timeuuid` values. Doing so was a bug in the sense that date string are
not valid `timeuuid`, and it was thus resulting in
https://issues.apache.org/jira/browse/CASSANDRA-4936[confusing
behaviors]. However, the following new methods have been added to help
working with `timeuuid`: `now`, `minTimeuuid`, `maxTimeuuid` , `dateOf`
and `unixTimestampOf`.
* Float constants now support the exponent notation. In other words,
`4.2E10` is now a valid floating point value.

== Versioning

Versioning of the CQL language adheres to the http://semver.org[Semantic
Versioning] guidelines. Versions take the form X.Y.Z where X, Y, and Z
are integer values representing major, minor, and patch level
respectively. There is no correlation between Cassandra release versions
and the CQL language version.

[cols=",",options="header",]
|===
|version |description
| Major | The major version _must_ be bumped when backward incompatible changes
are introduced. This should rarely occur.
| Minor | Minor version increments occur when new, but backward compatible,
functionality is introduced.
| Patch | The patch version is incremented when bugs are fixed.
|===
