Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Limitazioni
Quando si utilizza il tipo di dati SUPER, è importante tenere presenti le seguenti limitazioni:
Non è possibile definire colonne SUPER come chiave di distribuzione o di ordinamento.
Un singolo oggetto SUPER può contenere fino a 16 MB di dati.
Un valore individuale all'interno di un oggetto SUPER è limitato alla lunghezza massima del tipo Amazon Redshift corrispondente. Ad esempio, un valore di stringa singola caricato su SUPER è limitato alla lunghezza massima di VARCHAR di 65535 byte.
Non è possibile eseguire operazioni di aggiornamento parziale o trasformazione sulle colonne SUPER.
Non è possibile utilizzare il tipo di dati SUPER e il relativo alias nei join di destra o nei join esterni completi.
Il tipo di dati SUPER non supporta XML come formato di serializzazione in ingresso o in uscita.
Nella clausola FROM di una query secondaria (correlata o meno) che fa riferimento a una variabile di tabella per l'annullamento della nidificazione, la query può fare riferimento solo alla tabella padre e non ad altre tabelle.
Limitazioni di casting
È possibile eseguire il casting di valori SUPER da e verso altri tipi di dati con alcune eccezioni.
Amazon Redshift non fa alcuna differenza tra numeri interi e decimali di scala 0.
Se la scala non è zero, il tipo di dati SUPER ha lo stesso comportamento degli altri tipi di dati Amazon Redshift, ad eccezione del fatto che Amazon Redshift converte gli errori correlati a SUPER in null, come mostrato nell'esempio seguente.
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)
Amazon Redshift non esegue il casting dei tipi di data e ora sul tipo di dati SUPER. Amazon Redshift può eseguire il casting dei tipi di dati di data e ora solo dal tipo di dati SUPER, come mostrato nell'esempio seguente.
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
Il casting da valori non scalari (oggetto e array) a stringa restituisce NULL. Per serializzare correttamente questi valori non scalari, non eseguirne il casting. Utilizzare invece
json_serialize
per eseguire il casting di valori non scalari. La funzionejson_serialize
restituisce un varchar. In genere, non è necessario eseguire il casting di valori non scalari su varchar poiché Amazon Redshift serializza implicitamente come mostrato nel primo esempio seguente.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)
Per i database senza distinzione tra maiuscole e minuscole, Amazon Redshift non supporta il tipo di dati SUPER. Per le colonne senza distinzione tra maiuscole e minuscole, Amazon Redshift non esegue il casting al tipo SUPER. Pertanto, Amazon Redshift non supporta le colonne SUPER che interagiscono con colonne senza distinzione tra maiuscole e minuscole che attivano il casting.
Amazon Redshift non supporta funzioni volatili, come RANDOM ( ) o TIMEOFDAY ( ), nelle query secondarie che annullano la nidificazione di una tabella esterna o un lato sinistro (LHS) delle funzioni IN con tali query secondarie.