| 1030 | |
| 1031 | |
| 1032 | class DsqlMapNode final : public TypedNode<ValueExprNode, ExprNode::TYPE_MAP> |
| 1033 | { |
| 1034 | public: |
| 1035 | DsqlMapNode(MemoryPool& pool, dsql_ctx* aContext, dsql_map* aMap); |
| 1036 | |
| 1037 | virtual Firebird::string internalPrint(NodePrinter& printer) const; |
| 1038 | virtual ValueExprNode* dsqlPass(DsqlCompilerScratch* dsqlScratch); |
| 1039 | |
| 1040 | virtual bool dsqlAggregateFinder(AggregateFinder& visitor); |
| 1041 | virtual bool dsqlAggregate2Finder(Aggregate2Finder& visitor); |
| 1042 | virtual bool dsqlInvalidReferenceFinder(InvalidReferenceFinder& visitor); |
| 1043 | virtual bool dsqlSubSelectFinder(SubSelectFinder& visitor); |
| 1044 | virtual bool dsqlFieldFinder(FieldFinder& visitor); |
| 1045 | virtual ValueExprNode* dsqlFieldRemapper(FieldRemapper& visitor); |
| 1046 | |
| 1047 | virtual void setParameterName(dsql_par* parameter) const; |
| 1048 | virtual void genBlr(DsqlCompilerScratch* dsqlScratch); |
| 1049 | virtual void make(DsqlCompilerScratch* dsqlScratch, dsc* desc); |
| 1050 | virtual bool dsqlMatch(DsqlCompilerScratch* dsqlScratch, const ExprNode* other, bool ignoreMapCast) const; |
| 1051 | |
| 1052 | void setDsqlDesc(const dsc& desc) |
| 1053 | { |
| 1054 | dsqlDesc = desc; |
| 1055 | } |
| 1056 | |
| 1057 | virtual void getDesc(thread_db* /*tdbb*/, CompilerScratch* /*csb*/, dsc* /*desc*/) |
| 1058 | { |
| 1059 | fb_assert(false); |
| 1060 | } |
| 1061 | |
| 1062 | virtual ValueExprNode* copy(thread_db* /*tdbb*/, NodeCopier& /*copier*/) const |
| 1063 | { |
| 1064 | fb_assert(false); |
| 1065 | return NULL; |
| 1066 | } |
| 1067 | |
| 1068 | virtual dsc* execute(thread_db* /*tdbb*/, Request* /*request*/) const |
| 1069 | { |
| 1070 | fb_assert(false); |
| 1071 | return NULL; |
| 1072 | } |
| 1073 | |
| 1074 | public: |
| 1075 | dsql_ctx* context; |
| 1076 | dsql_map* map; |
| 1077 | bool setNullable; |
| 1078 | bool clearNull; |
| 1079 | }; |
| 1080 | |
| 1081 | |
| 1082 | class DerivedFieldNode final : public TypedNode<ValueExprNode, ExprNode::TYPE_DERIVED_FIELD> |
no outgoing calls
no test coverage detected