Cassandra 文件

版本

您正在檢視預發行版本的文件。

變更

以下說明每個 CQL 版本的變更。

3.4.7

  • 加入向量相似度函式 (18640)

  • 移除已棄用的函式 dateOfunixTimestampOf,改用 toTimestamptoUnixTimestamp (18328)

  • 加入支援,將遮罩函式附加到表格欄位 (18068)

  • 加入 UNMASK 權限 (18069)

  • 加入 SELECT_MASKED 權限 (18070)

  • 加入支援,將 UDF 用作遮罩函式 (18071)

  • 採用 snake_case 函式名稱,棄用所有先前的 camelCase 或 alltogetherwithoutspaces 函式名稱 (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)

  • 加入 currentTimestampcurrentDatecurrentTimecurrentTimeUUID 函式 (13132)

3.4.4

  • 已移除 ALTER TABLE ALTER;建立後,不得變更欄位的類型 (12443)。

  • 已移除 ALTER TYPE ALTER;建立後,不得變更欄位的類型 (12443)。

3.4.3

  • 加入新的 duration 資料類型 <資料類型> (11873)。

  • 支援 GROUP BY (10707)。

  • 加入 DEFAULT UNSET 選項,用於 INSERT JSON 以忽略已省略的欄位 (11424)。

  • 允許在插入和更新時將 null 作為 TTL 的合法值。它將被視為等於插入 0 (12216)。

3.4.2

  • 如果表格具有非零的 default_time_to_live,則在 INSERTUPDATE 陳述式中明確指定 TTL 為 0,將導致新的寫入沒有任何過期時間(也就是說,明確的 TTL 為 0 會取消 default_time_to_live)。以前並非如此,即使已明確設定 TTL,default_time_to_live 仍會套用。

  • ALTER TABLE ADDDROP 現在允許新增/移除多個欄位。

  • SELECT 陳述式的全新 PER PARTITION LIMIT 選項(請參閱 CASSANDRA-7017)。

  • 使用者定義函式 <cql-functions> 現在可透過新的 UDFContext 介面實例化 UDTValueTupleValue 實例(請參閱 CASSANDRA-10818)。

  • 使用者定義類型 <udts> 現在可以儲存在非凍結形式,允許在 UPDATE 陳述式和 DELETE 陳述式中分別更新和刪除個別欄位。(CASSANDRA-7423)。

3.4.1

  • 新增 CAST 函式。

3.4.0

  • 支援 具象化檢視 <materialized-views>

  • DELETE 支援不平等式和任何主鍵欄位上的 IN 限制。

  • UPDATE 支援任何主鍵欄位上的 IN 限制。

3.3.1

  • 語法 TRUNCATE TABLE X 現在被接受為 TRUNCATE X 的別名。

3.3.0

  • 現在支援 使用者定義函式和聚合 <cql-functions>

  • 允許使用雙美元符號括住的字串字面值,作為單引號括住的字串的替代方案。

  • 引入角色以取代基於使用者的驗證和存取控制

  • 已新增新的 datetimetinyintsmallint 資料類型 <data-types>

  • 已新增 JSON 支援 <cql-json>

  • 新增新的時間轉換函式,並捨棄 dateOfunixTimestampOf

3.2.0

  • 支援 使用者定義類型 <udts>

  • CREATE INDEX 現在支援索引集合欄位,包括透過 keys() 函式索引映射集合的鍵

  • 可以使用新的 CONTAINSCONTAINS KEY 運算子查詢集合上的索引

  • 新增 Tuple 類型 <tuples> 來保存固定長度的已輸入類型位置欄位組。

  • DROP INDEX 現在支援選擇性地指定鍵空間。

3.1.7

  • SELECT 陳述式現在支援使用 IN 子句在單一分割區中選擇多個列,該子句針對分群欄位的組合。

  • IF NOT EXISTSIF EXISTS 語法現在分別由 CREATE USERDROP USER 陳述式支援。

3.1.6

  • 已新增 uuid() 方法。

  • 支援 DELETE …​ IF EXISTS 語法。

3.1.5

  • 現在可以在關係中分組叢集欄位,請參閱 WHERE <where-clause> 子句。

  • 已新增對 static columns <static-columns> 的支援。

3.1.4

  • CREATE INDEX 現在允許在建立自訂索引時指定選項。

3.1.3

  • 已將毫秒精度格式新增至 timestamp <timestamps> 剖析器。

3.1.2

  • 已將 NaNInfinity 新增為有效的浮點常數。它們現在是保留關鍵字。在不太可能的情況下,您將它們用作欄位識別碼(或鍵空間/資料表),現在您需要為它們加上雙引號。

3.1.1

  • SELECT 陳述式現在允許列出分組鍵(使用 DISTINCT 修改器)。請參閱 CASSANDRA-4536

  • 現在在 WHERE 子句中支援 c IN ? 語法。在這種情況下,繫結變數預期的值將是 c 類型的清單。

  • 現在可以使用命名繫結變數(使用 :name 代替 ?)。

3.1.0

  • 已新增 ALTER TABLE DROP 選項。

  • SELECT 陳述式現在支援在選取子句中使用別名。不支援在 WHERE 和 ORDER BY 子句中使用別名。

  • KEYSPACETABLEINDEXCREATE 陳述式現在支援 IF NOT EXISTS 條件。類似地,DROP 陳述式支援 IF EXISTS 條件。

  • INSERT 陳述式選擇性支援 IF NOT EXISTS 條件,而 UPDATE 支援 IF 條件。

3.0.5

  • SELECTUPDATEDELETE 陳述式現在允許空 IN 關係(請參閱 CASSANDRA-5626)。

3.0.4

  • 已更新自訂 secondary indexes <secondary-indexes> 的語法。

  • 現在永遠不支援分組鍵上的非等於條件,即使對於排序分區器也是如此,因為這不正確(順序不是分組鍵類型的順序)。相反,token 方法應始終用於分組鍵上的範圍查詢(請參閱 WHERE clauses <where-clause>)。

3.0.3

  • 已新增對自訂 secondary indexes <secondary-indexes> 的支援。

3.0.2

  • 已修正 constants <constants> 的類型驗證。例如,實作過去允許 '2' 作為 int 欄位的有效值(將其解釋為等同於 2),或 42 作為有效的 blob 值(這種情況下,42 被解釋為 blob 的十六進位表示)。現在不再如此,常數的類型驗證現在更加嚴格。有關哪種類型允許哪個常數的詳細資訊,請參閱 data types <data-types> 區段。

  • 前一點修正的類型驗證已導致引入 blob 常數,以允許輸入 blob。請注意,雖然此版本仍支援將 blob 作為字串常數輸入(以允許更順利地轉換為 blob 常數),但現在已不建議使用,且將在未來版本中移除。如果您將字串用作 blob,則應盡快更新您的用戶端程式碼以切換 blob 常數。

  • 還引入了許多將原生類型轉換為 blob 的函式。此外,現在也允許在選取子句中使用 token 函式。有關詳細資訊,請參閱 section on functions <cql-functions>

3.0.1

  • 日期字串(和時間戳記)不再被接受為有效的 timeuuid 值。這樣做是一個錯誤,因為日期字串不是有效的 timeuuid,因此導致 令人困惑的行為。但是,已新增下列新方法來協助處理 timeuuidnowminTimeuuidmaxTimeuuiddateOfunixTimestampOf

  • 浮點常數現在支援指數表示法。換句話說,4.2E10 現在是一個有效的浮點值。

版本控制

CQL 語言的版本控制遵循 語意化版本控制 指南。版本採用 X.Y.Z 形式,其中 X、Y 和 Z 是分別代表主要、次要和修補程式的整數值。Cassandra 發行版本和 CQL 語言版本之間沒有關聯性。

版本 說明

主要

當引入向後不相容的變更時,必須升級主要版本。這應該很少發生。

次要

當引入新的但向後相容的功能時,會增加次要版本。

修補程式

當錯誤修正時,修補程式版本會遞增。