| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| public Node | |
| public void | initialize()
Overrides org. Implements org. |
| private boolean | |
| private void | mutateRowValueConstructorSyntaxInInListSyntax(int
The number of elements in the row value constructor list. lhsColumnSpan, int rhsColumnSpan)Mutate the subtree relating to a row-value-constructor in "in" list to instead use a series of ORen and ANDed predicates. |
| InLogicOperatorNode | back to summary |
|---|---|
| public InLogicOperatorNode() | |
| getInList | back to summary |
|---|---|
| public Node getInList() | |
| initialize | back to summary |
|---|---|
| public void initialize() throws SemanticException Overrides org. Implements org. Doc from org. Called by the tree walker during hql-sql semantic analysis after the operator sub-tree is completely built.
| |
| isNodeAcceptable | back to summary |
|---|---|
| private boolean isNodeAcceptable(Node rhsNode) this is possible for parameter lists and explicit lists. It is completely unreasonable for sub-queries. | |
| mutateRowValueConstructorSyntaxInInListSyntax | back to summary |
|---|---|
| private void mutateRowValueConstructorSyntaxInInListSyntax(int lhsColumnSpan, int rhsColumnSpan) Mutate the subtree relating to a row-value-constructor in "in" list to instead use a series of ORen and ANDed predicates. This allows multi-column type comparisons and explicit row-value-constructor in "in" list syntax even on databases which do not support row-value-constructor in "in" list. For example, here we'd mutate "... where (col1, col2) in ( ('val1', 'val2'), ('val3', 'val4') ) ..." to "... where (col1 = 'val1' and col2 = 'val2') or (col1 = 'val3' and val2 = 'val4') ..."
| |