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

Class LocalTableSourceNode

src/jrd/RecordSourceNodes.h:285–352  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

283
284
285class LocalTableSourceNode final : public TypedNode<RecordSourceNode, RecordSourceNode::TYPE_LOCAL_TABLE>
286{
287public:
288 explicit LocalTableSourceNode(MemoryPool& pool, const MetaName& aDsqlName = NULL)
289 : TypedNode<RecordSourceNode, RecordSourceNode::TYPE_LOCAL_TABLE>(pool),
290 alias(pool)
291 {
292 }
293
294 static LocalTableSourceNode* parse(thread_db* tdbb, CompilerScratch* csb, const SSHORT blrOp,
295 bool parseContext);
296
297 Firebird::string internalPrint(NodePrinter& printer) const override;
298 RecordSourceNode* dsqlPass(DsqlCompilerScratch* dsqlScratch) override;
299
300 bool dsqlSubSelectFinder(SubSelectFinder& /*visitor*/) override
301 {
302 return false;
303 }
304
305 bool dsqlMatch(DsqlCompilerScratch* dsqlScratch, const ExprNode* other, bool ignoreMapCast) const override;
306 void genBlr(DsqlCompilerScratch* dsqlScratch) override;
307
308 LocalTableSourceNode* copy(thread_db* tdbb, NodeCopier& copier) const override;
309
310 RecordSourceNode* pass1(thread_db* tdbb, CompilerScratch* csb) override
311 {
312 return this;
313 }
314
315 void pass1Source(thread_db* tdbb, CompilerScratch* csb, RseNode* rse,
316 BoolExprNode** boolean, RecordSourceNodeStack& stack) override;
317
318 RecordSourceNode* pass2(thread_db* /*tdbb*/, CompilerScratch* /*csb*/) override
319 {
320 return this;
321 }
322
323 void pass2Rse(thread_db* tdbb, CompilerScratch* csb) override;
324
325 bool containsStream(StreamType checkStream) const override
326 {
327 return checkStream == stream;
328 }
329
330 void computeDbKeyStreams(StreamList& streamList) const override
331 {
332 streamList.add(getStream());
333 }
334
335 bool computable(CompilerScratch* /*csb*/, StreamType /*stream*/,
336 bool /*allowOnlyCurrentStream*/, ValueExprNode* /*value*/) override
337 {
338 return true;
339 }
340
341 void findDependentFromStreams(const CompilerScratch* /*csb*/,
342 StreamType /*currentStream*/, SortedStreamList* /*streamList*/) override

Callers 2

parseMethod · 0.85
copyMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected