Sorry, there is a problem with the format of the last message. Here is
new version:


I'm learning Calcite's TableMacro[1] and TableFunction[2] and I feel they
are very similar. - From their descriptions, TableMacro is for "compile
time",  TableFunction is for “execution time".
- From an email[3], I know TableFunction can be seen as a lightweight
relational operator.

But some descriptions do not seem to strictly distinguish between the two
interfaces. For example, ``` */** Table function that implements a view. It
returns the operator* * * tree of the view's SQL query. */* public class
ViewTableMacro implements TableMacro ``` ViewTableMacro[4] implements
TableMacro, but the description is a Table function. Is the description
inaccurate? Is anyone familiar with their other differences? Thanks very
much. Refs: [1]
https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/schema/TableMacro.java
[2]
https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/schema/TableFunction.java
[3] https://lists.apache.org/thread/twzmgl5sg701dxw0y24wkzwxonz0sy65 [4]
https://lists.apache.org/thread/gz8w0gr9cp1nl1nslrw5c3pbxrog5l00

On Mon, 24 Oct 2022 at 19:43, Jiajun Xie <jiajunbernou...@gmail.com> wrote:

> Hi, all:
>
> I'm learning Calcite's TableMacro[1] and TableFunction[2] and I feel they
> are very similar.
> - From their descriptions, TableMacro is for *"compile time", * TableFunction
> is for “*execution time". *
> *- From an email[3], I know T*ableFunction can be seen as a lightweight
> relational operator.
>
> *But s*ome descriptions do not seem to strictly distinguish between the
> two interfaces. For example,
> ```
> */** Table function that implements a view. It returns the operator*
> * * tree of the view's SQL query. */*
> public class ViewTableMacro implements TableMacro
> ```
> ViewTableMacro[3] implements TableMacro, but the description is a Table
> function. Is the description inaccurate?
>
> Is anyone familiar with their other differences?  Thanks very much.
>
> Refs:
> [1]
> https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/schema/TableMacro.java
> [2]
> https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/schema/TableFunction.java
> [3] https://lists.apache.org/thread/twzmgl5sg701dxw0y24wkzwxonz0sy65
> [4] https://lists.apache.org/thread/gz8w0gr9cp1nl1nslrw5c3pbxrog5l00
>
>

Reply via email to