Поддержка транзакций с кальцитом - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь выяснить, есть ли опубликованные руководящие принципы для того, что должно быть расширено, чтобы поддержать, скажем, что-то основное, как транзакции с Calcite? Невозможно найти что-либо значимое в документации.

Это единственная ссылка, которую я нашел, когда искал "транзакции кальцита не работают". https://mail-archives.apache.org/mod_mbox/calcite-dev/201502.mbox/%3CCAMCtme+wSQq8eHzapYC9-3STzpB7D5AyxY0Aa7pzbyUCJnHD6A@mail.gmail.com%3E

I6100 *написание собственного адаптера, так как нам требовалось более точное управление обоими конвейерами чтения / записи. Т.е. мы хотим, чтобы адаптер был интерфейсом для приложений, которые до сих пор работали с обычной СУБД;Это означает, что поддерживает все конструкции SQL, но также предоставляет нам возможности, которые обеспечивает Calcite. Для этого у меня есть простой загрузчик данных, который может подключаться к любой системе rdbms и загружать данные в наш сервер. Загрузчик использует реализации Avatica API-интерфейсов java.sql для DDL / DML и запросов.

Так как коммит CalciteMetaImpl явно генерирует исключения, невозможно сделать что-то вроде ...

Connection conn = ...
conn.setAutoCommit(false);
try{
    PreparedStatement prep_stmt = conn.prepareStatement(sql.toString());

    while(...){
      //set values..
      prep_stmt.addBatch()/prep_stmt.executeBatch();
    }
}
conn.commit();//or abort

Что может быть полезным, так это пример реализации, демонстрирующий это, или некоторые рекомендации о том, как этого можно достичь.

...