Поддержка INSERT и CREATE TABLE AS#
Чтобы поддерживать INSERT, коннектор должен реализовать:
beginInsert()andfinishInsert()from theConnectorMetadatainterface;a
ConnectorPageSinkProviderthat receives a table handle and returns aConnectorPageSink.
При выполнении оператора INSERT движок вызывает в коннекторе метод
beginInsert(), который получает table handle и список столбцов.
Он должен вернуть ConnectorInsertTableHandle, который может нести любую
информацию, специфичную для коннектора, и передается в page sink provider.
PageSinkProvider создает page sink, который принимает объекты Page.
Когда все страницы для конкретного split обработаны, Trino вызывает
ConnectorPageSink.finish(), который возвращает Collection<Slice>
фрагментов, представляющих специфичную для коннектора информацию
об обработанных строках.
Когда все страницы для всех split обработаны, Trino вызывает
ConnectorMetadata.finishInsert(), передавая коллекцию, содержащую все
фрагменты из всех split. Коннектор выполняет необходимые действия для
завершения операции, например фиксирует транзакцию.
Чтобы поддерживать CREATE TABLE AS, ConnectorPageSinkProvider также
должен возвращать page sink при получении ConnectorOutputTableHandle.
Этот handle возвращается из ConnectorMetadata.beginCreateTable().