Do Redshift tables with SUPER data type support joins with recursive CTEs?

0

This sql in Redshift

WITH RECURSIVE

item_array AS (
    SELECT JSON_PARSE('[7, 8, 9]') AS items
),

idx_array(idx) AS (
SELECT 1 AS idx
UNION ALL
SELECT idx + 1 AS idx
FROM idx_array
WHERE idx < 2
)

SELECT
    items[0]
FROM item_array
CROSS JOIN idx_array

produces the error

[XX000] ERROR: Query unsupported due to an internal error. Detail: Unsupported query. Where: RTE kind: 11.

But if CROSS JOIN idx_array line removed, it works.

Can we not join tables with SUPER types in Recursive CTEs?

vida
preguntada hace 2 años1385 visualizaciones
1 Respuesta
0

Hi, The problem seems to be in the select statement and not cross join. If I use the below statement instead, cross join works as expected.

WITH RECURSIVE

item_array AS ( SELECT JSON_PARSE('[7, 8, 9]') AS items ),

idx_array(idx) AS ( SELECT 1 AS idx UNION ALL SELECT idx + 1 AS idx FROM idx_array WHERE idx < 2 )

SELECT * FROM item_array CROSS JOIN idx_array;

It gives me

items | idx

---------+-----

[7,8,9] | 1

[7,8,9] | 2

(2 rows)

AWS
INGENIERO DE SOPORTE
respondido hace 2 años
  • Firstly, thank you for looking into this! It works with SELECT * or SELECT items. But when you index items as in SELECT items[0], it fails. So, does that mean items is no longer SUPER?; which goes back to the original question whether SUPER types are not supported with recursive CTEs. Thank you!

No has iniciado sesión. Iniciar sesión para publicar una respuesta.

Una buena respuesta responde claramente a la pregunta, proporciona comentarios constructivos y fomenta el crecimiento profesional en la persona que hace la pregunta.

Pautas para responder preguntas