go-gorm / postgres

GORM PostgreSQL driver
MIT License
239 stars 126 forks source link

1.4.6 breaks enums #171

Open zchenyu opened 1 year ago

zchenyu commented 1 year ago

GORM Playground Link

https://github.com/go-gorm/playground/pull/586

Description

This test fails after upgrading gorm.io/driver/postgres from v1.4.5 to v1.4.6

The test adds an enum type that contains a String() method

2023/03/24 14:56:40 testing postgres...
=== RUN   TestGORM

2023/03/24 14:56:40 /home/zchenyu/git8/playground/main_test.go:17 ERROR: invalid input syntax for type integer: "ONE" (SQLSTATE 22P02)
[1.317ms] [rows:0] INSERT INTO "companies" ("name","my_enum") VALUES ('jinzhu',1) RETURNING "id"

2023/03/24 14:56:40 /home/zchenyu/git8/playground/main_test.go:20 record not found
[0.721ms] [rows:0] SELECT * FROM "companies" WHERE "companies"."id" = 0 ORDER BY "companies"."id" LIMIT 1
    main_test.go:21: Failed, got error: record not found

Expected (with v1.4.5):

testing postgres...
2023/03/24 14:55:46 testing postgres...
=== RUN   TestGORM

2023/03/24 14:55:46 /home/zchenyu/git8/playground/main_test.go:17
[5.801ms] [rows:1] INSERT INTO "companies" ("name","my_enum") VALUES ('jinzhu',1) RETURNING "id"

2023/03/24 14:55:46 /home/zchenyu/git8/playground/main_test.go:20
[0.643ms] [rows:1] SELECT * FROM "companies" WHERE "companies"."id" = 1 ORDER BY "companies"."id" LIMIT 1
--- PASS: TestGORM (0.01s)
zchenyu commented 1 year ago

I noticed this only happens if PreferSimpleProtocol is set to true.

zchenyu commented 1 year ago

Bump. Any update on this? I'd like to be able to upgrade to latest to get this feature: https://github.com/go-gorm/postgres/pull/179/files

But I'm blocked by this bug