Задается после источника данных во FROM
и используется для указания дополнительных подсказок использования таблиц. Подсказки нельзя задать для подзапросов и именованных выражений.
Поддерживаются следующие значения:
INLINE
— указание на то, что содержимое таблицы небольшое и нужно использовать его представление в памяти для обработки запроса. Реальный объем таблицы при этом не контролируется, и если он большой, то запрос может упасть по превышению памяти.UNORDERED
— подавляет использование исходной сортировки таблицы.SCHEMA
type — указание на то, что следует использовать указанную схему таблицы целиком, игнорируя схему в метаданных.COLUMNS
type — указание на то, что следует использовать указанные типы для колонок, чьи имена совпадают с именами колонок таблицы в метаданных, а также какие колонки дополнительно присутствуют в таблице.При задании подсказок SCHEMA
и COLUMNS
в качестве значения типа type должен быть задан тип структуры.
Если задана подсказка SCHEMA
, то при использовании табличных функций (например, EACH) допускается пустой список таблиц, который обрабатывается как пустая таблица с колонками, описанными в SCHEMA
.
SELECT key FROM my_table WITH INLINE;
SELECT key, value FROM my_table WITH SCHEMA Struct<key:String, value:Int32>;
SELECT key, value FROM my_table WITH COLUMNS Struct<value:Int32?>;
SELECT key, value FROM EACH($my_tables) WITH SCHEMA Struct<key:String, value:List<Int32>>;