7235-20230425.patch
new/src/com/goldencode/p2j/persist/FQLPreprocessor.java 2023-04-25 09:39:47 +0000 | ||
---|---|---|
2977 | 2977 |
// this is a predicate root-level boolean function. Replace with boolFn() = 1 |
2978 | 2978 |
needSQLBooleanConversion.add(next); |
2979 | 2979 |
} |
2980 |
|
|
2981 |
if ("exists".equals(next.getText()) && next.getFirstChild().getType() == SUBSELECT) |
|
2982 |
{ |
|
2983 |
HQLAst subSelectNode = (HQLAst) next.getFirstChild(); |
|
2984 |
|
|
2985 |
if (subSelectNode.getFirstChild().getType() == SELECT) |
|
2986 |
{ |
|
2987 |
break; |
|
2988 |
} |
|
2989 |
|
|
2990 |
HQLAst selectNode = new HQLAst(); |
|
2991 |
selectNode.setType(SELECT); |
|
2992 |
selectNode.setText("select"); |
|
2993 |
subSelectNode.graftAt(selectNode, 0); |
|
2994 |
|
|
2995 |
HQLAst selectValueNode = new HQLAst(); |
|
2996 |
selectValueNode.setType(NUM_LITERAL); |
|
2997 |
selectValueNode.setText("1"); |
|
2998 |
subSelectNode.graftAt(selectValueNode, 1); |
|
2999 |
} |
|
3000 |
|
|
2980 | 3001 |
break; |
2981 | 3002 |
|
2982 | 3003 |
case PROPERTY: |
... | ... | |
5814 | 5835 |
buf.append(" as "); |
5815 | 5836 |
} |
5816 | 5837 |
break; |
5838 |
case SUBSELECT: |
|
5839 |
Aast child = ast.getChildAt(index); |
|
5840 |
if (child.getType() == NUM_LITERAL) |
|
5841 |
{ |
|
5842 |
if (ast.getChildAt(index - 1).getType() != SELECT) |
|
5843 |
{ |
|
5844 |
buf.append(","); |
|
5845 |
} |
|
5846 |
buf.append(" "); |
|
5847 |
} |
|
5848 |
|
|
5849 |
if (child.getType() == FROM) |
|
5850 |
{ |
|
5851 |
buf.append(" "); |
|
5852 |
} |
|
5853 |
break; |
|
5817 | 5854 |
|
5818 | 5855 |
default: |
5819 | 5856 |
break; |