Menu dokumentacji

typesql#

typesql dodaje do SQL adnotacje, pakiety, funkcje z typami i precyzyjną diagnostykę. Jego główną gwarancją jest wymazywanie: po usunięciu składni dotyczącej wyłącznie typów pozostały SQL ma takie samo znaczenie w środowisku uruchomieniowym.

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

Stopniowość wbudowana w projekt#

Brak adnotacji jest prawidłowy. Moduł sprawdzający wnioskuje to, co może, z katalogu jeziora i zgłasza nieznane nazwy, niezgodne typy, nieprawidłowe argumenty funkcji, niebezpieczną możliwość wartości null oraz błędy pakietów za pomocą stabilnych kodów TS####.

Dodaj adnotację tam, gdzie kontrakt ma znaczenie. satisfies sprawdza wyrażenie bez rzutowania. ! zapisuje zobowiązanie braku wartości null. Nagłówki CTE z typami publikują strukturę tabeli dla dalszej części instrukcji.

Oddzielenie środowiska uruchomieniowego#

Adnotacje nigdy nie stają się rzutowaniami ani filtrami. import type jest całkowicie wymazywane. Dokument z diagnostyką nie jest przepisywany na inne zapytanie tylko po to, aby przeszedł kontrolę.

Użyj cast w środowisku uruchomieniowym, gdy zamierzasz wykonać konwersję. Użyj składni typesql, gdy zamierzasz coś zweryfikować.

Skąd pochodzą typy#

Dostawca schematu przekazuje kolumny jeziora, dowody kluczy podstawowych, kolumny systemowe, struktury JSON i proweniencję masek polityk. Pakiety przypięte do treści dodają nazwane struktury i sygnatury funkcji bez konieczności korzystania z aktywnego źródła podczas kontroli typów.

Przejdź do adnotacji typów, dokumentacji typów albo rejestru diagnostyki.