From 21a13650eb7dadecd11c6d74effc5659b26f3bfe Mon Sep 17 00:00:00 2001 From: asfernandes Date: Fri, 21 Mar 2008 19:05:24 +0000 Subject: [PATCH] More problematic cases of CORE-1798 - thanks to Dmitry --- src/dsql/pass1.cpp | 6 ++++++ src/jrd/exe.cpp | 3 +++ 2 files changed, 9 insertions(+) diff --git a/src/dsql/pass1.cpp b/src/dsql/pass1.cpp index 7df5c8287db..31d3d0bdebd 100644 --- a/src/dsql/pass1.cpp +++ b/src/dsql/pass1.cpp @@ -4052,6 +4052,9 @@ static dsql_nod* pass1_dbkey( dsql_req* request, dsql_nod* input) 0); } + if (context->ctx_flags & CTX_null) + return MAKE_node(nod_null, 0); + dsql_nod* node = MAKE_node(nod_dbkey, 1); dsql_nod* rel_node = MAKE_node(nod_relation, e_rel_count); rel_node->nod_arg[0] = (dsql_nod*) context; @@ -4081,6 +4084,9 @@ static dsql_nod* pass1_dbkey( dsql_req* request, dsql_nod* input) 0); } + if (context->ctx_flags & CTX_null) + return MAKE_node(nod_null, 0); + dsql_nod* node = MAKE_node(nod_dbkey, 1); dsql_nod* rel_node = MAKE_node(nod_relation, e_rel_count); rel_node->nod_arg[0] = (dsql_nod*) context; diff --git a/src/jrd/exe.cpp b/src/jrd/exe.cpp index b7b7f722917..8de1fc6bc2d 100644 --- a/src/jrd/exe.cpp +++ b/src/jrd/exe.cpp @@ -2989,6 +2989,9 @@ static jrd_nod* modify(thread_db* tdbb, jrd_nod* node, SSHORT which_trig) } } + new_rpb->rpb_number = org_rpb->rpb_number; + new_rpb->rpb_number.setValid(true); + jrd_req* trigger; if (relation->rel_post_modify && which_trig != PRE_TRIG &&