Создание таблиц с динамическими столбцами в apache calcite - PullRequest
0 голосов
/ 22 апреля 2019

В базе данных графа есть две таблицы.Пользователь {id, name} Group {id, name}

Пользователь подключен к группе через границу.Нет, я хочу запросить это через apache calcite с предложением where как select * from User, где User.Group.id = "Foo"

Так как apache calcite принимает схему с предопределенной таблицей с предопределенными столбцами, вышеуказанный запрос не проходит проверкушаг.Один из способов добиться этого - определить пользователя с четырьмя столбцами как {id, name, Group.id, Group.name}.Теперь проблема в моем случае. Таблица может быть подключена к нескольким другим таблицам, и глубина может доходить до 6 глубин.Создание таблицы со всеми столбцами их дочерних классов приводит к таблице с большим количеством динамических столбцов.

Есть ли способ определить столбцы таблицы так, как они отображаются в запросе.

1 Ответ

0 голосов
/ 11 мая 2019

Посмотрите на решенную проблему https://issues.apache.org/jira/browse/CALCITE-1150.

Он представляет DynamicRecordType для Apache Calcite. Здесь предлагается спецификация https://docs.google.com/document/d/1vCWlqRyJQCtYbtVAjGOKP-8BD4_hrhoM9-4qbdoJs6k/edit.

Я думаю, что он используется проектом Apache Drill, см. https://github.com/apache/drill/search?q=DynamicRecordType.

...