예제 #1
0
 virtual void getMetaInfo(ThorDataLinkMetaInfo &info) const override
 {
     initMetaInfo(info);
     info.canReduceNumRows = true;
     info.totalRowsMax = helper->getLimit();
     calcMetaInfoSize(info, queryInput(0));
 }
 void getMetaInfo(ThorDataLinkMetaInfo &info)
 {
     initMetaInfo(info);
     info.fastThrough = true;
     info.canReduceNumRows = true;
     calcMetaInfoSize(info, queryInput(0));
 }
예제 #3
0
bool
FilterGraph::setInput(Speakers _spk)
{
  dropChain();

  return queryInput(_spk) && start.setInput(_spk) && buildChain(node_start);
}
예제 #4
0
// IThorDataLink
    virtual void getMetaInfo(ThorDataLinkMetaInfo &info) override
    {
        initMetaInfo(info);
        info.fastThrough = true; // ish
        if (helper->canFilter())
            info.canReduceNumRows = true;
        calcMetaInfoSize(info, queryInput(0));
    }
예제 #5
0
 virtual void start() override
 {
     ActivityTimer s(totalCycles, timeActivities);
     PARENT::start();
     count = 0;
     eof = nextPut = false;
     inrowif.set(::queryRowInterfaces(queryInput(0)));
 }
예제 #6
0
 virtual void getMetaInfo(ThorDataLinkMetaInfo &info)
 {
     initMetaInfo(info);
     info.canBufferInput = true;
     if (helper->canFilter())
         info.canReduceNumRows = true;
     calcMetaInfoSize(info, queryInput(0));
 }
 void getMetaInfo(ThorDataLinkMetaInfo &info)
 {
     initMetaInfo(info);
     info.isSequential = true;
     info.canReduceNumRows = true;
     info.canBufferInput = true;
     calcMetaInfoSize(info, queryInput(0));
 }
예제 #8
0
 virtual void getMetaInfo(ThorDataLinkMetaInfo &info) override
 {
     initMetaInfo(info);
     info.canReduceNumRows = true;
     info.canBufferInput = false;
     info.totalRowsMax = rowLimit;
     calcMetaInfoSize(info, queryInput(0));
 }
예제 #9
0
 virtual void getMetaInfo(ThorDataLinkMetaInfo &info) const override
 {
     initMetaInfo(info);
     if (rolloverEnabled)
     {
         info.isSequential = true;
         info.unknownRowsOutput = true; // don't know how many rolled over
     }
     else
         info.fastThrough = true;
     calcMetaInfoSize(info, queryInput(0));
 }
예제 #10
0
// IThorDataLink
    virtual void start() override
    {
        ActivityTimer s(totalCycles, timeActivities);
        PARENT::start();
        bool hintunsortedoutput = getOptBool(THOROPT_UNSORTED_OUTPUT, (JFreorderable & helper->getJoinFlags()) != 0);
        bool hintparallelmatch = getOptBool(THOROPT_PARALLEL_MATCH, hintunsortedoutput); // i.e. unsorted, implies use parallel by default, otherwise no point

        if (helper->getJoinFlags()&JFlimitedprefixjoin)
        {
            CriticalBlock b(joinHelperCrit);
            // use std join helper (less efficient but implements limited prefix)
            joinhelper.setown(createJoinHelper(*this, helper, this, hintparallelmatch, hintunsortedoutput));
        }
        else
        {
            CriticalBlock b(joinHelperCrit);
            joinhelper.setown(createSelfJoinHelper(*this, helper, this, hintparallelmatch, hintunsortedoutput));
        }
        strm.setown(isLightweight? doLightweightSelfJoin() : (isLocal ? doLocalSelfJoin() : doGlobalSelfJoin()));
        assertex(strm);

        joinhelper->init(strm, NULL, ::queryRowAllocator(queryInput(0)), ::queryRowAllocator(queryInput(0)), ::queryRowMetaData(queryInput(0)));
    }
예제 #11
0
 virtual void getMetaInfo(ThorDataLinkMetaInfo &info) override
 {
     initMetaInfo(info);
     info.fastThrough = false;
     calcMetaInfoSize(info, queryInput(0));
 }
예제 #12
0
 virtual bool isGrouped() const override { return queryInput(0)->isGrouped(); }
예제 #13
0
 virtual void getMetaInfo(ThorDataLinkMetaInfo &info) override
 {
     queryInput(0)->getMetaInfo(info);
 }