Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:

      Description

      Convert `SqlNode` from a class to an interface.

      This would allow:

      1. Make `SqlNodeList` extend `AbstractList` or `ArrayList` rather than wrapping a list.
      2. Make `SqlSelect`, `SqlWindow` and similar classes implement `SqlNode` directly rather than extending `SqlCall`. Their arguments would be stored in named, typed fields rather than the operand array. They could still have a `getOperator()` method (but not `setOperator`)
      3. Maybe convert `SqlCall.operands` array to an immutable list.
      4. Remove `implements Cloneable`. There are better ways.

      ---------------- Imported from GitHub ----------------
      Url: https://github.com/julianhyde/optiq/issues/147
      Created by: julianhyde
      Labels: cleanup,
      Created at: Thu Feb 20 22:16:24 CET 2014
      State: closed

        Activity

        Hide
        github-import GitHub Import added a comment -

        [Date: Mon Feb 24 08:45:21 CET 2014, Author: julianhyde]

        Changed the summary after working on this, in particular option 2 above.

        Option 3 is not possible; several operations mutate operands. But due to 2, the operands array is less used now.

        Options 1 and 4 (and option 0, convert SqlNode to an interface) are yet to do.

        Show
        github-import GitHub Import added a comment - [Date: Mon Feb 24 08:45:21 CET 2014, Author: julianhyde ] Changed the summary after working on this, in particular option 2 above. Option 3 is not possible; several operations mutate operands. But due to 2, the operands array is less used now. Options 1 and 4 (and option 0, convert SqlNode to an interface) are yet to do.

          People

          • Assignee:
            Unassigned
            Reporter:
            github-import GitHub Import
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development