module Hasql.Core.Protocol.Model where
import Hasql.Prelude
newtype DataFormat =
DataFormat Word16
pattern TextDataFormat =
DataFormat 0
pattern BinaryDataFormat =
DataFormat 1
newtype MessageType =
MessageType Word8
deriving (Eq, Ord)
instance Show MessageType where
show =
\case
AuthenticationMessageType -> "AuthenticationMessageType"
KeyDataMessageType -> "KeyDataMessageType"
BindCompleteMessageType -> "BindCompleteMessageType"
CloseCompleteMessageType -> "CloseCompleteMessageType"
CommandCompleteMessageType -> "CommandCompleteMessageType"
CopyOutDataMessageType -> "CopyOutDataMessageType"
CopyOutDoneMessageType -> "CopyOutDoneMessageType"
CopyInResponseMessageType -> "CopyInResponseMessageType"
CopyOutMessageType -> "CopyOutMessageType"
CopyBothMessageType -> "CopyBothMessageType"
DataRowMessageType -> "DataRowMessageType"
EmptyQueryMessageType -> "EmptyQueryMessageType"
ErrorMessageType -> "ErrorMessageType"
FunctionCallMessageType -> "FunctionCallMessageType"
NoDataMessageType -> "NoDataMessageType"
NoticeMessageType -> "NoticeMessageType"
NotificationMessageType -> "NotificationMessageType"
ParameterDescriptionMessageType -> "ParameterDescriptionMessageType"
ParameterStatusMessageType -> "ParameterStatusMessageType"
ParseCompleteMessageType -> "ParseCompleteMessageType"
PortalSuspendedMessageType -> "PortalSuspendedMessageType"
ReadyForQueryMessageType -> "ReadyForQueryMessageType"
RowDescriptionMessageType -> "RowDescriptionMessageType"
MessageType x -> "MessageType " <> show x
pattern AuthenticationMessageType =
MessageType 82
pattern KeyDataMessageType =
MessageType 75
pattern BindCompleteMessageType =
MessageType 50
pattern CloseCompleteMessageType =
MessageType 51
pattern CommandCompleteMessageType =
MessageType 67
pattern CopyOutDataMessageType =
MessageType 100
pattern CopyOutDoneMessageType =
MessageType 99
pattern CopyInResponseMessageType =
MessageType 71
pattern CopyOutMessageType =
MessageType 72
pattern CopyBothMessageType =
MessageType 87
pattern DataRowMessageType =
MessageType 68
pattern EmptyQueryMessageType =
MessageType 73
pattern ErrorMessageType =
MessageType 69
pattern FunctionCallMessageType =
MessageType 86
pattern NoDataMessageType =
MessageType 110
pattern NoticeMessageType =
MessageType 78
pattern NotificationMessageType =
MessageType 65
pattern ParameterDescriptionMessageType =
MessageType 116
pattern ParameterStatusMessageType =
MessageType 83
pattern ParseCompleteMessageType =
MessageType 49
pattern PortalSuspendedMessageType =
MessageType 115
pattern ReadyForQueryMessageType =
MessageType 90
pattern RowDescriptionMessageType =
MessageType 84
newtype PayloadLength =
PayloadLength Int32
pattern NullPayloadLength =
PayloadLength (1)
data Payload =
NullPayload |
BytesPayload !ByteString
newtype NoticeFieldType =
NoticeFieldType Word8
pattern CodeNoticeFieldType =
NoticeFieldType 0x43
pattern ColumnNoticeFieldType =
NoticeFieldType 0x63
pattern ConstraintNoticeFieldType =
NoticeFieldType 0x6E
pattern ContextNoticeFieldType =
NoticeFieldType 0x57
pattern DataTypeNoticeFieldType =
NoticeFieldType 0x64
pattern DetailNoticeFieldType =
NoticeFieldType 0x44
pattern FileNoticeFieldType =
NoticeFieldType 0x46
pattern HintNoticeFieldType =
NoticeFieldType 0x48
pattern InternalPositionNoticeFieldType =
NoticeFieldType 0x70
pattern InternalQueryNoticeFieldType =
NoticeFieldType 0x71
pattern LineNoticeFieldType =
NoticeFieldType 0x4C
pattern MessageNoticeFieldType =
NoticeFieldType 0x4D
pattern PositionNoticeFieldType =
NoticeFieldType 0x50
pattern RoutineNoticeFieldType =
NoticeFieldType 0x52
pattern SchemaNoticeFieldType =
NoticeFieldType 0x73
pattern SeverityNoticeFieldType =
NoticeFieldType 0x53
pattern TableNoticeFieldType =
NoticeFieldType 0x74
data Error =
Error !ByteString !ByteString
data AuthenticationMessage =
OkAuthenticationMessage |
ClearTextPasswordAuthenticationMessage |
MD5PasswordAuthenticationMessage !ByteString
deriving (Show, Eq)
data NotificationMessage =
NotificationMessage !Word32 !ByteString !ByteString