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

Function TestConnExecBatch

pgconn/pgconn_test.go:1760–1814  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1758}
1759
1760func TestConnExecBatch(t *testing.T) {
1761 t.Parallel()
1762
1763 ctx, cancel := context.WithTimeout(context.Background(), 120*time.Second)
1764 defer cancel()
1765
1766 pgConn, err := pgconn.Connect(ctx, os.Getenv("PGX_TEST_DATABASE"))
1767 require.NoError(t, err)
1768 defer closeConn(t, pgConn)
1769
1770 _, err = pgConn.Prepare(ctx, "ps1", "select $1::text", nil)
1771 require.NoError(t, err)
1772
1773 sd, err := pgConn.Prepare(ctx, "ps2", "select $1::text as name, $2::bigint as age", nil)
1774 require.NoError(t, err)
1775
1776 batch := &pgconn.Batch{}
1777
1778 batch.ExecParams("select $1::text", [][]byte{[]byte("ExecParams 1")}, nil, nil, nil)
1779 batch.ExecPrepared("ps1", [][]byte{[]byte("ExecPrepared 1")}, nil, nil)
1780 batch.ExecStatement(sd, [][]byte{[]byte("ExecStatement 1"), []byte("42")}, nil, nil)
1781 batch.ExecStatement(sd, [][]byte{[]byte("ExecStatement 2"), []byte("43")}, nil, []int16{pgx.BinaryFormatCode})
1782 batch.ExecStatement(sd, [][]byte{[]byte("ExecStatement 3"), []byte("44")}, nil, []int16{pgx.TextFormatCode, pgx.BinaryFormatCode})
1783 batch.ExecParams("select $1::text", [][]byte{[]byte("ExecParams 2")}, nil, nil, nil)
1784 results, err := pgConn.ExecBatch(ctx, batch).ReadAll()
1785 require.NoError(t, err)
1786 require.Len(t, results, 6)
1787
1788 require.Len(t, results[0].Rows, 1)
1789 require.Equal(t, "ExecParams 1", string(results[0].Rows[0][0]))
1790 assert.Equal(t, "SELECT 1", results[0].CommandTag.String())
1791
1792 require.Len(t, results[1].Rows, 1)
1793 require.Equal(t, "ExecPrepared 1", string(results[1].Rows[0][0]))
1794 assert.Equal(t, "SELECT 1", results[1].CommandTag.String())
1795
1796 require.Len(t, results[2].Rows, 1)
1797 require.Equal(t, "ExecStatement 1", string(results[2].Rows[0][0]))
1798 require.Equal(t, "42", string(results[2].Rows[0][1]))
1799 assert.Equal(t, "SELECT 1", results[2].CommandTag.String())
1800
1801 require.Len(t, results[3].Rows, 1)
1802 require.Equal(t, "ExecStatement 2", string(results[3].Rows[0][0]))
1803 require.Equal(t, []byte{0, 0, 0, 0, 0, 0, 0, 43}, results[3].Rows[0][1])
1804 assert.Equal(t, "SELECT 1", results[3].CommandTag.String())
1805
1806 require.Len(t, results[4].Rows, 1)
1807 require.Equal(t, "ExecStatement 3", string(results[4].Rows[0][0]))
1808 require.Equal(t, []byte{0, 0, 0, 0, 0, 0, 0, 44}, results[4].Rows[0][1])
1809 assert.Equal(t, "SELECT 1", results[4].CommandTag.String())
1810
1811 require.Len(t, results[5].Rows, 1)
1812 require.Equal(t, "ExecParams 2", string(results[5].Rows[0][0]))
1813 assert.Equal(t, "SELECT 1", results[2].CommandTag.String())
1814}
1815
1816type mockConnection struct {
1817 net.Conn

Callers

nothing calls this directly

Calls 10

ExecParamsMethod · 0.95
ExecPreparedMethod · 0.95
ExecStatementMethod · 0.95
ConnectFunction · 0.92
ReadAllMethod · 0.80
ExecBatchMethod · 0.80
closeConnFunction · 0.70
PrepareMethod · 0.65
LenMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected