문서 메뉴

매크로와 함수#

타입 없는 SQL 도우미에는 create macro를 사용합니다. 호출자에게 검증된 매개변수와 반환 타입이 필요하면 create function을 사용합니다.

typesql
create function cents_to_dollars(cents: integer!) returns decimal(18, 2) as
  cast(cents as decimal(18, 2)) / 100.0;

select cents_to_dollars(amount)
from titan.stripe.charges

SQL 매크로#

create macro name(parameters) as expression은 쿼리 방언을 따릅니다. 매개변수에는 기본값을 지정할 수 있습니다. 테이블 매크로는 as table 뒤에 쿼리를 씁니다. 검사기는 이를 타입 없는 함수로 취급합니다.

타입이 지정된 함수#

타입이 지정된 함수는 각 매개변수와 스칼라 또는 테이블 반환값 1개를 선언합니다. 본문은 절차적 SQL 문이 아니라 표현식이나 쿼리입니다. 이름 확인은 정적이며 재귀는 TS0406을 반환합니다.

검사기는 본문이 선언된 반환 타입에 맞는지 검증합니다. 컴파일된 런타임 SQL 문에는 지원되는 SQL만 남고 어노테이션 구문은 없습니다.

이름 확인 순서#

로컬 선언과 가져온 패키지 내보내기는 하나의 닫힌 환경을 구성합니다. 중복 내보내기는 순서에 따라 덮어쓰는 대신 오류가 됩니다. 함수 호출은 인수 개수(TS0404)와 인수 타입(TS0405)를 검사합니다.

함수를 여러 파일에서 공유하려면 패키지를 사용하세요. 의미가 한 모델에 속하며 그 모델과 함께 검토해야 한다면 로컬 선언으로 유지하세요.