(message: Message)
| 75 | * https://www.postgresql.org/docs/14/protocol-error-fields.html |
| 76 | */ |
| 77 | export function parseNoticeMessage(message: Message): Notice { |
| 78 | // deno-lint-ignore no-explicit-any |
| 79 | const error_fields: any = {}; |
| 80 | |
| 81 | let byte: number; |
| 82 | let field_code: string; |
| 83 | let field_value: string; |
| 84 | |
| 85 | while ((byte = message.reader.readByte())) { |
| 86 | field_code = String.fromCharCode(byte); |
| 87 | field_value = message.reader.readCString(); |
| 88 | |
| 89 | switch (field_code) { |
| 90 | case "S": |
| 91 | error_fields.severity = field_value; |
| 92 | break; |
| 93 | case "C": |
| 94 | error_fields.code = field_value; |
| 95 | break; |
| 96 | case "M": |
| 97 | error_fields.message = field_value; |
| 98 | break; |
| 99 | case "D": |
| 100 | error_fields.detail = field_value; |
| 101 | break; |
| 102 | case "H": |
| 103 | error_fields.hint = field_value; |
| 104 | break; |
| 105 | case "P": |
| 106 | error_fields.position = field_value; |
| 107 | break; |
| 108 | case "p": |
| 109 | error_fields.internalPosition = field_value; |
| 110 | break; |
| 111 | case "q": |
| 112 | error_fields.internalQuery = field_value; |
| 113 | break; |
| 114 | case "W": |
| 115 | error_fields.where = field_value; |
| 116 | break; |
| 117 | case "s": |
| 118 | error_fields.schema = field_value; |
| 119 | break; |
| 120 | case "t": |
| 121 | error_fields.table = field_value; |
| 122 | break; |
| 123 | case "c": |
| 124 | error_fields.column = field_value; |
| 125 | break; |
| 126 | case "d": |
| 127 | error_fields.dataTypeName = field_value; |
| 128 | break; |
| 129 | case "n": |
| 130 | error_fields.constraint = field_value; |
| 131 | break; |
| 132 | case "F": |
| 133 | error_fields.file = field_value; |
| 134 | break; |
no test coverage detected