MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / GenIdNode

Class GenIdNode

src/dsql/ExprNodes.h:851–898  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

849
850
851class GenIdNode final : public TypedNode<ValueExprNode, ExprNode::TYPE_GEN_ID>
852{
853public:
854 GenIdNode(MemoryPool& pool, bool aDialect1,
855 const MetaName& name,
856 ValueExprNode* aArg,
857 bool aImplicit, bool aIdentity);
858
859 static DmlNode* parse(thread_db* tdbb, MemoryPool& pool, CompilerScratch* csb, const UCHAR blrOp);
860
861 virtual void getChildren(NodeRefsHolder& holder, bool dsql) const
862 {
863 ValueExprNode::getChildren(holder, dsql);
864 holder.add(arg);
865 }
866
867 virtual Firebird::string internalPrint(NodePrinter& printer) const;
868 virtual ValueExprNode* dsqlPass(DsqlCompilerScratch* dsqlScratch);
869 virtual void setParameterName(dsql_par* parameter) const;
870 virtual bool setParameterType(DsqlCompilerScratch* dsqlScratch,
871 std::function<void (dsc*)> makeDesc, bool forceVarChar);
872 virtual void genBlr(DsqlCompilerScratch* dsqlScratch);
873 virtual void make(DsqlCompilerScratch* dsqlScratch, dsc* desc);
874
875 virtual bool deterministic() const
876 {
877 return false;
878 }
879
880 virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc);
881 virtual ValueExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
882 virtual bool dsqlMatch(DsqlCompilerScratch* dsqlScratch, const ExprNode* other, bool ignoreMapCast) const;
883 virtual bool sameAs(const ExprNode* other, bool ignoreStreams) const;
884 virtual ValueExprNode* pass1(thread_db* tdbb, CompilerScratch* csb);
885 virtual ValueExprNode* pass2(thread_db* tdbb, CompilerScratch* csb);
886 virtual dsc* execute(thread_db* tdbb, Request* request) const;
887
888public:
889 GeneratorItem generator;
890 NestConst<ValueExprNode> arg;
891 SLONG step;
892 const bool dialect1;
893
894private:
895 bool sysGen;
896 const bool implicit;
897 const bool identity;
898};
899
900
901class InternalInfoNode final : public TypedNode<ValueExprNode, ExprNode::TYPE_INTERNAL_INFO>

Callers 4

createFromFieldMethod · 0.85
parseMethod · 0.85
dsqlPassMethod · 0.85
copyMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected