func (s *proxyStmt) Query(args []driver.Value) (driver.Rows, error) {
	return nil, errors.New("Stmt.Query is deprecated and no longer supported")
}
Query executes a query that may return rows, such as a
SELECT.

Deprecated: Drivers should implement StmtQueryContext instead (or additionally).
package copyist
import (
	"context"
	"database/sql/driver"
	"errors"
)
type proxyStmt struct {
	driver.Stmt
	stmt driver.Stmt
}
func (s *proxyStmt) Close() error {
	if IsRecording() {
		return s.stmt.Close()
	}
	return nil
}
func (s *proxyStmt) NumInput() int {
	if IsRecording() {
		num := s.stmt.NumInput()
		currentSession.AddRecord(&record{Typ: StmtNumInput, Args: recordArgs{num}})
		return num
	}
	rec := currentSession.VerifyRecord(StmtNumInput)
	return rec.Args[0].(int)
}
func (s *proxyStmt) Exec(args []driver.Value) (driver.Result, error) {
	return nil, errors.New("Stmt.Exec is deprecated and no longer supported")
}
func (s *proxyStmt) ExecContext(
	ctx context.Context, args []driver.NamedValue,
) (driver.Result, error) {
	if IsRecording() {
		var res driver.Result
		var err error
		if execCtx, ok := s.stmt.(driver.StmtExecContext); ok {
			res, err = execCtx.ExecContext(ctx, args)
		} else {
			var vals []driver.Value
			vals, err = namedValueToValue(args)
			if err != nil {
				return nil, err
			}
			res, err = s.stmt.Exec(vals)
		}
		currentSession.AddRecord(&record{Typ: StmtExec, Args: recordArgs{err}})
		if err != nil {
			return nil, err
		}
		return &proxyResult{res: res}, nil
	}
	rec := currentSession.VerifyRecord(StmtExec)
	err, _ := rec.Args[0].(error)
	if err != nil {
		return nil, err
	}
	return &proxyResult{}, nil
}