| 445 | |
| 446 | |
| 447 | class CurrentTimeNode final : public TypedNode<ValueExprNode, ExprNode::TYPE_CURRENT_TIME> |
| 448 | { |
| 449 | public: |
| 450 | CurrentTimeNode(MemoryPool& pool, unsigned aPrecision) |
| 451 | : TypedNode<ValueExprNode, ExprNode::TYPE_CURRENT_TIME>(pool), |
| 452 | precision(aPrecision) |
| 453 | { |
| 454 | } |
| 455 | |
| 456 | static DmlNode* parse(thread_db* tdbb, MemoryPool& pool, CompilerScratch* csb, const UCHAR blrOp); |
| 457 | |
| 458 | virtual Firebird::string internalPrint(NodePrinter& printer) const; |
| 459 | virtual ValueExprNode* dsqlPass(DsqlCompilerScratch* dsqlScratch); |
| 460 | virtual void setParameterName(dsql_par* parameter) const; |
| 461 | virtual void genBlr(DsqlCompilerScratch* dsqlScratch); |
| 462 | virtual void make(DsqlCompilerScratch* dsqlScratch, dsc* desc); |
| 463 | |
| 464 | virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc); |
| 465 | virtual ValueExprNode* copy(thread_db* tdbb, NodeCopier& copier) const; |
| 466 | virtual ValueExprNode* pass2(thread_db* tdbb, CompilerScratch* csb); |
| 467 | virtual dsc* execute(thread_db* tdbb, Request* request) const; |
| 468 | |
| 469 | public: |
| 470 | unsigned precision; |
| 471 | }; |
| 472 | |
| 473 | |
| 474 | class CurrentTimeStampNode final : public TypedNode<ValueExprNode, ExprNode::TYPE_CURRENT_TIMESTAMP> |