mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-23 08:03:04 +01:00
Fixed bug #7276 : Firebird 4 literal containing crashes server
This commit is contained in:
parent
f6d9920adb
commit
48a95c0f26
@ -3000,10 +3000,12 @@ BoolExprNode* Optimizer::makeInferenceNode(BoolExprNode* boolean,
|
||||
|
||||
// Share impure area for cached invariant value used to hold pre-compiled
|
||||
// pattern for new LIKE and CONTAINING algorithms.
|
||||
// Cached pattern matcher also should be shared by both nodes, else new node
|
||||
// could overwrite impure area at offset zero. See bug GH-7276.
|
||||
// Proper cloning of impure area for this node would require careful accounting
|
||||
// of new invariant dependencies - we avoid such hassles via using single
|
||||
// cached pattern value for all node clones. This is faster too.
|
||||
if (newCmpNode->nodFlags & ExprNode::FLAG_INVARIANT)
|
||||
if (newCmpNode->nodFlags & (ExprNode::FLAG_INVARIANT | ExprNode::FLAG_PATTERN_MATCHER_CACHE))
|
||||
newCmpNode->impureOffset = cmpNode->impureOffset;
|
||||
|
||||
// But substitute new values for some of the predicate arguments
|
||||
|
Loading…
Reference in New Issue
Block a user