Почему params нельзя использовать в выражении LIMIT в UDF? - PullRequest
0 голосов
/ 27 июня 2019

Почему следующий код не работает?

CREATE TEMP FUNCTION udf(max INT64) AS (
  ARRAY(SELECT * FROM UNNEST(["foo","bar"]) LIMIT max)
);
SELECT udf(2)

1 Ответ

1 голос
/ 27 июня 2019

LIMIT требует использования буквального целого числа

. Чтобы решить эту проблему для вышеприведенного запроса, вы можете использовать следующий обходной путь

#standardSQL
CREATE TEMP FUNCTION udf(max INT64) AS (
  ARRAY(SELECT item FROM UNNEST(["foo","bar","bar2","bar3"]) item WITH OFFSET WHERE OFFSET < max)
);
SELECT udf(2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...