(t *testing.T)
| 1758 | } |
| 1759 | |
| 1760 | func 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 | |
| 1816 | type mockConnection struct { |
| 1817 | net.Conn |
nothing calls this directly
no test coverage detected