MCPcopy
hub / github.com/jackc/pgx / BenchmarkSelectManyRegisteredEnum

Function BenchmarkSelectManyRegisteredEnum

bench_test.go:889–938  ·  view source on GitHub ↗
(b *testing.B)

Source from the content-addressed store, hash-verified

887}
888
889func 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
940func getSelectRowsCounts(b *testing.B) []int64 {
941 var rowCounts []int64

Callers

nothing calls this directly

Calls 12

mustConnectStringFunction · 0.85
RegisterTypeMethod · 0.80
TypeMapMethod · 0.80
closeConnFunction · 0.70
BeginMethod · 0.65
RollbackMethod · 0.65
ExecMethod · 0.65
ScanMethod · 0.65
QueryRowMethod · 0.65
QueryMethod · 0.65
NextMethod · 0.65
ErrMethod · 0.65

Tested by

no test coverage detected