Skip to content

Commit b3c309a

Browse files
Feature sqlstate support (#215)
* feat: add error code for undefined column * Add gorm.ErrInvalidField error for 42703 SQLSTATE. * Add test for new supported error code. Signed-off-by: alireza <alirezaarzehgar82@gmail.com> * refactor: remove unnecessary json struct tags new json fields names was same as struct field names. It's default behavior of json package and we don't need them. Signed-off-by: alireza <alirezaarzehgar82@gmail.com> --------- Signed-off-by: alireza <alirezaarzehgar82@gmail.com>
1 parent f538e03 commit b3c309a

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

error_translator.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@ import (
1111
var errCodes = map[string]error{
1212
"23505": gorm.ErrDuplicatedKey,
1313
"23503": gorm.ErrForeignKeyViolated,
14+
"42703": gorm.ErrInvalidField,
1415
}
1516

1617
type ErrMessage struct {
17-
Code string `json:"Code"`
18-
Severity string `json:"Severity"`
19-
Message string `json:"Message"`
18+
Code string
19+
Severity string
20+
Message string
2021
}
2122

2223
// Translate it will translate the error to native gorm errors.

error_translator_test.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ package postgres
22

33
import (
44
"errors"
5+
"testing"
6+
57
"github.com/jackc/pgx/v5/pgconn"
68
"gorm.io/gorm"
7-
"testing"
89
)
910

1011
func TestDialector_Translate(t *testing.T) {
@@ -30,6 +31,11 @@ func TestDialector_Translate(t *testing.T) {
3031
args: args{err: &pgconn.PgError{Code: "23503"}},
3132
want: gorm.ErrForeignKeyViolated,
3233
},
34+
{
35+
name: "it should return gorm.ErrInvalidField error if the status code is 42703",
36+
args: args{err: &pgconn.PgError{Code: "42703"}},
37+
want: gorm.ErrInvalidField,
38+
},
3339
}
3440
for _, tt := range tests {
3541
t.Run(tt.name, func(t *testing.T) {

0 commit comments

Comments
 (0)