"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/jrd/JrdStatement.cpp" between
Firebird-3.0.2.32703-0.tar.bz2 and Firebird-3.0.4.33054-0.tar.bz2

About: Firebird is a relational database offering many ANSI SQL standard features.

JrdStatement.cpp  (Firebird-3.0.2.32703-0.tar.bz2):JrdStatement.cpp  (Firebird-3.0.4.33054-0.tar.bz2)
skipping to change at line 162 skipping to change at line 162
{ {
// fetch input stream for update if all booleans matched against indices // fetch input stream for update if all booleans matched against indices
if ((tail->csb_flags & csb_update) && !(tail->csb_flags & csb_unmatched)) if ((tail->csb_flags & csb_update) && !(tail->csb_flags & csb_unmatched))
rpb->rpb_stream_flags |= RPB_s_update; rpb->rpb_stream_flags |= RPB_s_update;
// if no fields are referenced and this stream is not int ended for update, // if no fields are referenced and this stream is not int ended for update,
// mark the stream as not requiring record's data // mark the stream as not requiring record's data
if (!tail->csb_fields && !(tail->csb_flags & csb_update)) if (!tail->csb_fields && !(tail->csb_flags & csb_update))
rpb->rpb_stream_flags |= RPB_s_no_data; rpb->rpb_stream_flags |= RPB_s_no_data;
if (tail->csb_flags & csb_unstable)
rpb->rpb_stream_flags |= RPB_s_unstable;
rpb->rpb_relation = tail->csb_relation; rpb->rpb_relation = tail->csb_relation;
delete tail->csb_fields; delete tail->csb_fields;
tail->csb_fields = NULL; tail->csb_fields = NULL;
} }
} }
catch (Exception&) catch (Exception&)
{ {
for (JrdStatement** subStatement = subStatements.begin(); for (JrdStatement** subStatement = subStatements.begin();
subStatement != subStatements.end(); subStatement != subStatements.end();
skipping to change at line 406 skipping to change at line 409
buildExternalAccess(tdbb, external); buildExternalAccess(tdbb, external);
for (ExternalAccess* item = external.begin(); item != external.end(); ++i tem) for (ExternalAccess* item = external.begin(); item != external.end(); ++i tem)
{ {
const Routine* routine = NULL; const Routine* routine = NULL;
int aclType; int aclType;
if (item->exa_action == ExternalAccess::exa_procedure) if (item->exa_action == ExternalAccess::exa_procedure)
{ {
routine = MET_lookup_procedure_id(tdbb, item->exa_prc_id, false, false, 0); routine = MET_lookup_procedure_id(tdbb, item->exa_prc_id, false, false, 0);
if (!routine)
{
string name;
name.printf("id %d", item->exa_prc_id);
ERR_post(Arg::Gds(isc_prcnotdef) << name);
}
aclType = id_procedure; aclType = id_procedure;
} }
else if (item->exa_action == ExternalAccess::exa_function) else if (item->exa_action == ExternalAccess::exa_function)
{ {
routine = Function::lookup(tdbb, item->exa_fun_id, false, false, 0); routine = Function::lookup(tdbb, item->exa_fun_id, false, false, 0);
if (!routine)
{
string name;
name.printf("id %d", item->exa_fun_id);
ERR_post(Arg::Gds(isc_funnotdef) << name);
}
aclType = id_function; aclType = id_function;
} }
else else
{ {
jrd_rel* relation = MET_lookup_relation_id(tdbb, item->ex a_rel_id, false); jrd_rel* relation = MET_lookup_relation_id(tdbb, item->ex a_rel_id, false);
jrd_rel* view = NULL; jrd_rel* view = NULL;
if (item->exa_view_id) if (item->exa_view_id)
view = MET_lookup_relation_id(tdbb, item->exa_vie w_id, false); view = MET_lookup_relation_id(tdbb, item->exa_vie w_id, false);
if (!relation) if (!relation)
skipping to change at line 725 skipping to change at line 740
CompilerScratch* csb, T& subs) CompilerScratch* csb, T& subs)
{ {
typename T::Accessor subAccessor(&subs); typename T::Accessor subAccessor(&subs);
for (bool found = subAccessor.getFirst(); found; found = subAccessor.getN ext()) for (bool found = subAccessor.getFirst(); found; found = subAccessor.getN ext())
{ {
typename T::ValueType subNode = subAccessor.current()->second; typename T::ValueType subNode = subAccessor.current()->second;
Routine* subRoutine = subNode->routine; Routine* subRoutine = subNode->routine;
CompilerScratch*& subCsb = subNode->subCsb; CompilerScratch*& subCsb = subNode->subCsb;
JrdStatement* subStatement = JrdStatement::makeStatement(tdbb, su bCsb, true); JrdStatement* subStatement = JrdStatement::makeStatement(tdbb, su bCsb, false);
subStatement->parentStatement = statement; subStatement->parentStatement = statement;
subRoutine->setStatement(subStatement); subRoutine->setStatement(subStatement);
switch (subRoutine->getObjectType()) switch (subRoutine->getObjectType())
{ {
case obj_procedure: case obj_procedure:
subStatement->procedure = static_cast<jrd_prc*>(subRoutin e); subStatement->procedure = static_cast<jrd_prc*>(subRoutin e);
break; break;
case obj_udf: case obj_udf:
 End of changes. 4 change blocks. 
1 lines changed or deleted 16 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)