| 472 | |
| 473 | |
| 474 | class CurrentTimeStampNode final : public TypedNode<ValueExprNode, ExprNode::TYPE_CURRENT_TIMESTAMP> |
| 475 | { |
| 476 | public: |
| 477 | CurrentTimeStampNode(MemoryPool& pool, unsigned aPrecision) |
| 478 | : TypedNode<ValueExprNode, ExprNode::TYPE_CURRENT_TIMESTAMP>(pool), |
| 479 | precision(aPrecision) |
| 480 | { |
| 481 | } |
| 482 | |
| 483 | static DmlNode* parse(thread_db* tdbb, MemoryPool& pool, CompilerScratch* csb, const UCHAR blrOp); |
| 484 | |
| 485 | virtual Firebird::string internalPrint(NodePrinter& printer) const; |
| 486 | virtual ValueExprNode* dsqlPass(DsqlCompilerScratch* dsqlScratch); |
| 487 | virtual void setParameterName(dsql_par* parameter) const; |
| 488 | virtual void genBlr(DsqlCompilerScratch* dsqlScratch); |
| 489 | virtual void make(DsqlCompilerScratch* dsqlScratch, dsc* desc); |
| 490 | |
| 491 | virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc); |
| 492 | virtual ValueExprNode* copy(thread_db* tdbb, NodeCopier& copier) const; |
| 493 | virtual ValueExprNode* pass2(thread_db* tdbb, CompilerScratch* csb); |
| 494 | virtual dsc* execute(thread_db* tdbb, Request* request) const; |
| 495 | |
| 496 | public: |
| 497 | unsigned precision; |
| 498 | }; |
| 499 | |
| 500 | |
| 501 | class CurrentRoleNode final : public TypedNode<ValueExprNode, ExprNode::TYPE_CURRENT_ROLE> |