

 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/). 

# Limitações
<a name="limitations-super"></a>

Com o Amazon Redshift, é possível trabalhar com o tipo de dados SUPER para armazenar e consultar dados semiestruturados, como JSON, Avro ou Ion. As limitações do tipo de dados SUPER estão relacionadas aos limites e restrições existentes quando se usa esse tipo de dados no Amazon Redshift. As seções a seguir apresentam detalhes sobre as limitações específicas do tipo de dados SUPER, como tamanho máximo, níveis de aninhamento e tipos de dados compatíveis no conjunto de dados semiestruturados.
+ Você não pode definir colunas SUPER como uma distribuição ou chave de classificação.
+ Um objeto SUPER individual pode armazenar até 16 MB de dados.
+ A profundidade máxima de aninhamento para matrizes e estruturas do tipo de dados SUPER é 1.000.
+ Qualquer string literal armazenada em um único objeto SUPER é limitada a 16 milhões de bytes.
+ Caso contrário, um valor individual dentro de um objeto SUPER é limitado ao comprimento máximo do tipo do Amazon Redshift correspondente.
+ Você não pode executar operações de atualização parcial ou transformação em colunas SUPER.
+ Você não pode usar o tipo de dados SUPER e seu alias em junções à direita ou junções externas completas.
+ O tipo de dados SUPER não suporta XML como formato de serialização de entrada ou saída. 
+ Na cláusula FROM de uma subconsulta (que está correlacionada ou não) que faz referência a uma variável de tabela para desaninhamento, a consulta só pode se referir à sua tabela pai e não a outras tabelas.
+  Não é possível realizar o desaninhamento nem a remoção dinâmica de objetos em colunas SUPER produzidas por uma expressão de tabela comum (CTE) recursiva (`WITH RECURSIVE`). Para ter mais informações sobre CTEs recursivas, consulte [Expressões de tabela comuns recursivas](r_WITH_clause.md#r_WITH_clause-recursive-cte). 
+ Limitações de conversão

  Os valores SUPER podem ser convertidos de e para outros tipos de dados, com as seguintes exceções:
  + O Amazon Redshift não diferencia inteiros e decimais da escala 0.
  + Se a escala não for zero, o tipo de dados SUPER terá o mesmo comportamento de outros tipos de dados do Amazon Redshift, exceto que o Amazon Redshift converte erros relacionados ao Super-em nulo, conforme mostrado no exemplo a seguir.

    ```
    SELECT 5::bool;
     bool
    -------
     True
    (1 row)
    
    SELECT 5::decimal::bool;
    ERROR:  cannot cast type numeric to boolean
    
    SELECT 5::super::bool;
     bool
    -------
     True
    (1 row)
    
    SELECT 5.0::bool;
    ERROR:  cannot cast type numeric to boolean
    
    SELECT 5.0::super::bool;
     bool
    -------
    (1 row)
    ```
  + O Amazon Redshift não converte os tipos de data e hora para o tipo de dados SUPER. O Amazon Redshift só pode converter os tipos de dados de data e hora do tipo de dados SUPER, conforme mostrado no exemplo a seguir.

    ```
    SELECT o.o_orderdate FROM customer_orders_lineitem c,c.c_orders o;
      order_date
    ------------------
     "2001-09-08"
    (1 row)
    
    
    SELECT JSON_TYPEOF(o.o_orderdate) FROM customer_orders_lineitem c,c.c_orders o;
     json_typeof
    -----------------
     string
    (1 row)
    
    
    SELECT o.o_orderdate::date FROM customer_orders_lineitem c,c.c_orders o;
     order_date
    ----------------
     2001-09-08
    (1 row)
    
    
    --date/time cannot be cast to super 
    SELECT '2019-09-09'::date::super;
    ERROR:  cannot cast type date to super
    ```
  + Converter de valores não escalares (objeto e array) para string retorna NULL. Para serializar adequadamente esses valores não escalares, não os converta. Em seu lugar, use `json_serialize` para converter valores não escalares. A função `json_serialize` retorna um varchar. Normalmente, você não precisa converter valores não escalares para o varchar, pois o Amazon Redshift serializa implicitamente, conforme mostrado no primeiro exemplo a seguir. 

    ```
    SELECT r_nations FROM region_nations WHERE r_regionkey=300;
       r_nations
    ----------------
     [1,"abc",null]
    (1 row)
    
    SELECT r_nations::varchar FROM region_nations WHERE r_regionkey=300;
     r_nations
    -------------
    (1 row)
    
    SELECT JSON_SERIALIZE(r_nations) FROM region_nations WHERE r_regionkey=300;
     json_serialize
    -----------------
     [1,"abc",null]
    (1 row)
    ```
+ O Amazon Redshift não oferece suporte a funções voláteis, como RANDOF () ou TIMEOFDAY (), em subconsultas que unnest uma tabela externa ou um lado esquerdo (LHS) de funções IN com tais subconsultas.