Menu dokumentacji

Dlaczego typesql jest stopniowy#

SQL zawiera lata działających zapytań. typesql dodaje warstwę dowodową, nie zmieniając tych zapytań w inny język uruchomieniowy. Dokument bez adnotacji pozostaje prawidłowy; każda adnotacja wzmacnia lokalne zobowiązanie.

Prawa wymazywania#

Podstawowa składnia typów służy wyłącznie do sprawdzania. expression satisfies T jest wymazywane do expression. Nagłówek CTE z typami zachowuje nazwy kolumn, a traci części typów. Cała instrukcja import type zostaje wymazana.

Poza zakresami adnotacji wymazywanie zachowuje oryginalne tokeny wykonywane w środowisku uruchomieniowym. Nie formatuje ani nie kompiluje ponownie instrukcji. Jeśli adnotacja mogłaby zmienić wartość, wiersz lub efekt uboczny, nie należy do podstawowej składni typesql.

Typy pochodzą z dowodów#

Moduł sprawdzający otrzymuje dostawcę schematu, zamiast otwierać bazę danych. Dostawcą może być bieżąca migawka katalogu, fixture zapisana w repozytorium albo środowisko pakietów przypięte do treści. To samo zapytanie można więc sprawdzić w edytorze, CI lub narzędziu offline.

Nieznany dowód pozostaje unknown. Znana pisownia kolumny nie uzupełnia brakującego dowodu typu fizycznego. Stwierdzenia o kluczu podstawowym i braku wartości null wymagają aktualnego dowodu z katalogu.

Język pozostaje ograniczony#

SQL, artefakty pakietów, środowiska widoków logicznych, grafy typów, diagnostyka i dokumenty wyjściowe mają limity przyjęcia. Są one egzekwowane przed kosztowną materializacją. Wrogi lub uszkodzony dostawca nie może wymusić nieograniczonej rekursji, alokacji ani utrzymywania pamięci podręcznej.

To część semantyki: przekroczenie limitu powoduje stabilną odmowę, na przykład TS0608 lub TS0802, a nigdy pozornie prawidłowy częściowy wynik typowania.

Diagnostyka jest interfejsem#

Jednym z głównych odbiorców błędów zapytań jest agent naprawiający własny SQL. Każdy komunikat diagnostyczny zawiera więc lokalizację, przyczynę, sposób naprawy, stabilny kod i postać maszynową. Sam „błąd składni” nie wystarcza człowiekowi ani agentowi do dojścia do rozwiązania.

Tekst komunikatu może się poprawiać bez łamania integracji, ponieważ interfejsem są kod i struktura. Poprawki mechaniczne zawierają dokładne zakresy i zamienniki; sugestie, które mogłyby zmienić znaczenie, pozostają tekstem opisowym.

Pełne funkcje zachowują granicę#

Funkcje z typami są kompilowane dopiero po przejściu kontroli kontraktów. Pakiety są przypięte do treści. Widoki logiczne rozwijają się z dokładną proweniencją przed sprawdzaniem. Maski polityk pozostają masked<T> aż do autoryzowanej granicy polityki środowiska uruchomieniowego.

Każda funkcja dodaje dowody lub strukturę wielokrotnego użytku, zachowując pierwotną obietnicę: typy pomagają Supernova wcześniej odrzucić błędne zapytanie, lecz adnotacje nigdy nie powodują wykonania innego zapytania.