(t testing.TB, db *sql.DB, minVersion int64)
| 55 | } |
| 56 | |
| 57 | func skipPostgreSQLVersionLessThan(t testing.TB, db *sql.DB, minVersion int64) { |
| 58 | conn, err := db.Conn(context.Background()) |
| 59 | require.NoError(t, err) |
| 60 | defer conn.Close() |
| 61 | |
| 62 | err = conn.Raw(func(driverConn any) error { |
| 63 | conn := driverConn.(*stdlib.Conn).Conn() |
| 64 | serverVersionStr := conn.PgConn().ParameterStatus("server_version") |
| 65 | serverVersionStr = regexp.MustCompile(`^[0-9]+`).FindString(serverVersionStr) |
| 66 | // if not PostgreSQL do nothing |
| 67 | if serverVersionStr == "" { |
| 68 | return nil |
| 69 | } |
| 70 | |
| 71 | serverVersion, err := strconv.ParseInt(serverVersionStr, 10, 64) |
| 72 | if err != nil { |
| 73 | return err |
| 74 | } |
| 75 | |
| 76 | if serverVersion < minVersion { |
| 77 | t.Skipf("Test requires PostgreSQL v%d+", minVersion) |
| 78 | } |
| 79 | |
| 80 | return nil |
| 81 | }) |
| 82 | require.NoError(t, err) |
| 83 | } |
| 84 | |
| 85 | func testWithAllQueryExecModes(t *testing.T, f func(t *testing.T, db *sql.DB)) { |
| 86 | for _, mode := range []pgx.QueryExecMode{ |
no test coverage detected