Class ResultColumn


  • public class ResultColumn
    extends StatementNode
    This class is used to represent a result column of a query.

    Assume that we have time series in db as follows:
    [ root.sg.d.a, root.sg.d.b, root.sg.e.a, root.sg.e.b ]

      Example 1: select a, a + b, udf(udf(b)) from root.sg.d, root.sg.e;
    • Step 1: constructed by sql visitor in logical operator:
      result columns:
      [a, a + b, udf(udf(b))]
    • Step 2: concatenated with prefix paths in logical optimizer:
      result columns:
      [root.sg.d.a, root.sg.e.a, root.sg.d.a + root.sg.d.b, root.sg.d.a + root.sg.e.b, root.sg.e.a + root.sg.d.b, root.sg.e.a + root.sg.e.b, udf(udf(root.sg.d.b)), udf(udf(root.sg.e.b))]
    • Step 3: remove wildcards in logical optimizer:
      result columns:
      [root.sg.d.a, root.sg.e.a, root.sg.d.a + root.sg.d.b, root.sg.d.a + root.sg.e.b, root.sg.e.a + root.sg.d.b, root.sg.e.a + root.sg.e.b, udf(udf(root.sg.d.b)), udf(udf(root.sg.e.b))]
      Example 2: select *, a + *, udf(udf(*)) from root.sg.d;
    • Step 1: constructed by sql visitor in logical operator:
      result columns:
      [*, a + * , udf(udf(*))]
    • Step 2: concatenated with prefix paths in logical optimizer:
      result columns:
      [root.sg.d.*, root.sg.d.a + root.sg.d.*, udf(udf(root.sg.d.*))]
    • Step 3: remove wildcards in logical optimizer:
      result columns:
      [root.sg.d.a, root.sg.d.b, root.sg.d.a + root.sg.d.a, root.sg.d.a + root.sg.d.b, udf(udf(root.sg.d.a)), udf(udf(root.sg.d.b))]
    • Method Detail

      • getExpression

        public Expression getExpression()
      • hasAlias

        public boolean hasAlias()
      • getAlias

        public java.lang.String getAlias()
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object