Рассмотрим этот запрос:
SELECT * FROM dataset.view1 JOIN dataset.view2 USING (key)
Где view1
:
SELECT 1 AS key, 'foo' AS y;
view2
:
SELECT 1 AS key, 'bar' AS z;
В этом случае выможно рассматривать разрешенный запрос как объект / протокольное сообщение JSON, содержащее:
{
"query": "SELECT * FROM dataset.view1 JOIN dataset.view2 USING (key)"
"views":
[
{
"name": "view1",
"sql": "SELECT 1 AS key, 'foo' AS y;"
},
{
"name": "view2",
"sql": "SELECT 1 AS key, 'bar' AS z;"
}
]
}
Таким образом, разрешенная длина запроса представляет собой сумму длин запроса плюс представлений.Предел разрешенной длины запроса достаточно высок, поэтому он обычно не относится к стандартным запросам SQL.Однако для устаревших запросов SQL такие функции, как TABLE_DATE_RANGE
, похожи на макросы, которые расширяют запрос до объединения всех сопоставленных таблиц, поэтому проще получить большой разрешенный размер запроса.