Hat jemand eine Präsentationsfunktion im Apache Calcite-Adapter implementiert?
P粉885035114
2023-09-02 12:15:50
<p>Ich möchte einen <code>show foo</code>-Befehl implementieren, der sich auf die Datenbank-Engine bezieht, die wir über den Calcite-Adapter mit Calcite verbinden möchten. Natürlich ist <code>foo</code> etwas Spezifisches für diese Datenbank-Engine. Ich versuche herauszufinden, welchem relnode es zugeordnet werden soll (neben anderen Details). Wenn also jemand die „show“-Anweisung als Calcit-Adapter implementiert hat und ein paar Tipps für mich hat, wäre ich sehr dankbar. </p>
<p>Meine aktuelle Idee ist, einen neuen Tabellentyp „foo“ mit den relevanten Spalten zu erstellen, die der Befehl zurückgeben soll, und dann <code>show foo</code> dem Äquivalent zuzuordnen: </p>
<pre class="brush:sql;toolbar:false;">select * from foo;
</pre>
<p>Natürlich geschieht dies mithilfe von Calcit-Relnodes. Im Backend weiß ich, in was ich es konvertieren muss. </p>
您可能想要查看sqlline,它实现了类似于
show
的命令:!dbinfo
、!tables
、!schemas
等等。如果您查看Commands.java,您会看到它们是通过JDBC实现的。然而,从那里开始,您可以在org.apache.calcite.jdbc命名空间中的各种类中了解Calcite的一面。