diff --git a/bench_test.go b/bench_test.go index e109742e..6296c917 100644 --- a/bench_test.go +++ b/bench_test.go @@ -5,6 +5,7 @@ import ( "context" "fmt" "os" + "strconv" "strings" "testing" "time" @@ -504,6 +505,13 @@ func benchmarkWriteNRowsViaInsert(b *testing.B, n int) { } } +type queryArgs []interface{} + +func (qa *queryArgs) Append(v interface{}) string { + *qa = append(*qa, v) + return "$" + strconv.Itoa(len(*qa)) +} + // note this function is only used for benchmarks -- it doesn't escape tableName // or columnNames func multiInsert(conn *pgx.Conn, tableName string, columnNames []string, rowSrc pgx.CopyFromSource) (int, error) { @@ -512,7 +520,7 @@ func multiInsert(conn *pgx.Conn, tableName string, columnNames []string, rowSrc rowCount := 0 sqlBuf := &bytes.Buffer{} - args := make(pgx.QueryArgs, 0) + args := make(queryArgs, 0) resetQuery := func() { sqlBuf.Reset() diff --git a/sql.go b/sql.go deleted file mode 100644 index 7ee0f2a0..00000000 --- a/sql.go +++ /dev/null @@ -1,29 +0,0 @@ -package pgx - -import ( - "strconv" -) - -// QueryArgs is a container for arguments to an SQL query. It is helpful when -// building SQL statements where the number of arguments is variable. -type QueryArgs []interface{} - -var placeholders []string - -func init() { - placeholders = make([]string, 64) - - for i := 1; i < 64; i++ { - placeholders[i] = "$" + strconv.Itoa(i) - } -} - -// Append adds a value to qa and returns the placeholder value for the -// argument. e.g. $1, $2, etc. -func (qa *QueryArgs) Append(v interface{}) string { - *qa = append(*qa, v) - if len(*qa) < len(placeholders) { - return placeholders[len(*qa)] - } - return "$" + strconv.Itoa(len(*qa)) -} diff --git a/sql_test.go b/sql_test.go deleted file mode 100644 index 25e3576d..00000000 --- a/sql_test.go +++ /dev/null @@ -1,36 +0,0 @@ -package pgx_test - -import ( - "strconv" - "testing" - - "github.com/jackc/pgx/v4" -) - -func TestQueryArgs(t *testing.T) { - var qa pgx.QueryArgs - - for i := 1; i < 512; i++ { - expectedPlaceholder := "$" + strconv.Itoa(i) - placeholder := qa.Append(i) - if placeholder != expectedPlaceholder { - t.Errorf(`Expected qa.Append to return "%s", but it returned "%s"`, expectedPlaceholder, placeholder) - } - } -} - -func BenchmarkQueryArgs(b *testing.B) { - for i := 0; i < b.N; i++ { - qa := pgx.QueryArgs(make([]interface{}, 0, 16)) - qa.Append("foo1") - qa.Append("foo2") - qa.Append("foo3") - qa.Append("foo4") - qa.Append("foo5") - qa.Append("foo6") - qa.Append("foo7") - qa.Append("foo8") - qa.Append("foo9") - qa.Append("foo10") - } -}