summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/denisenkom/go-mssqldb/mssql_go19.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/denisenkom/go-mssqldb/mssql_go19.go')
-rw-r--r--vendor/github.com/denisenkom/go-mssqldb/mssql_go19.go64
1 files changed, 64 insertions, 0 deletions
diff --git a/vendor/github.com/denisenkom/go-mssqldb/mssql_go19.go b/vendor/github.com/denisenkom/go-mssqldb/mssql_go19.go
new file mode 100644
index 0000000000..250151abc3
--- /dev/null
+++ b/vendor/github.com/denisenkom/go-mssqldb/mssql_go19.go
@@ -0,0 +1,64 @@
+// +build go1.9
+
+package mssql
+
+import (
+ "database/sql"
+ "database/sql/driver"
+ "fmt"
+ // "github.com/cockroachdb/apd"
+)
+
+// Type alias provided for compibility.
+//
+// Deprecated: users should transition to the new names when possible.
+type MssqlDriver = Driver
+type MssqlBulk = Bulk
+type MssqlBulkOptions = BulkOptions
+type MssqlConn = Conn
+type MssqlResult = Result
+type MssqlRows = Rows
+type MssqlStmt = Stmt
+
+var _ driver.NamedValueChecker = &Conn{}
+
+func (c *Conn) CheckNamedValue(nv *driver.NamedValue) error {
+ switch v := nv.Value.(type) {
+ case sql.Out:
+ if c.outs == nil {
+ c.outs = make(map[string]interface{})
+ }
+ c.outs[nv.Name] = v.Dest
+
+ // Unwrap the Out value and check the inner value.
+ lnv := *nv
+ lnv.Value = v.Dest
+ err := c.CheckNamedValue(&lnv)
+ if err != nil {
+ if err != driver.ErrSkip {
+ return err
+ }
+ lnv.Value, err = driver.DefaultParameterConverter.ConvertValue(lnv.Value)
+ if err != nil {
+ return err
+ }
+ }
+ nv.Value = sql.Out{Dest: lnv.Value}
+ return nil
+ // case *apd.Decimal:
+ // return nil
+ default:
+ return driver.ErrSkip
+ }
+}
+
+func (s *Stmt) makeParamExtra(val driver.Value) (res Param, err error) {
+ switch val := val.(type) {
+ case sql.Out:
+ res, err = s.makeParam(val.Dest)
+ res.Flags = fByRevValue
+ default:
+ err = fmt.Errorf("mssql: unknown type for %T", val)
+ }
+ return
+}