Создание материализованных представлений в postgres с помощью calcite

#postgresql #apache-calcite

#postgresql #apache-calcite

Вопрос:

Я хочу настроить postgres в качестве источника данных для calcite и использовать возможности calcite для перезаписи запросов с использованием материализованных представлений. Однако, когда я пытаюсь создать материализованное представление через calcite, я получаю сообщение postgres об ошибке insert into relation, которая не существует.

При дальнейшей проверке кажется, что calcite никогда не создает материализованное представление, а просто преобразует запрос в команду «вставить в» и отправляет его в postgres (что не удается, потому что я изначально хотел создать это представление).

Итак, мой вопрос: как я должен создать материализованное представление через calcite в postgres?

(Я также задавал этот вопрос в списке рассылки, однако мне показалось более уместным опубликовать его здесь)

Ответ №1:

Возможно, решение заключается в определении решеток при определении схемы и позволяет Calcite создавать материализованные представления для вас.

Когда вы определяете материализованное представление в своем определении схемы, Calcite просто предполагает, что вы уже создали его в Postgres и что он может свободно его использовать. Вот почему он делает insert into заявление.