https://github.com/jackc/pgx/issues/1753#issuecomment-1746033281 https://github.com/jackc/pgx/issues/1754#issuecomment-1752004634
(t *testing.T)
| 800 | // https://github.com/jackc/pgx/issues/1753#issuecomment-1746033281 |
| 801 | // https://github.com/jackc/pgx/issues/1754#issuecomment-1752004634 |
| 802 | func TestConnMultiplePrepareAndDeallocate(t *testing.T) { |
| 803 | testWithAllQueryExecModes(t, func(t *testing.T, db *sql.DB) { |
| 804 | skipCockroachDB(t, db, "Server does not support pg_prepared_statements") |
| 805 | |
| 806 | sql := "select 42" |
| 807 | stmt1, err := db.PrepareContext(context.Background(), sql) |
| 808 | require.NoError(t, err) |
| 809 | stmt2, err := db.PrepareContext(context.Background(), sql) |
| 810 | require.NoError(t, err) |
| 811 | err = stmt1.Close() |
| 812 | require.NoError(t, err) |
| 813 | |
| 814 | var preparedStmtCount int64 |
| 815 | err = db.QueryRowContext(context.Background(), "select count(*) from pg_prepared_statements where statement = $1", sql).Scan(&preparedStmtCount) |
| 816 | require.NoError(t, err) |
| 817 | require.EqualValues(t, 1, preparedStmtCount) |
| 818 | |
| 819 | err = stmt2.Close() // err isn't as useful as it should be as database/sql will ignore errors from Deallocate. |
| 820 | require.NoError(t, err) |
| 821 | |
| 822 | err = db.QueryRowContext(context.Background(), "select count(*) from pg_prepared_statements where statement = $1", sql).Scan(&preparedStmtCount) |
| 823 | require.NoError(t, err) |
| 824 | require.EqualValues(t, 0, preparedStmtCount) |
| 825 | }) |
| 826 | } |
| 827 | |
| 828 | func TestConnExecContextSuccess(t *testing.T) { |
| 829 | testWithAllQueryExecModes(t, func(t *testing.T, db *sql.DB) { |
nothing calls this directly
no test coverage detected