@@ -2176,16 +2176,20 @@ BoolExprNode* RseBoolNode::convertNeqAllToNotAny(thread_db* tdbb, CompilerScratc
21762176
21772177 andNode->arg1 = missNode;
21782178
2179+ RseNode* newInnerRse1 = innerRse->clone (csb->csb_pool );
2180+ newInnerRse1->flags |= RseNode::FLAG_SUB_QUERY;
2181+
21792182 RseBoolNode* rseBoolNode = FB_NEW_POOL (csb->csb_pool ) RseBoolNode (csb->csb_pool , blr_any);
2180- rseBoolNode->rse = innerRse ;
2183+ rseBoolNode->rse = newInnerRse1 ;
21812184 rseBoolNode->ownSavepoint = this ->ownSavepoint ;
21822185
21832186 andNode->arg2 = rseBoolNode;
21842187
2185- RseNode* newInnerRse = innerRse->clone (csb->csb_pool );
2188+ RseNode* newInnerRse2 = innerRse->clone (csb->csb_pool );
2189+ newInnerRse2->flags |= RseNode::FLAG_SUB_QUERY;
21862190
21872191 rseBoolNode = FB_NEW_POOL (csb->csb_pool ) RseBoolNode (csb->csb_pool , blr_any);
2188- rseBoolNode->rse = newInnerRse ;
2192+ rseBoolNode->rse = newInnerRse2 ;
21892193 rseBoolNode->ownSavepoint = this ->ownSavepoint ;
21902194
21912195 orNode->arg2 = rseBoolNode;
@@ -2201,16 +2205,16 @@ BoolExprNode* RseBoolNode::convertNeqAllToNotAny(thread_db* tdbb, CompilerScratc
22012205 outerRseNeq->blrOp = blr_eql;
22022206
22032207 // If there was a boolean on the stream, append (AND) the new one
2204- if (newInnerRse ->rse_boolean )
2208+ if (newInnerRse2 ->rse_boolean )
22052209 {
22062210 andNode = FB_NEW_POOL (csb->csb_pool ) BinaryBoolNode (csb->csb_pool , blr_and);
22072211
2208- andNode->arg1 = newInnerRse ->rse_boolean ;
2212+ andNode->arg1 = newInnerRse2 ->rse_boolean ;
22092213 andNode->arg2 = boolean;
22102214 boolean = andNode;
22112215 }
22122216
2213- newInnerRse ->rse_boolean = boolean;
2217+ newInnerRse2 ->rse_boolean = boolean;
22142218
22152219 SubExprNodeCopier copier (csb->csb_pool , csb);
22162220 return copier.copy (tdbb, static_cast <BoolExprNode*>(newNode));
0 commit comments