quote_args

quote_args (인자 이름 따옴표 처리)

quote_args 설정은 Snowflake에서 JavaScript 사용자 정의 함수(UDF)를 만들 때 CREATE FUNCTION 문에서 인자 이름을 따옴표로 감쌀지 여부를 제어해요. 기본값은 true예요. dbt v1.12 또는 dbt "v1 Latest" 릴리스 트랙에서 사용할 수 있어요.

출처: dbt 공식 문서

본문

설정 방법

functions/.yml

functions:
  - name: <function name>
    config:
      snowflake:
        quote_args: true | false  # optional, default: true

정의

Snowflake에서 JavaScript 사용자 정의 함수(UDF)를 만들 때, quote_argsCREATE FUNCTION 문에서 인자 이름을 따옴표로 감쌀지 여부를 제어해요. 기본값은 true예요.

quote_argstrue면 Snowflake가 인자 이름을 따옴표로 감싸 정확한 대소문자를 보존해요. 함수 본문 안에서는 YAML에 정의된 것과 같은 대소문자로 인자를 참조해요(예: a_string).

quote_argsfalse면 인자 이름이 따옴표로 감싸지지 않아요. Snowflake가 이름을 자동으로 대문자로 바꾸므로, 함수 본문 안에서는 대문자로 참조해야 해요(예: A_STRING).

이 설정은 Snowflake의 JavaScript UDF에만 적용돼요. 다른 어댑터나 언어에는 효과가 없어요.

예시

이 예시에서 quote_argsfalse로 설정되어 생성된 CREATE FUNCTION 문에서 인자 이름이 따옴표로 감싸지지 않아요.

functions/is_positive_int.yml

functions:
  - name: is_positive_int
    description: Returns 1 if a string represents a positive integer, else 0
    config:
      snowflake:
        quote_args: false
    arguments:
      - name: a_string
        data_type: string
    returns:
      data_type: integer

functions/is_positive_int.js

return /^[0-9]+$/.test(A_STRING) ? 1 : 0;

quote_args: false일 때 dbt가 생성하는 SQL:

CREATE OR REPLACE FUNCTION udf_db.udf_schema.is_positive_int(a_string STRING)
RETURNS INTEGER
LANGUAGE JAVASCRIPT
AS $$
return /^[0-9]+$/.test(A_STRING) ? 1 : 0;
$$;

기본값인 quote_args: true일 때 dbt가 생성하는 SQL:

CREATE OR REPLACE FUNCTION udf_db.udf_schema.is_positive_int("a_string" STRING)
RETURNS INTEGER
LANGUAGE JAVASCRIPT
AS $$
return /^[0-9]+$/.test(a_string) ? 1 : 0;
$$;

더 알아보기 (Learn more)