| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
ClickHaskell.Protocol
Synopsis
- newtype UVarInt = MkUVarInt Word64
- data Revisioned (revisionNumber :: Nat) b a
- = BeforeRevision b
- | AfterRevision a
- data ProtocolRevision
- data DataPacket = MkDataPacket {}
- data BlockInfo = MkBlockInfo {
- field_num1 :: UVarInt
- is_overflows :: UInt8
- field_num2 :: UVarInt
- bucket_num :: Int32
- eof :: UVarInt
- data ClientPacket where
- Hello :: HelloPacket -> ClientPacket
- Query :: QueryPacket -> ClientPacket
- Data :: DataPacket -> ClientPacket
- Cancel :: ClientPacket
- Ping :: ClientPacket
- TablesStatusRequest :: ClientPacket
- KeepAlive :: ClientPacket
- Scalar :: ClientPacket
- IgnoredPartUUIDs :: ClientPacket
- ReadTaskResponse :: ClientPacket
- MergeTreeReadTaskResponse :: ClientPacket
- SSHChallengeRequest :: ClientPacket
- SSHChallengeResponse :: ClientPacket
- data HelloPacket = MkHelloPacket {}
- data Addendum = MkAddendum {
- quota_key :: SinceRevision ChString DBMS_MIN_PROTOCOL_VERSION_WITH_QUOTA_KEY
- proto_send_chunked :: SinceRevision ChString DBMS_MIN_PROTOCOL_VERSION_WITH_CHUNKED_PACKETS
- proto_recv_chunked :: SinceRevision ChString DBMS_MIN_PROTOCOL_VERSION_WITH_CHUNKED_PACKETS
- replicas_version :: SinceRevision ProtocolRevision DBMS_MIN_REVISION_WITH_VERSIONED_PARALLEL_REPLICAS_PROTOCOL
- data QueryPacket = MkQueryPacket {
- query_id :: ChString
- client_info :: SinceRevision ClientInfo DBMS_MIN_REVISION_WITH_CLIENT_INFO
- settings :: DbSettings
- external_roles :: SinceRevision UVarInt DBMS_MIN_PROTOCOL_VERSION_WITH_INTERSERVER_EXTERNALLY_GRANTED_ROLES
- interserver_secret :: SinceRevision ChString DBMS_MIN_REVISION_WITH_INTERSERVER_SECRET
- query_stage :: QueryStage
- compression :: UVarInt
- query :: ChString
- parameters :: SinceRevision QueryParameters DBMS_MIN_PROTOCOL_VERSION_WITH_PARAMETERS
- data DbSettings = MkDbSettings [DbSetting]
- data QueryParameters = MkQueryParameters
- data QueryStage
- data ClientInfo = MkClientInfo {
- query_kind :: QueryKind
- initial_user :: ChString
- initial_query_id :: ChString
- initial_adress :: ChString
- initial_time :: SinceRevision Int64 DBMS_MIN_PROTOCOL_VERSION_WITH_INITIAL_QUERY_START_TIME
- interface_type :: UInt8
- os_user :: ChString
- hostname :: ChString
- client_name :: ChString
- client_version_major :: UVarInt
- client_version_minor :: UVarInt
- client_revision :: ProtocolRevision
- quota_key :: SinceRevision ChString DBMS_MIN_REVISION_WITH_QUOTA_KEY_IN_CLIENT_INFO
- distrubuted_depth :: SinceRevision UVarInt DBMS_MIN_PROTOCOL_VERSION_WITH_DISTRIBUTED_DEPTH
- client_version_patch :: SinceRevision UVarInt DBMS_MIN_REVISION_WITH_VERSION_PATCH
- open_telemetry :: SinceRevision UInt8 DBMS_MIN_REVISION_WITH_OPENTELEMETRY
- collaborate_with_initiator :: SinceRevision UVarInt DBMS_MIN_REVISION_WITH_PARALLEL_REPLICAS
- count_participating_replicas :: SinceRevision UVarInt DBMS_MIN_REVISION_WITH_PARALLEL_REPLICAS
- number_of_current_replica :: SinceRevision UVarInt DBMS_MIN_REVISION_WITH_PARALLEL_REPLICAS
- script_query_number :: SinceRevision UVarInt DBMS_MIN_REVISION_WITH_QUERY_AND_LINE_NUMBERS
- script_line_number :: SinceRevision UVarInt DBMS_MIN_REVISION_WITH_QUERY_AND_LINE_NUMBERS
- jwt :: SinceRevision Jwt DBMS_MIN_REVISON_WITH_JWT_IN_INTERSERVER
- data QueryKind
- data Jwt = MkJwt ChString
- data ServerPacket where
- HelloResponse :: HelloResponse -> ServerPacket
- DataResponse :: DataPacket -> ServerPacket
- Exception :: ExceptionPacket -> ServerPacket
- Progress :: ProgressPacket -> ServerPacket
- Pong :: ServerPacket
- EndOfStream :: ServerPacket
- ProfileInfo :: ProfileInfo -> ServerPacket
- Totals :: ServerPacket
- Extremes :: ServerPacket
- TablesStatusResponse :: ServerPacket
- Log :: ServerPacket
- TableColumns :: TableColumns -> ServerPacket
- UUIDs :: ServerPacket
- ReadTaskRequest :: ServerPacket
- ProfileEvents :: ProfileEventsPacket -> ServerPacket
- UnknownPacket :: UVarInt -> ServerPacket
- data HelloResponse = MkHelloResponse {
- server_name :: ChString
- server_version_major :: UVarInt
- server_version_minor :: UVarInt
- server_revision :: ProtocolRevision
- server_parallel_replicas_proto :: SinceRevision UVarInt DBMS_MIN_REVISION_WITH_VERSIONED_PARALLEL_REPLICAS_PROTOCOL
- server_timezone :: SinceRevision ChString DBMS_MIN_REVISION_WITH_SERVER_TIMEZONE
- server_display_name :: SinceRevision ChString DBMS_MIN_REVISION_WITH_SERVER_DISPLAY_NAME
- server_version_patch :: SinceRevision UVarInt DBMS_MIN_REVISION_WITH_VERSION_PATCH
- proto_send_chunked_srv :: SinceRevision ChString DBMS_MIN_PROTOCOL_VERSION_WITH_CHUNKED_PACKETS
- proto_recv_chunked_srv :: SinceRevision ChString DBMS_MIN_PROTOCOL_VERSION_WITH_CHUNKED_PACKETS
- password_complexity_rules :: SinceRevision [PasswordComplexityRules] DBMS_MIN_PROTOCOL_VERSION_WITH_PASSWORD_COMPLEXITY_RULES
- read_nonce :: SinceRevision UInt64 DBMS_MIN_REVISION_WITH_INTERSERVER_SECRET_V2
- settings :: SinceRevision DbSettings DBMS_MIN_REVISION_WITH_SERVER_SETTINGS
- server_query_plan_serialization_version :: SinceRevision UVarInt DBMS_MIN_REVISION_WITH_QUERY_PLAN_SERIALIZATION
- data PasswordComplexityRules = MkPasswordComplexityRules {}
- data ExceptionPacket = MkExceptionPacket {}
- data ProgressPacket = MkProgressPacket {
- rows :: UVarInt
- bytes :: UVarInt
- total_rows :: UVarInt
- total_bytes :: SinceRevision UVarInt DBMS_MIN_PROTOCOL_VERSION_WITH_TOTAL_BYTES_IN_PROGRESS
- wrote_rows :: SinceRevision UVarInt DBMS_MIN_PROTOCOL_VERSION_WITH_TOTAL_BYTES_IN_PROGRESS
- wrote_bytes :: SinceRevision UVarInt DBMS_MIN_REVISION_WITH_CLIENT_WRITE_INFO
- elapsed_ns :: SinceRevision UVarInt DBMS_MIN_REVISION_WITH_CLIENT_WRITE_INFO
- data ProfileInfo = MkProfileInfo {
- rows :: UVarInt
- blocks :: UVarInt
- bytes :: UVarInt
- applied_limit :: UInt8
- rows_before_limit :: UVarInt
- calculated_rows_before_limit :: UInt8
- applied_aggregation :: SinceRevision UInt8 DBMS_MIN_REVISION_WITH_ROWS_BEFORE_AGGREGATION
- rows_before_aggregation :: SinceRevision UVarInt DBMS_MIN_REVISION_WITH_ROWS_BEFORE_AGGREGATION
- data TableColumns = MkTableColumns {}
- addSetting :: forall (name :: Symbol) settType. KnownSetting name settType => settType -> DbSettings -> DbSettings
- mkDataPacket :: ChString -> UVarInt -> UVarInt -> DataPacket
- mkQueryPacket :: QueryPacketArgs -> ClientPacket
- data QueryPacketArgs = MkQueryPacketArgs {}
- mkHelloPacket :: String -> String -> String -> ProtocolRevision -> ClientPacket
- mkAddendum :: Addendum
- serverPacketToNum :: ServerPacket -> UVarInt
Protocol parts
Shared
Unsigned variable-length quantity encoding
Part of protocol implementation
Instances
data Revisioned (revisionNumber :: Nat) b a Source #
Protocol implementation part for backward compatilibity formalization
NB:
Be carefull with BeforeRevision value.
If **chosen protocol** revision would be >= **revisionNumber** then you would get an exception during serialization.
To avoid this:
- On client side - provide
AfterRevisionwith some empty value - On proxy side - provide server-to-server packets mapping with fallbacks on revision upgrade
Constructors
| BeforeRevision b | |
| AfterRevision a |
data ProtocolRevision Source #
Instances
Data packet
data DataPacket Source #
Constructors
| MkDataPacket | |
Fields
| |
Instances
Constructors
| MkBlockInfo | |
Fields
| |
Instances
| Generic BlockInfo Source # | |||||
Defined in ClickHaskell.Protocol.Data Associated Types
| |||||
| type Rep BlockInfo Source # | |||||
Defined in ClickHaskell.Protocol.Data type Rep BlockInfo = D1 ('MetaData "BlockInfo" "ClickHaskell.Protocol.Data" "ClickHaskell-1.1.0-DCaama8pTWmCtLrW6NrYWU" 'False) (C1 ('MetaCons "MkBlockInfo" 'PrefixI 'True) ((S1 ('MetaSel ('Just "field_num1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UVarInt) :*: S1 ('MetaSel ('Just "is_overflows") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UInt8)) :*: (S1 ('MetaSel ('Just "field_num2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UVarInt) :*: (S1 ('MetaSel ('Just "bucket_num") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int32) :*: S1 ('MetaSel ('Just "eof") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UVarInt))))) | |||||
Client
data ClientPacket where Source #
Constructors
| Hello :: HelloPacket -> ClientPacket | |
| Query :: QueryPacket -> ClientPacket | |
| Data :: DataPacket -> ClientPacket | |
| Cancel :: ClientPacket | |
| Ping :: ClientPacket | |
| TablesStatusRequest :: ClientPacket | |
| KeepAlive :: ClientPacket | |
| Scalar :: ClientPacket | |
| IgnoredPartUUIDs :: ClientPacket | |
| ReadTaskResponse :: ClientPacket | |
| MergeTreeReadTaskResponse :: ClientPacket | |
| SSHChallengeRequest :: ClientPacket | |
| SSHChallengeResponse :: ClientPacket |
Instances
| Generic ClientPacket Source # | |||||
Defined in ClickHaskell.Protocol.Client Associated Types
| |||||
| type Rep ClientPacket Source # | |||||
Defined in ClickHaskell.Protocol.Client type Rep ClientPacket = D1 ('MetaData "ClientPacket" "ClickHaskell.Protocol.Client" "ClickHaskell-1.1.0-DCaama8pTWmCtLrW6NrYWU" 'False) (((C1 ('MetaCons "Hello" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 HelloPacket)) :+: (C1 ('MetaCons "Query" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 QueryPacket)) :+: C1 ('MetaCons "Data" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DataPacket)))) :+: (C1 ('MetaCons "Cancel" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Ping" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TablesStatusRequest" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "KeepAlive" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Scalar" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IgnoredPartUUIDs" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ReadTaskResponse" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MergeTreeReadTaskResponse" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "SSHChallengeRequest" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SSHChallengeResponse" 'PrefixI 'False) (U1 :: Type -> Type))))) | |||||
Hello
data HelloPacket Source #
Constructors
| MkHelloPacket | |
Fields | |
Instances
| Generic HelloPacket Source # | |||||
Defined in ClickHaskell.Protocol.Client Associated Types
| |||||
| type Rep HelloPacket Source # | |||||
Defined in ClickHaskell.Protocol.Client type Rep HelloPacket = D1 ('MetaData "HelloPacket" "ClickHaskell.Protocol.Client" "ClickHaskell-1.1.0-DCaama8pTWmCtLrW6NrYWU" 'False) (C1 ('MetaCons "MkHelloPacket" 'PrefixI 'True) ((S1 ('MetaSel ('Just "client_name") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ChString) :*: (S1 ('MetaSel ('Just "client_version_major") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UVarInt) :*: S1 ('MetaSel ('Just "client_version_minor") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UVarInt))) :*: ((S1 ('MetaSel ('Just "tcp_protocol_version") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ProtocolRevision) :*: S1 ('MetaSel ('Just "default_database") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ChString)) :*: (S1 ('MetaSel ('Just "user") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ChString) :*: S1 ('MetaSel ('Just "pass") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ChString))))) | |||||
Constructors
| MkAddendum | |
Fields
| |
Query
data QueryPacket Source #
Constructors
| MkQueryPacket | |
Fields
| |
Instances
| Generic QueryPacket Source # | |||||
Defined in ClickHaskell.Protocol.Client Associated Types
| |||||
| type Rep QueryPacket Source # | |||||
Defined in ClickHaskell.Protocol.Client | |||||
data DbSettings Source #
Constructors
| MkDbSettings [DbSetting] |
data QueryParameters Source #
Constructors
| MkQueryParameters |
data QueryStage Source #
Constructors
| FetchColumns | |
| WithMergeableState | |
| Complete | |
| WithMergeableStateAfterAggregation | |
| WithMergeableStateAfterAggregationAndLimit |
Instances
| Enum QueryStage Source # | |
Defined in ClickHaskell.Protocol.Client Methods succ :: QueryStage -> QueryStage # pred :: QueryStage -> QueryStage # toEnum :: Int -> QueryStage # fromEnum :: QueryStage -> Int # enumFrom :: QueryStage -> [QueryStage] # enumFromThen :: QueryStage -> QueryStage -> [QueryStage] # enumFromTo :: QueryStage -> QueryStage -> [QueryStage] # enumFromThenTo :: QueryStage -> QueryStage -> QueryStage -> [QueryStage] # | |
data ClientInfo Source #
Constructors
| MkClientInfo | |
Fields
| |
Instances
| Generic ClientInfo Source # | |||||
Defined in ClickHaskell.Protocol.Client Associated Types
| |||||
| type Rep ClientInfo Source # | |||||
Defined in ClickHaskell.Protocol.Client | |||||
Constructors
| NoQuery | |
| InitialQuery | |
| SecondaryQuery |
Server
data ServerPacket where Source #
Constructors
| HelloResponse :: HelloResponse -> ServerPacket | |
| DataResponse :: DataPacket -> ServerPacket | |
| Exception :: ExceptionPacket -> ServerPacket | |
| Progress :: ProgressPacket -> ServerPacket | |
| Pong :: ServerPacket | |
| EndOfStream :: ServerPacket | |
| ProfileInfo :: ProfileInfo -> ServerPacket | |
| Totals :: ServerPacket | |
| Extremes :: ServerPacket | |
| TablesStatusResponse :: ServerPacket | |
| Log :: ServerPacket | |
| TableColumns :: TableColumns -> ServerPacket | |
| UUIDs :: ServerPacket | |
| ReadTaskRequest :: ServerPacket | |
| ProfileEvents :: ProfileEventsPacket -> ServerPacket | |
| UnknownPacket :: UVarInt -> ServerPacket |
Hello
data HelloResponse Source #
Constructors
| MkHelloResponse | |
Fields
| |
Instances
| Generic HelloResponse Source # | |||||
Defined in ClickHaskell.Protocol.Server Associated Types
| |||||
| type Rep HelloResponse Source # | |||||
Defined in ClickHaskell.Protocol.Server | |||||
data PasswordComplexityRules Source #
Constructors
| MkPasswordComplexityRules | |
Fields | |
Instances
| Generic PasswordComplexityRules Source # | |||||
Defined in ClickHaskell.Protocol.Server Associated Types
Methods from :: PasswordComplexityRules -> Rep PasswordComplexityRules x # to :: Rep PasswordComplexityRules x -> PasswordComplexityRules # | |||||
| type Rep PasswordComplexityRules Source # | |||||
Defined in ClickHaskell.Protocol.Server type Rep PasswordComplexityRules = D1 ('MetaData "PasswordComplexityRules" "ClickHaskell.Protocol.Server" "ClickHaskell-1.1.0-DCaama8pTWmCtLrW6NrYWU" 'False) (C1 ('MetaCons "MkPasswordComplexityRules" 'PrefixI 'True) (S1 ('MetaSel ('Just "original_pattern") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ChString) :*: S1 ('MetaSel ('Just "exception_message") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ChString))) | |||||
Exception
data ExceptionPacket Source #
Constructors
| MkExceptionPacket | |
Instances
| Generic ExceptionPacket Source # | |||||
Defined in ClickHaskell.Protocol.Server Associated Types
Methods from :: ExceptionPacket -> Rep ExceptionPacket x # to :: Rep ExceptionPacket x -> ExceptionPacket # | |||||
| Show ExceptionPacket Source # | |||||
Defined in ClickHaskell.Protocol.Server Methods showsPrec :: Int -> ExceptionPacket -> ShowS # show :: ExceptionPacket -> String # showList :: [ExceptionPacket] -> ShowS # | |||||
| type Rep ExceptionPacket Source # | |||||
Defined in ClickHaskell.Protocol.Server type Rep ExceptionPacket = D1 ('MetaData "ExceptionPacket" "ClickHaskell.Protocol.Server" "ClickHaskell-1.1.0-DCaama8pTWmCtLrW6NrYWU" 'False) (C1 ('MetaCons "MkExceptionPacket" 'PrefixI 'True) ((S1 ('MetaSel ('Just "code") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int32) :*: S1 ('MetaSel ('Just "name") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ChString)) :*: (S1 ('MetaSel ('Just "message") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ChString) :*: (S1 ('MetaSel ('Just "stack_trace") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ChString) :*: S1 ('MetaSel ('Just "nested") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UInt8))))) | |||||
Progress
data ProgressPacket Source #
Constructors
| MkProgressPacket | |
Fields
| |
Instances
| Generic ProgressPacket Source # | |||||
Defined in ClickHaskell.Protocol.Server Associated Types
Methods from :: ProgressPacket -> Rep ProgressPacket x # to :: Rep ProgressPacket x -> ProgressPacket # | |||||
| type Rep ProgressPacket Source # | |||||
Defined in ClickHaskell.Protocol.Server | |||||
ProfileInfo
data ProfileInfo Source #
Constructors
| MkProfileInfo | |
Fields
| |
Instances
| Generic ProfileInfo Source # | |||||
Defined in ClickHaskell.Protocol.Server Associated Types
| |||||
| type Rep ProfileInfo Source # | |||||
Defined in ClickHaskell.Protocol.Server | |||||
TableColumns
data TableColumns Source #
Constructors
| MkTableColumns | |
Fields | |
Instances
| Generic TableColumns Source # | |||||
Defined in ClickHaskell.Protocol.Server Associated Types
| |||||
| type Rep TableColumns Source # | |||||
Defined in ClickHaskell.Protocol.Server type Rep TableColumns = D1 ('MetaData "TableColumns" "ClickHaskell.Protocol.Server" "ClickHaskell-1.1.0-DCaama8pTWmCtLrW6NrYWU" 'False) (C1 ('MetaCons "MkTableColumns" 'PrefixI 'True) (S1 ('MetaSel ('Just "table_name") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ChString) :*: S1 ('MetaSel ('Just "table_columns") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ChString))) | |||||
API
addSetting :: forall (name :: Symbol) settType. KnownSetting name settType => settType -> DbSettings -> DbSettings Source #
mkDataPacket :: ChString -> UVarInt -> UVarInt -> DataPacket Source #
data QueryPacketArgs Source #
Constructors
| MkQueryPacketArgs | |
Fields
| |
mkHelloPacket :: String -> String -> String -> ProtocolRevision -> ClientPacket Source #