Skip to Content
核心概念型別化查詢值

大量資料的型別化查詢值

Typed projection 是查詢實作細節,不是新儲存格式或權限。Record JSON 仍是權威來源;查詢可用目前已驗證的實體 projection 取代儲存 scalar operand,但必須保留相同租戶/資料表/列/欄位檢查與完整 predicate。

型別與運算子邊界

支援的 projection 型別為儲存 integer、float、decimal、string、date、datetime,以 internal col_<hex> ID 指定。計算欄位、link、JSON、附件、principal 型別及其他 scalar 不在集合內。公開查詢語法沒有改變;各欄位可用哪些運算子,仍由查詢契約 決定。

儲存型別保留的值語意
integer、floatJSON number;相容既有 predicate 精度 DECIMAL(32,8)
decimal精確 JSON decimal 字串;DECIMAL(65,18) term,不是二進位浮點數
string完整字串;只有實體 prefix 不足以判定,仍須完整 predicate
date、datetime標準非空字串,保留既有順序比較契約

JSON null 仍代表不存在,字面字串 "null" 不等於 JSON null;空白與型別保護仍是 scalar expression 一部分。數值 aggregate/group term 共用正式 typed-cell expression,文字分組語意不變。Search/export 與 aggregate filter 編譯可使用 typed predicate,但不移除 ACL 或既有計算欄位限制。

重新驗證與 fallback

每次編譯都在查詢交易內驗證目前 projection generation 與 expression;移除或重設欄位型別後不沿用持久快取 plan。Projection 缺少、過期、衝突或 probe 無法使用時,退回 JSON expression。不支援的資料庫 dialect 與 autocommit 連線也使用 JSON fallback。

這些基礎設施條件不是租戶查詢拒絕;不要告訴呼叫者必須先建立索引才能執行合法的一般查詢。此變更不代表新的延遲 SLA、benchmark 結果或不限資料表大小。

仍保留型別化輸入拒絕

Decimal operand 要用一般 decimal 字串,包含 in 每個成員與 between 兩個界限;數值 literal、指數格式與不合法 decimal 都不能替代。形狀驗證與型別驗證不同:request-model 形狀失敗可能回 422,typed query 的值/運算子拒絕回 400。精確計算 decimal 可能回 ct.numeric_invalid 或 ct.numeric_overflow,不默默四捨五入。Projection 可用性不會抹去這些錯誤、增加運算子,或改變已記載的 legacy filter-map/row-policy 差異。

範例與各介面精確拒絕結構請見資料列參考、資料列查詢 與 decimal 欄位。此來源 build 不宣告獨立 typed-query capability ID;schema 存在不等於 staging 已部署或產品已驗收。

Last updated on