

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Configurações SUPER
<a name="super-configurations"></a>

Você pode configurar seus dados SUPER para cenários específicos. As seções a seguir apresentam detalhes sobre como escolher e aplicar as configurações apropriadas de dados SUPER com base em seus requisitos de formato de dados.

**Topics**
+ [Modos lax e estrito para SUPER](#lax-strict-modes)
+ [Acessar campos JSON com nomes ou atributos de campo em maiúsculas ou mistas](#upper-mixed-case)
+ [Opções de análise para SUPER](#parsing-options-super)

## Modos lax e estrito para SUPER
<a name="lax-strict-modes"></a>

Quando consulta dados SUPER, a expressão de caminho pode não corresponder à estrutura de dados SUPER real. Se você tentar acessar um membro inexistente de um objeto ou elemento de uma matriz, o Amazon Redshift retornará um valor NULL se sua consulta for executada no modo lax padrão. Se você executar sua consulta no modo estrito, o Amazon Redshift retornará um erro. Os seguintes parâmetros de sessão podem ser definidos para ativar ou desativar o modo lax.

O exemplo a seguir usa parâmetros de sessão para habilitar o modo lax.

```
SET navigate_super_null_on_error=ON;  --default lax mode for navigation

SET cast_super_null_on_error=ON;  --default lax mode for casting

SET parse_super_null_on_error=OFF;  --default strict mode for ingestion
```

## Acessar campos JSON com nomes ou atributos de campo em maiúsculas ou mistas
<a name="upper-mixed-case"></a>

Quando os nomes de atributos JSON estão em letras maiúsculas ou mistas, você deve ser capaz de percorrer estruturas do tipo SUPER de forma a diferenciar maiúsculas e minúsculas. Para fazer isso, você pode configurar `enable_case_sensitive_identifier` como TRUE e envolver os nomes de atributos em letras maiúsculas e minúsculas com aspas duplas. 

O exemplo a seguir mostra como definir `enable_case_sensitive_identifier` para consultar dados.

```
SET enable_case_sensitive_identifier to TRUE;
 
-- Accessing JSON attribute names with uppercase and mixed-case names
SELECT json_table.data."ITEMS"."Name",
       json_table.data."price"
FROM
  (SELECT json_parse('{"ITEMS":{"Name":"TV"}, "price": 345}') AS data) AS json_table;

 Name | price
------+-------
 "TV" | 345
(1 row)
 
RESET enable_case_sensitive_identifier;
 
-- After resetting the above configuration, the following query accessing JSON attribute names with uppercase and mixed-case names should return null (if in lax mode).
SELECT json_table.data."ITEMS"."Name",
       json_table.data."price"
FROM
  (SELECT json_parse('{"ITEMS":{"Name":"TV"}, "price": 345}') AS data) AS json_table;

 name | price 
------+-------
      | 345
(1 row)
```

## Opções de análise para SUPER
<a name="parsing-options-super"></a>

Quando você usa a função JSON\_PARSE para analisar strings JSON em valores SUPER, determinadas restrições se aplicam. 
+ O mesmo nome de atributo não pode aparecer no mesmo objeto, mas pode aparecer em um objeto aninhado. A opção de configuração `json_parse_dedup_attributes` permite que JSON\_PARSE mantenha apenas a última ocorrência de atributos duplicados em vez de retornar um erro. 
+ Literais de string individuais no objeto SUPER têm um limite de tamanho de 16 milhões de bytes. A opção de configuração `json_parse_truncate_strings` permite que JSON\_PARSE() trunque automaticamente strings maiores que esse limite sem retornar um erro. Esse comportamento afeta somente valores de string e não nomes de atributo.

Para obter mais informações sobre como usar a função JSON\_PARSE, consulte [Função JSON\_PARSE](JSON_PARSE.md).

O exemplo a seguir mostra como configurar a opção de configuração `json_parse_dedup_attributes` para o comportamento padrão de retorno de erro para atributos duplicados.

```
SET json_parse_dedup_attributes=OFF;  --default behavior of returning error instead of de-duplicating attributes
```

O exemplo a seguir mostra como configurar a opção de configuração `json_parse_truncate_strings` para o comportamento padrão de retorno de erro para strings maiores que esse limite.

```
SET json_parse_truncate_strings=OFF;  --default behavior of returning error instead of truncating strings
```