| 10100 | } |
| 10101 | |
| 10102 | static ValueListNode* dsqlPassArray(DsqlCompilerScratch* dsqlScratch, ValueListNode* input) |
| 10103 | { |
| 10104 | if (!input) |
| 10105 | return NULL; |
| 10106 | |
| 10107 | MemoryPool& pool = dsqlScratch->getPool(); |
| 10108 | ValueListNode* output = FB_NEW_POOL(pool) ValueListNode(pool, input->items.getCount()); |
| 10109 | NestConst<ValueExprNode>* ptr = input->items.begin(); |
| 10110 | NestConst<ValueExprNode>* ptr2 = output->items.begin(); |
| 10111 | |
| 10112 | for (const NestConst<ValueExprNode>* const end = input->items.end(); ptr != end; ++ptr, ++ptr2) |
| 10113 | *ptr2 = Node::doDsqlPass(dsqlScratch, *ptr); |
| 10114 | |
| 10115 | return output; |
| 10116 | } |
| 10117 | |
| 10118 | // Turn a cursor reference into a record selection expression. |
| 10119 | static dsql_ctx* dsqlPassCursorContext(DsqlCompilerScratch* dsqlScratch, const MetaName& cursor, |
no test coverage detected