| package database |
| |
| import ( |
| "fmt" |
| ) |
| |
| // Error should be used for errors involving queries ran against the database |
| type Error struct { |
| // Optional: the line number |
| Line uint |
| |
| // Query is a query excerpt |
| Query []byte |
| |
| // Err is a useful/helping error message for humans |
| Err string |
| |
| // OrigErr is the underlying error |
| OrigErr error |
| } |
| |
| func (e Error) Error() string { |
| if len(e.Err) == 0 { |
| return fmt.Sprintf("%v in line %v: %s", e.OrigErr, e.Line, e.Query) |
| } |
| return fmt.Sprintf("%v in line %v: %s (details: %v)", e.Err, e.Line, e.Query, e.OrigErr) |
| } |