Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
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
Attachments
Issue Links
- is related to
-
CALCITE-4795 In class SqlBasicCall, make the "operands" field private
- Closed