Функция generate_series не работает в Redshift
, однако она генерирует _confusion!Это связано с тем, что он работает нормально, пока вы не попытаетесь записать в таблицу.
Технически причина этого в том, что он работает ТОЛЬКО на ведущем узле.и сам узел-лидер не имеет прямого доступа к таблицам.
Если вы попробуете
SELECT CURRENT_DATE::TIMESTAMP - (i * interval '1 day') as date_datetime
FROM generate_series(1,31) i
ORDER BY 1;
Это выдаст хороший вывод таблицы, поскольку он работает на узле-лидере.
ОДНАКО, если вы запускаете
create table test as
SELECT CURRENT_DATE::TIMESTAMP - (i * interval '1 day') as date_datetime
FROM generate_series(1,31) i
ORDER BY 1;
Сбой при
[2019-03-11 07:38:00] [0A000] ОШИБКА: Указанные типы или функции(по одному на каждое сообщение INFO) не поддерживается в таблицах Redshift.[2019-03-11 07:38:00] [00000] Функция «generate_series (integer, integer)» не поддерживается.
Это потому, что мы сейчас пытаемся создать таблицу, поэтомуsql должен быть запущен на рабочих узлах (не на ведущем узле), поэтому он не работает.