quote_args
quote_args (인자 이름 따옴표 처리)
quote_args 설정은 Snowflake에서 JavaScript 사용자 정의 함수(UDF)를 만들 때 CREATE FUNCTION 문에서 인자 이름을 따옴표로 감쌀지 여부를 제어해요. 기본값은 true예요. dbt v1.12 또는 dbt "v1 Latest" 릴리스 트랙에서 사용할 수 있어요.
출처: dbt 공식 문서
본문
설정 방법
functions/
functions:
- name: <function name>
config:
snowflake:
quote_args: true | false # optional, default: true
정의
Snowflake에서 JavaScript 사용자 정의 함수(UDF)를 만들 때, quote_args는 CREATE FUNCTION 문에서 인자 이름을 따옴표로 감쌀지 여부를 제어해요. 기본값은 true예요.
quote_args가 true면 Snowflake가 인자 이름을 따옴표로 감싸 정확한 대소문자를 보존해요. 함수 본문 안에서는 YAML에 정의된 것과 같은 대소문자로 인자를 참조해요(예: a_string).
quote_args가 false면 인자 이름이 따옴표로 감싸지지 않아요. Snowflake가 이름을 자동으로 대문자로 바꾸므로, 함수 본문 안에서는 대문자로 참조해야 해요(예: A_STRING).
이 설정은 Snowflake의 JavaScript UDF에만 적용돼요. 다른 어댑터나 언어에는 효과가 없어요.
예시
이 예시에서 quote_args는 false로 설정되어 생성된 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;
$$;