Перейти к основному содержимому

quote_args

💡Полезно знать
Доступно начиная с dbt v1.12 или в канале релизов v1 Latest.
functions/<filename>.yml
functions:
- name: <function name>
config:
snowflake:
quote_args: true | false # необязательно, по умолчанию: true

Определение​

При создании пользовательских функций (UDF) на JavaScript в Snowflake параметр quote_args определяет, заключаются ли имена аргументов в кавычки в инструкции CREATE FUNCTION. Значение по умолчанию — true.

Если quote_args имеет значение true, Snowflake заключает имена аргументов в кавычки, сохраняя их регистр в точности. В теле функции обращайтесь к аргументам, используя тот же регистр, что и в YAML (например, a_string).

Если quote_args имеет значение false, имена аргументов не заключаются в кавычки. Snowflake автоматически переводит их в верхний регистр, поэтому в теле функции необходимо обращаться к ним в верхнем регистре (например, A_STRING).

Эта настройка применяется только к UDF на JavaScript в Snowflake. Она не влияет на другие адаптеры или языки.

Пример​

В этом примере для quote_args задано значение false, поэтому имена аргументов не заключаются в кавычки в сгенерированной инструкции CREATE FUNCTION:

functions/is_positive_int.yml
functions:
- name: is_positive_int
description: Возвращает 1, если строка представляет положительное целое число, иначе 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 генерирует:

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 генерирует:

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;
$$;

Связанная документация​

Нашли ошибку?

0
Loading