是否可以实现支持 INSERT/UDPATE/DELETE 的方解石适配器?

问题描述

calcite 存储库中包含的所有适配器仅支持查询。我发现有一个名为 Something_ID Col1 Desc1_Col2 Desc2_Col2 Desc3_Col2 Desc4_Col2 0 id1 1.1 0.1 2.1 3.1 NaN 1 id2 8.1 1.1 2.1 NaN 5.1 的类,看起来像是用于 C/U/D 操作。是否有任何示例实现了 df=pd.DataFrame({'Something_ID': {0: 'id1',1: 'id1',2: 'id1',3: 'id2',4: 'id2',5: 'id2'},'Description': {0: 'Desc1',1: 'Desc2',2: 'Desc3',3: 'Desc1',4: 'Desc4',5: 'Desc2'},'Col1': {0: 1.1,1: 1.1,2: 1.1,3: 8.1,4: 8.1,5: 8.1},'Col2': {0: 0.1,1: 2.1,2: 3.1,3: 1.1,4: 5.1,5: 2.1},'Col3': {0: 0.3,1: 6.3,2: 9.3,3: 3.3,4: 15.3,5: 6.3},'Col4': {0: 0.6,1: 12.6,2: 18.6,3: 6.6,4: 30.6,5: 12.6}}) ?挖了半天也没找到。

解决方法

这应该是可能的,但是 Calcite 代码库中没有执行此操作的适配器。我也不知道有任何第三方适配器这样做了。虽然我说它应该是可能的,但鉴于这不是一个常见的用例,您肯定会遇到一些挑战。

,

根据文档是可能的 - https://calcite.apache.org/docs/adapter.html#server

Calcite 的核心模块(calcite-core)支持 SQL 查询(SELECT)和 DML 操作(INSERT、UPDATE、DELETE、MERGE)

你可以在测试中看到一些例子

  1. https://github.com/apache/calcite/blob/296b84cad4406be03f2db35ce6077ad8fed4fef6/server/src/test/java/org/apache/calcite/test/ServerTest.java#L125
  2. https://github.com/apache/calcite/blob/4bc916619fd286b2c0cc4d5c653c96a68801d74e/core/src/test/java/org/apache/calcite/test/MultiJdbcSchemaJoinTest.java#L70
  3. https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/sql/SqlInsert.java

我建议检查代码并查看这些测试使用的适配器。

我将在几周后自己做这件事,所以如果你到那时还没有弄清楚,我会试着记住在我弄清楚后发布一个更具体的例子:)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...