ClickHouse/dbms/src/Dictionaries/MySQLBlockInputStream.h

37 lines
957 B
C++
Raw Normal View History

#pragma once
#include <Core/Block.h>
#include <DataStreams/IProfilingBlockInputStream.h>
#include <Dictionaries/ExternalResultDescription.h>
#include <mysqlxx/Query.h>
2015-04-16 06:12:35 +00:00
#include <mysqlxx/PoolWithFailover.h>
#include <string>
2016-12-08 02:49:04 +00:00
namespace DB
2016-01-12 02:21:15 +00:00
{
/// Allows processing results of a MySQL query as a sequence of Blocks, simplifies chaining
class MySQLBlockInputStream final : public IProfilingBlockInputStream
{
public:
MySQLBlockInputStream(
const mysqlxx::PoolWithFailover::Entry & entry, const std::string & query_str, const Block & sample_block,
const size_t max_block_size);
String getName() const override { return "MySQL"; }
2018-05-14 11:10:07 +00:00
Block getHeader() const override { return description.sample_block; }
private:
Block readImpl() override;
mysqlxx::PoolWithFailover::Entry entry;
mysqlxx::Query query;
mysqlxx::UseQueryResult result;
const size_t max_block_size;
ExternalResultDescription description;
};
}