| 41 | // --------------------------- |
| 42 | |
| 43 | ProcedureScan::ProcedureScan(CompilerScratch* csb, const string& alias, StreamType stream, |
| 44 | const jrd_prc* procedure, const ValueListNode* sourceList, |
| 45 | const ValueListNode* targetList, MessageNode* message) |
| 46 | : RecordStream(csb, stream, procedure->prc_record_format), m_alias(csb->csb_pool, alias), |
| 47 | m_procedure(procedure), m_sourceList(sourceList), m_targetList(targetList), m_message(message) |
| 48 | { |
| 49 | m_impure = csb->allocImpure<Impure>(); |
| 50 | m_cardinality = DEFAULT_CARDINALITY; |
| 51 | |
| 52 | fb_assert(!sourceList == !targetList); |
| 53 | |
| 54 | if (sourceList && targetList) |
| 55 | fb_assert(sourceList->items.getCount() == targetList->items.getCount()); |
| 56 | } |
| 57 | |
| 58 | void ProcedureScan::internalOpen(thread_db* tdbb) const |
| 59 | { |