大量資料的型別化查詢值
Typed projection 是查詢實作細節,不是新儲存格式或權限。Record JSON 仍是權威來源;查詢可用目前已驗證的實體 projection 取代儲存 scalar operand,但必須保留相同租戶/資料表/列/欄位檢查與完整 predicate。
型別與運算子邊界
支援的 projection 型別為儲存 integer、float、decimal、string、date、datetime,以 internal col_<hex> ID 指定。計算欄位、link、JSON、附件、principal 型別及其他 scalar 不在集合內。公開查詢語法沒有改變;各欄位可用哪些運算子,仍由查詢契約 決定。
| 儲存型別 | 保留的值語意 |
|---|---|
integer、float | JSON 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 已部署或產品已驗收。