Packages

Elixir client for ClickHouse database via FINE + clickhouse-cpp (native TCP)

Current section

Files

Jump to
natch native clickhouse-cpp clickhouse protocol.h
Raw

native/clickhouse-cpp/clickhouse/protocol.h

#pragma once
namespace clickhouse {
/// Types of packets received from server
namespace ServerCodes {
enum {
Hello = 0, /// Name, version, revision.
Data = 1, /// `Block` of data, may be compressed.
Exception = 2, /// Exception that occurred on server side during query execution.
Progress = 3, /// Query execcution progress: rows and bytes read.
Pong = 4, /// response to Ping sent by client.
EndOfStream = 5, /// All packets were sent.
ProfileInfo = 6, /// Profiling data
Totals = 7, /// Block of totals, may be compressed.
Extremes = 8, /// Block of mins and maxs, may be compressed.
TablesStatusResponse = 9, /// Response to TableStatus.
Log = 10, /// Query execution log.
TableColumns = 11, /// Columns' description for default values calculation
PartUUIDs = 12, /// List of unique parts ids.
ReadTaskRequest = 13, /// String (UUID) describes a request for which next task is needed
/// This is such an inverted logic, where server sends requests
/// And client returns back response
ProfileEvents = 14, /// Packet with profile events from server.
};
}
/// Types of packets sent by client.
namespace ClientCodes {
enum {
Hello = 0, /// Name, version, default database name.
Query = 1, /** Query id, query settings, query processing stage,
* compression status, and query text (no INSERT data).
*/
Data = 2, /// Data `Block` (e.g. INSERT data), may be compressed.
Cancel = 3, /// Cancel query.
Ping = 4, /// Check server connection.
};
}
/// Should we compress `Block`s of data
namespace CompressionState {
enum {
Disable = 0,
Enable = 1,
};
}
namespace Stages {
enum {
Complete = 2,
};
}
}