Skip to content

IMSMWU/clickhouse-cpp

This branch is 637 commits ahead of, 624 commits behind ClickHouse/clickhouse-cpp:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

136661a · Jan 8, 2020
Jan 27, 2018
Jan 8, 2020
Jan 7, 2020
Jan 8, 2020
Dec 16, 2019
Dec 18, 2019
Apr 27, 2017
Feb 5, 2019
Jan 2, 2017
Jul 5, 2019
Dec 17, 2019
Apr 27, 2017
Jan 8, 2020
Sep 12, 2019
Dec 16, 2019

Repository files navigation

ClickHouse C++ client Build Status

C++ client for Yandex ClickHouse

Supported data types

  • Array(T)
  • Date
  • DateTime
  • Decimal32, Decimal64, Decimal128
  • Enum8, Enum16
  • FixedString(N)
  • Float32, Float64
  • IPv4, IPv6
  • Nullable(T)
  • String
  • Tuple
  • UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64

Building

$ mkdir build .
$ cd build
$ cmake .. [-DBUILD_TESTS=ON]
$ make

Example

#include <clickhouse/client.h>

using namespace clickhouse;

/// Initialize client connection.
Client client(ClientOptions().SetHost("localhost"));

/// Create a table.
client.Execute("CREATE TABLE IF NOT EXISTS test.numbers (id UInt64, name String) ENGINE = Memory");

/// Insert some values.
{
    Block block;

    auto id = std::make_shared<ColumnUInt64>();
    id->Append(1);
    id->Append(7);

    auto name = std::make_shared<ColumnString>();
    name->Append("one");
    name->Append("seven");

    block.AppendColumn("id"  , id);
    block.AppendColumn("name", name);

    client.Insert("test.numbers", block);
}

/// Select values inserted in the previous step.
client.Select("SELECT id, name FROM test.numbers", [] (const Block& block)
    {
        for (size_t i = 0; i < block.GetRowCount(); ++i) {
            std::cout << block[0]->As<ColumnUInt64>()->At(i) << " "
                      << block[1]->As<ColumnString>()->At(i) << "\n";
        }
    }
);

/// Delete table.
client.Execute("DROP TABLE test.numbers");

About

C++ client library for ClickHouse

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 92.5%
  • C 7.0%
  • Other 0.5%