Cassandraドキュメント

バージョン

プレリリース版のドキュメントをご覧になっています。

変更点

以下は、CQLの各バージョンの変更点を説明しています。

3.4.7

  • ベクトル類似度関数`(18640)`を追加

  • 非推奨の関数`dateOf`と`unixTimestampOf`を削除し、`toTimestamp`と`toUnixTimestamp`に置き換えられました `(18328)`

  • マスキング関数をテーブル列にアタッチするためのサポートが追加されました `(18068)`

  • UNMASKパーミッションを追加 `(18069)`

  • SELECT_MASKEDパーミッションを追加 `(18070)`

  • UDFをマスキング関数として使用するためのサポートを追加 `(18071)`

  • スネークケースの関数名を採用し、以前のキャメルケースまたはスペースなしの関数名をすべて非推奨にしました `(18037)`

  • 新しい`vector`データ型を追加 `(18504)`

3.4.6

  • ALTERステートメントでIF EXISTSとIF NOT EXISTSのサポートを追加 `(16916)`

  • 単一のステートメントで複数のパーミッションをGRANT / REVOKEできるようにしました `(17030)`

  • CQLでハッシュ化されたパスワードを事前に `(17334)`

  • WHERE句のコンポーネントとINSERT / UPDATEステートメントの値で型キャストのサポートを追加 `(14337)`

  • 条件付きUPDATEおよびDELETEステートメントでCONTAINSおよびCONTAINS KEYのサポートを追加 `(10537)`

  • キースペース内のすべてのテーブルにパーミッションを付与できるようにしました `(17027)`

  • 時間間隔での集計を許可 `(11871)`

3.4.5

  • 算術演算子のサポートを追加 `(11935)`

  • 日付に対する`+`および`-`操作のサポートを追加 `(11936)`

  • `currentTimestamp`、`currentDate`、`currentTime`、および`currentTimeUUID`関数を追加 `(13132)`

3.4.4

  • `ALTER TABLE` `ALTER`は削除されました。 列の型は、作成後に変更できません `(12443)`。

  • `ALTER TYPE` `ALTER`は削除されました。 フィールドの型は、作成後に変更できません `(12443)`。

3.4.3

  • 新しい`duration` `データ型<data-types>`を追加 `(11873)`。

  • `GROUP BY`のサポート `(10707)`。

  • `DEFAULT UNSET`オプションを`INSERT JSON`に追加して、省略された列を無視するようにしました `(11424)`。

  • 挿入および更新時にTTLの有効な値として`null`を許可します。 0を挿入することと同等に扱われます `(12216)`。

3.4.2

  • テーブルの`default_time_to_live`がゼロ以外の場合、`INSERT`または`UPDATE`ステートメントでTTLを明示的に0に指定すると、新しい書き込みに有効期限が設定されません(つまり、明示的なTTL 0は`default_time_to_live`をキャンセルします)。 これは以前はそうではなく、TTLが明示的に設定されていても`default_time_to_live`が適用されていました。

  • `ALTER TABLE``ADD`と`DROP`で、複数の列を追加/削除できるようになりました。

  • `SELECT`ステートメントの新しい`PER PARTITION LIMIT`オプション(CASSANDRA-7017を参照)。

  • `ユーザー定義関数<cql-functions>`は、新しい`UDFContext`インターフェースを介して`UDTValue`および`TupleValue`インスタンスをインスタンス化できるようになりました(CASSANDRA-10818を参照)。

  • `ユーザー定義型<udts>`は、凍結されていない形式で保存できるようになり、`UPDATE`ステートメントと`DELETE`ステートメントで個々のフィールドをそれぞれ更新および削除できるようになりました。 (CASSANDRA-7423)。

3.4.1

  • `CAST`関数を追加。

3.4.0

  • `マテリアライズドビュー<materialized-views>`のサポート。

  • プライマリキー列の不等式と`IN`制限に対する`DELETE`のサポート。

  • プライマリキー列の`IN`制限に対する`UPDATE`のサポート。

3.3.1

  • 構文`TRUNCATE TABLE X`は、`TRUNCATE X`のエイリアスとして受け入れられるようになりました。

3.3.0

  • `ユーザー定義関数と集計<cql-functions>`がサポートされるようになりました。

  • 単一引用符で囲まれた文字列の代わりに、二重ドル記号で囲まれた文字列リテラルを許可します。

  • ユーザーベースの認証とアクセス制御に取って代わるロールを導入

  • 新しい`date`、`time`、`tinyint`、および`smallint` `データ型<data-types>`が追加されました。

  • `JSONサポート<cql-json>`が追加されました

  • 新しい時間変換関数を追加し、`dateOf`と`unixTimestampOf`を非推奨にしました。

3.2.0

  • `ユーザー定義型<udts>`がサポートされています。

  • `CREATE INDEX`は、`keys()`関数を使用してマップコレクションのキーのインデックス作成を含め、コレクション列のインデックス作成をサポートするようになりました

  • コレクションのインデックスは、新しい`CONTAINS`および`CONTAINS KEY`演算子を使用してクエリできます

  • `タプル型<tuples>`が追加され、型指定された位置フィールドの固定長セットが保持されるようになりました。

  • `DROP INDEX`は、オプションでキースペースを指定できるようになりました。

3.1.7

  • `SELECT`ステートメントは、クラスタリング列の組み合わせで`IN`句を使用して、単一パーティションで複数の行を選択できるようになりました。

  • `IF NOT EXISTS`および`IF EXISTS`構文は、それぞれ`CREATE USER`および`DROP USER`ステートメントでサポートされるようになりました。

3.1.6

  • 新しい`uuid()`メソッドが追加されました。

  • `DELETE…​ IF EXISTS`構文のサポート。

3.1.5

  • 関係でクラスタリング列をグループ化できるようになりました。`WHERE <where-clause>`句を参照してください。

  • `静的列<static-columns>`のサポートが追加されました。

3.1.4

  • `CREATE INDEX`では、CUSTOMインデックスの作成時にオプションを指定できるようになりました。

3.1.3

  • ミリ秒精度の形式が`timestamp <timestamps>`パーサーに追加されました。

3.1.2

  • `NaN`と`Infinity`が有効なフロート定数として追加されました。 これらは予約語になりました。 これらを列識別子(またはキースペース/テーブル識別子)として使用していたまれな場合は、二重引用符で囲む必要があります。

3.1.1

  • `SELECT`ステートメントで、パーティションキーをリストできるようになりました(`DISTINCT`修飾子を使用)。 CASSANDRA-4536を参照してください。

  • 構文`c IN?`は、`WHERE`句でサポートされるようになりました。 その場合、バインド変数に予期される値は、`c`の型に関係なくリストになります。

  • 名前付きバインド変数(`?`の代わりに`:name`を使用)を使用できるようになりました。

3.1.0

  • `ALTER TABLE``DROP`オプションが追加されました。

  • `SELECT`ステートメントは、select句のエイリアスをサポートするようになりました。 WHERE句とORDER BY句のエイリアスはサポートされていません。

  • `KEYSPACE`、`TABLE`、および`INDEX`の`CREATE`ステートメントは、`IF NOT EXISTS`条件をサポートするようになりました。 同様に、`DROP`ステートメントは`IF EXISTS`条件をサポートします。

  • `INSERT`ステートメントはオプションで`IF NOT EXISTS`条件をサポートし、`UPDATE`は`IF`条件をサポートします。

3.0.5

  • `SELECT`、`UPDATE`、および`DELETE`ステートメントで、空の`IN`関係が許可されるようになりました(CASSANDRA-5626を参照)。

3.0.4

  • カスタム`セカンダリインデックス<secondary-indexes>`の構文が更新されました。

  • パーティションキーの非等価条件は、順序付けパーティショナーであってもサポートされなくなりました。これは正しくなかったためです(順序はパーティションキーの型の順序では**ありませんでした**)。 代わりに、パーティションキーの範囲クエリには常に`token`メソッドを使用する必要があります(`WHERE句<where-clause>`を参照)。

3.0.3

  • カスタム`セカンダリインデックス<secondary-indexes>`のサポートが追加されました。

3.0.2

  • `定数<constants>`の型検証が修正されました。 たとえば、実装では、`int`列の有効な値として`'2'`を許可していました(`2`と同等として解釈)、または`blob`値として`42`を許可していました(この場合、`42`は16進表現として解釈されていました)ブロブの)。 もはやそうではなく、定数の型検証はより厳格になりました。 どの定数がどの型に許可されているかの詳細については、`データ型<data-types>`セクションを参照してください。

  • 前のポイントの型検証の修正により、BLOBの入力ができるようにBLOB定数が導入されました。 文字列定数としてのBLOBの入力は、このバージョンでは引き続きサポートされていますが(BLOB定数へのスムーズな移行を可能にするため)、現在は非推奨であり、将来のバージョンで削除されることに注意してください。 文字列をBLOBとして使用していた場合は、できるだけ早くクライアントコードを更新してBLOB定数に切り替える必要があります。

  • ネイティブ型をBLOBに変換するための多くの関数も導入されました。 さらに、token関数はselect句でも許可されるようになりました。 詳細については、`関数のセクション<cql-functions>`を参照してください。

3.0.1

  • 日付文字列(およびタイムスタンプ)は、有効な timeuuid 値として受け入れられなくなりました。日付文字列は有効な timeuuid ではないため、これを行うことはバグであり、結果として混乱を招く動作を引き起こしていました。ただし、timeuuid の操作を支援するために、次の新しいメソッドが追加されました:nowminTimeuuidmaxTimeuuiddateOf、および unixTimestampOf です。

  • 浮動数定数は、指数表記をサポートするようになりました。つまり、4.2E10 は有効な浮動小数点値になりました。

バージョン管理

CQL 言語のバージョン管理は、セマンティック バージョニングのガイドラインに準拠しています。バージョンは X.Y.Z の形式を取り、X、Y、および Z はそれぞれメジャー、マイナー、およびパッチレベルを表す整数値です。Cassandra のリリースバージョンと CQL 言語バージョン間に相関関係はありません。

バージョン 説明

メジャー

後方互換性のない変更が導入された場合は、メジャーバージョンを*必ず*上げる必要があります。これはめめ起こるべきではありません。

マイナー

後方互換性のある新しい機能が導入された場合、マイナーバージョンが増加されます。

パッチ

バグが修正された場合、パッチバージョンが増加されます。