@@ -110,8 +110,7 @@ data ServerMessage
110
110
| EmptyQueryResponse
111
111
| ErrorResponse ErrorDesc
112
112
| NoData
113
- -- We dont store content of notice at all
114
- | NoticeResponse
113
+ | NoticeResponse NoticeDesc
115
114
| NotificationResponse
116
115
ServerProccessId
117
116
ChannelName
@@ -130,7 +129,7 @@ data FieldDescription = FieldDescription {
130
129
fieldName :: B. ByteString
131
130
-- the object ID of the table
132
131
, fieldTableOid :: Oid
133
- -- the attribute number of the column;
132
+ -- the attribute number of the column
134
133
, fieldColumnNumber :: Int16
135
134
-- Oid type
136
135
, fieldTypeOid :: Oid
@@ -151,18 +150,53 @@ data ErrorSeverity
151
150
| UnknownErrorSeverity
152
151
deriving (Show , Eq )
153
152
153
+ data NoticeSeverity
154
+ = SeverityWarning
155
+ | SeverityNotice
156
+ | SeverityDebug
157
+ | SeverityInfo
158
+ | SeverityLog
159
+ | UnknownNoticeSeverity
160
+ deriving (Show , Eq )
161
+
154
162
data ErrorDesc = ErrorDesc
155
- { errorSeverity :: ErrorSeverity
156
- , errorCode :: B. ByteString
157
- , errorMessage :: B. ByteString
158
- , errorDetail :: Maybe B. ByteString
159
- , errorHint :: Maybe B. ByteString
160
- , errorQuery :: Maybe B. ByteString
161
- , errorSchema :: Maybe B. ByteString
162
- , errorTable :: Maybe B. ByteString
163
- , errorColumn :: Maybe B. ByteString
164
- , errorDataType :: Maybe B. ByteString
165
- , errorConstraint :: Maybe B. ByteString
163
+ { errorSeverity :: ErrorSeverity
164
+ , errorCode :: B. ByteString
165
+ , errorMessage :: B. ByteString
166
+ , errorDetail :: Maybe B. ByteString
167
+ , errorHint :: Maybe B. ByteString
168
+ , errorPosition :: Maybe Int
169
+ , errorInternalPosition :: Maybe Int
170
+ , errorInternalQuery :: Maybe B. ByteString
171
+ , errorContext :: Maybe B. ByteString
172
+ , errorSchema :: Maybe B. ByteString
173
+ , errorTable :: Maybe B. ByteString
174
+ , errorColumn :: Maybe B. ByteString
175
+ , errorDataType :: Maybe B. ByteString
176
+ , errorConstraint :: Maybe B. ByteString
177
+ , errorSourceFilename :: Maybe B. ByteString
178
+ , errorSourceLine :: Maybe B. Int
179
+ , errorRoutine :: Maybe B. ByteString
180
+ } deriving (Show )
181
+
182
+ data NoticeDesc = NoticeDesc
183
+ { noticeSeverity :: NoticeSeverity
184
+ , noticeCode :: B. ByteString
185
+ , noticeMessage :: B. ByteString
186
+ , noticeDetail :: Maybe B. ByteString
187
+ , noticeHint :: Maybe B. ByteString
188
+ , noticePosition :: Maybe Int
189
+ , noticeInternalPosition :: Maybe Int
190
+ , noticeInternalQuery :: Maybe B. ByteString
191
+ , noticeContext :: Maybe B. ByteString
192
+ , noticeSchema :: Maybe B. ByteString
193
+ , noticeTable :: Maybe B. ByteString
194
+ , noticeColumn :: Maybe B. ByteString
195
+ , noticeDataType :: Maybe B. ByteString
196
+ , noticeConstraint :: Maybe B. ByteString
197
+ , noticeSourceFilename :: Maybe B. ByteString
198
+ , noticeSourceLine :: Maybe B. Int
199
+ , noticeRoutine :: Maybe B. ByteString
166
200
} deriving (Show )
167
201
168
202
-- TODO
@@ -176,6 +210,4 @@ data ErrorDesc = ErrorDesc
176
210
-- * NOTICE bind command can have different formats for parameters and results
177
211
-- but we assume that there will be one format for all.
178
212
-- * We dont store parameters of connection that may change after startup
179
- -- * We dont store all possible message fields in error|notice responses
180
- -- * We dont parse content of notice response
181
213
0 commit comments