Menu dokumentacji

Typy typesql#

typesql odzwierciedla fizyczne typy jeziora i dodaje typy złożone używane tylko w wyrażeniach. Typ opisuje wartość; nigdy jej nie zmienia.

Typy skalarne#

TypZnaczenie
booleantrue lub false
integer64-bitowa liczba całkowita ze znakiem
decimal(p, s)Dokładna liczba dziesiętna o precyzji do 38
float64-bitowa wartość zmiennoprzecinkowa
dateData kalendarzowa
datetimeZnacznik czasu bez przesunięcia, przechowywany z dokładnością do mikrosekundy
datetimetzChwila, przechowywana z dokładnością do mikrosekundy
stringTekst UTF-8
jsonJSON bez zadeklarowanej struktury
binaryWartość binarna przenoszona jako kanoniczny tekst base64

unknown oznacza, że moduł sprawdzający nie ma wystarczających dowodów. never reprezentuje ścieżkę, która nie może utworzyć wartości.

Możliwość wartości null#

Wartości jeziora mogą być null, chyba że katalog dostarczy aktualny dowód przeciwny. Końcowy znak ! wymaga wartości innej niż null:

typesql
select id satisfies string!
from titan.stripe.customers
where id is not null

Predykaty takie jak is not null zawężają wartości w prawidłowym zakresie przepływu. Rzutowanie nie dowodzi, że jego wynik jest różny od null.

Typy złożone#

Kolekcje używane w wyrażeniach mają postać list<T>, struct{field: T} i map<K, V>. Struktury tabel wskazują uporządkowane kolumny:

typesql
with customer_totals(customer_id: string!, revenue: decimal(18, 2)) as (
  select customer, sum(amount) / 100.0
  from titan.stripe.charges
  group by customer
)
select * from customer_totals

JSON ze strukturą#

json<{...}> opisuje pola dostępne wewnątrz nośnika JSON, zachowując jego reprezentację w środowisku uruchomieniowym:

typesql
select metadata satisfies json<{campaign: string, cohort: string}>
from titan.stripe.customers

Pakiety struktur konektorów mogą dostarczać te struktury pod nazwami, aby nie trzeba było powtarzać ich w każdym zapytaniu.

Typy maskowane#

masked<T> zapisuje proweniencję polityki kolumn. Nie można jej usunąć rzutowaniem, porównać jak zwykłej wartości ani scalić z niemaskowaną gałęzią. Niepowodzenia używają TS0410 dla rzutowań, TS0411 dla porównań i TS0412 dla niebezpiecznego przepływu. Zgodne projekcje i union all zachowują otoczkę.