我想要實作一個與我們希望透過Calcite適配器連接到Calcite的資料庫引擎相關的show foo
指令。當然,foo
是特定於該資料庫引擎的某些內容。我正在嘗試弄清楚應該將它映射到哪種relnode(以及其他細節)。所以,如果有人已經將「show」語句實作為Calcite適配器,並對我有一些提示,將不勝感激。
我目前的想法是建立一個新的「foo」表類型,其中包含命令應返回的相關列,然後將show foo
映射到等效的:
select * from foo;
當然,這是使用Calcite relnodes來完成的。在後端,我知道我必須將其轉換為什麼。
您可能想要查看sqlline,它實作了類似
show
的指令:!dbinfo
、!tables
、!schemas
等等。如果您查看Commands.java,您會看到它們是透過JDBC實現的。然而,從那裡開始,您可以在org.apache.calcite.jdbc命名空間中的各種類別中了解Calcite的一面。