| 762 | |
| 763 | |
| 764 | class InitVariableNode final : public TypedNode<StmtNode, StmtNode::TYPE_INIT_VARIABLE> |
| 765 | { |
| 766 | public: |
| 767 | explicit InitVariableNode(MemoryPool& pool) |
| 768 | : TypedNode<StmtNode, StmtNode::TYPE_INIT_VARIABLE>(pool), |
| 769 | varId(0), |
| 770 | varDecl(NULL), |
| 771 | varInfo(NULL) |
| 772 | { |
| 773 | } |
| 774 | |
| 775 | public: |
| 776 | static DmlNode* parse(thread_db* tdbb, MemoryPool& pool, CompilerScratch* csb, const UCHAR blrOp); |
| 777 | |
| 778 | virtual Firebird::string internalPrint(NodePrinter& printer) const; |
| 779 | virtual InitVariableNode* dsqlPass(DsqlCompilerScratch* dsqlScratch); |
| 780 | virtual void genBlr(DsqlCompilerScratch* dsqlScratch); |
| 781 | virtual InitVariableNode* copy(thread_db* tdbb, NodeCopier& copier) const; |
| 782 | virtual InitVariableNode* pass1(thread_db* tdbb, CompilerScratch* csb); |
| 783 | virtual InitVariableNode* pass2(thread_db* tdbb, CompilerScratch* csb); |
| 784 | virtual const StmtNode* execute(thread_db* tdbb, Request* request, ExeState* exeState) const; |
| 785 | |
| 786 | public: |
| 787 | USHORT varId; |
| 788 | NestConst<DeclareVariableNode> varDecl; |
| 789 | NestConst<ItemInfo> varInfo; |
| 790 | }; |
| 791 | |
| 792 | |
| 793 | class ExecBlockNode final : public TypedNode<DsqlOnlyStmtNode, StmtNode::TYPE_EXEC_BLOCK> |