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

Class NestedLoopJoin

src/jrd/recsrc/RecordSource.h:1132–1168  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1130 // Multiplexing (many -> one) access methods
1131
1132 class NestedLoopJoin : public RecordSource
1133 {
1134 public:
1135 NestedLoopJoin(CompilerScratch* csb, FB_SIZE_T count, RecordSource* const* args,
1136 JoinType joinType = INNER_JOIN);
1137 NestedLoopJoin(CompilerScratch* csb, RecordSource* outer, RecordSource* inner,
1138 BoolExprNode* boolean);
1139
1140 void close(thread_db* tdbb) const override;
1141
1142 bool refetchRecord(thread_db* tdbb) const override;
1143 WriteLockResult lockRecord(thread_db* tdbb) const override;
1144
1145 void getChildren(Firebird::Array<const RecordSource*>& children) const override;
1146
1147 void print(thread_db* tdbb, Firebird::string& plan,
1148 bool detailed, unsigned level, bool recurse) const override;
1149
1150 void markRecursive() override;
1151 void invalidateRecords(Request* request) const override;
1152
1153 void findUsedStreams(StreamList& streams, bool expandAll = false) const override;
1154 bool isDependent(const StreamList& streams) const override;
1155 void nullRecords(thread_db* tdbb) const override;
1156
1157 protected:
1158 void internalOpen(thread_db* tdbb) const override;
1159 bool internalGetRecord(thread_db* tdbb) const override;
1160
1161 private:
1162 bool fetchRecord(thread_db*, FB_SIZE_T) const;
1163
1164 const JoinType m_joinType;
1165 const NestConst<BoolExprNode> m_boolean;
1166
1167 Firebird::Array<NestConst<RecordSource> > m_args;
1168 };
1169
1170 class FullOuterJoin : public RecordSource
1171 {

Callers 4

formRiverMethod · 0.85
CrossJoinMethod · 0.85
compileMethod · 0.85
generateOuterJoinMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected