(b *testing.B)
| 887 | } |
| 888 | |
| 889 | func BenchmarkSelectManyRegisteredEnum(b *testing.B) { |
| 890 | conn := mustConnectString(b, os.Getenv("PGX_TEST_DATABASE")) |
| 891 | defer closeConn(b, conn) |
| 892 | |
| 893 | ctx := context.Background() |
| 894 | tx, err := conn.Begin(ctx) |
| 895 | require.NoError(b, err) |
| 896 | defer tx.Rollback(ctx) |
| 897 | |
| 898 | _, err = tx.Exec(context.Background(), "drop type if exists color;") |
| 899 | require.NoError(b, err) |
| 900 | |
| 901 | _, err = tx.Exec(ctx, `create type color as enum ('blue', 'green', 'orange')`) |
| 902 | require.NoError(b, err) |
| 903 | |
| 904 | var oid uint32 |
| 905 | err = conn.QueryRow(context.Background(), "select oid from pg_type where typname=$1;", "color").Scan(&oid) |
| 906 | require.NoError(b, err) |
| 907 | |
| 908 | conn.TypeMap().RegisterType(&pgtype.Type{Name: "color", OID: oid, Codec: &pgtype.EnumCodec{}}) |
| 909 | |
| 910 | var x, y, z string |
| 911 | for b.Loop() { |
| 912 | rows, err := conn.Query(ctx, "select 'blue'::color, 'green'::color, 'orange'::color from generate_series(1,10)") |
| 913 | if err != nil { |
| 914 | b.Fatal(err) |
| 915 | } |
| 916 | |
| 917 | for rows.Next() { |
| 918 | err = rows.Scan(&x, &y, &z) |
| 919 | if err != nil { |
| 920 | b.Fatal(err) |
| 921 | } |
| 922 | |
| 923 | if x != "blue" { |
| 924 | b.Fatal("unexpected result") |
| 925 | } |
| 926 | if y != "green" { |
| 927 | b.Fatal("unexpected result") |
| 928 | } |
| 929 | if z != "orange" { |
| 930 | b.Fatal("unexpected result") |
| 931 | } |
| 932 | } |
| 933 | |
| 934 | if rows.Err() != nil { |
| 935 | b.Fatal(rows.Err()) |
| 936 | } |
| 937 | } |
| 938 | } |
| 939 | |
| 940 | func getSelectRowsCounts(b *testing.B) []int64 { |
| 941 | var rowCounts []int64 |
nothing calls this directly
no test coverage detected