src/QueryPipeline/Chain.cpp
```
void Chain::addSink(ProcessorPtr processor)
{
    checkTransform(*processor);

    if (!processors.empty())
        connect(getOutputPort(), processor->getInputs().front());

    processors.emplace_front(std::move(processor));
}
```
Is there should be : 
```
processors.emplace_back(...) 
```
    /// -> source -> transform -> ... -> transform -> sink ->
    ///  ^        ->           ->     ->           ->       ^
    ///  input port                               output port
    std::list<ProcessorPtr> processors;
{
    checkInitialized(processors);
    return *processors.front();
}
IProcessor & Chain::getSink()
{
    checkInitialized(processors);
    return *processors.back();
}
InputPort & Chain::getInputPort() const
{
    checkInitialized(processors);
    return processors.front()->getInputs().front();
}
OutputPort & Chain::getOutputPort() const
{
    checkInitialized(processors);
    return processors.back()->getOutputs().front();
}
void Chain::reset()
{
    Chain to_remove = std::move(*this);
    *this = Chain();
}
}