# quote\_args

Полезно знать

Доступно начиная с dbt v1.12 или в [канале релизов v1 Latest](https://docs.getdbt.tech/docs/dbt-versions/dbt-release-tracks.md).

functions/\<filename>.yml

```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

```yaml
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

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

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

* [Пользовательские функции](https://docs.getdbt.tech/docs/build/udfs.md)
* [Свойства функций](https://docs.getdbt.tech/reference/function-properties.md)
* [Настройки функций](https://docs.getdbt.tech/reference/function-configs.md)
* [volatility](https://docs.getdbt.tech/reference/resource-configs/volatility.md)
* [type](https://docs.getdbt.tech/reference/resource-configs/type.md)
* [arguments](https://docs.getdbt.tech/reference/resource-properties/function-arguments.md)
* [returns](https://docs.getdbt.tech/reference/resource-properties/returns.md)
