8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-23 06:43:04 +01:00

This should resolve CORE-3753.

This commit is contained in:
dimitr 2012-02-09 07:38:51 +00:00
parent 2ed75f6d96
commit bcd483d173

View File

@ -1894,12 +1894,19 @@ bool RseNode::dsqlMatch(const ExprNode* other, bool /*ignoreMapCast*/) const
// Make up join node and mark relations as "possibly NULL" if they are in outer joins (inOuterJoin).
RseNode* RseNode::dsqlPass(DsqlCompilerScratch* dsqlScratch)
{
// Set up an empty context to process the joins
// Set up a new (empty) context to process the joins, but ensure
// that it includes system (e.g. trigger) contexts (if present).
DsqlContextStack* const base_context = dsqlScratch->context;
DsqlContextStack temp;
dsqlScratch->context = &temp;
for (DsqlContextStack::iterator iter(*base_context); iter.hasData(); ++iter)
{
if (iter.object()->ctx_flags & CTX_system)
temp.push(iter.object());
}
RseNode* node = FB_NEW(getPool()) RseNode(getPool());
node->dsqlExplicitJoin = dsqlExplicitJoin;
node->rse_jointype = rse_jointype;