ドキュメントメニュー

typesql#

typesql は SQL に注釈、パッケージ、型付き関数、正確な診断を追加します。中心的な保証は消去です。型専用の構文を除去しても、残った SQL の実行時の意味は変わりません。

typesql
with paid(customer_id: string!, revenue: decimal(18, 2)!) as (
  select
    customer satisfies string!,
    sum(amount) / 100.0 satisfies decimal(18, 2)!
  from titan.stripe.charges
  where status = 'succeeded' and customer is not null
  group by customer
)
select * from paid

段階的に導入できる設計#

注釈が 1 つもなくても有効です。検証器はレイクのカタログから可能な範囲で推論し、不明な名前、互換性のない型、不正な関数引数、安全でない null 許容性、パッケージの問題を、安定した TS#### コードで報告します。

契約が重要な箇所に注釈を追加します。satisfies は式をキャストせずに検証します。! は非 null の条件を記録します。型付き CTE ヘッダーは、文のほかの部分にテーブルの構造を公開します。

実行時との分離#

注釈がキャストやフィルターになることはありません。import type は完全に消去されます。診断が出たドキュメントを、検証を通すために別のクエリへ書き換えることはありません。

値を変換するなら、実行時の cast を使います。検証するなら、typesql の構文を使います。

型の根拠#

スキーマプロバイダーは、レイクの列、主キーの根拠、システム列、JSON の構造、ポリシーマスクの由来を提供します。内容を固定したパッケージは、型検証時にライブのソースを必要とせずに、名前付きの構造と関数シグネチャを追加します。

続いて型注釈型リファレンス診断一覧を参照してください。