summaryrefslogtreecommitdiff
path: root/vendor/github.com/ncruces/go-sqlite3/driver/driver.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2024-06-22 09:59:29 +0000
committerLibravatar GitHub <noreply@github.com>2024-06-22 11:59:29 +0200
commit15e0bf6e5a57e60edf4a576db2dcb9bc07a163bf (patch)
tree1e12f30d28c8a9640121b16b526a817486ed17f2 /vendor/github.com/ncruces/go-sqlite3/driver/driver.go
parentupdate remaining gruf libraries relying on linkname (#3028) (diff)
downloadgotosocial-15e0bf6e5a57e60edf4a576db2dcb9bc07a163bf.tar.xz
[chore] update github.com/ncruces/go-sqlite3 -> v0.16.3 (#3029)
Diffstat (limited to 'vendor/github.com/ncruces/go-sqlite3/driver/driver.go')
-rw-r--r--vendor/github.com/ncruces/go-sqlite3/driver/driver.go31
1 files changed, 17 insertions, 14 deletions
diff --git a/vendor/github.com/ncruces/go-sqlite3/driver/driver.go b/vendor/github.com/ncruces/go-sqlite3/driver/driver.go
index b496f76ec..e7863b1b8 100644
--- a/vendor/github.com/ncruces/go-sqlite3/driver/driver.go
+++ b/vendor/github.com/ncruces/go-sqlite3/driver/driver.go
@@ -229,6 +229,7 @@ func (c *conn) Raw() *sqlite3.Conn {
return c.Conn
}
+// Deprecated: use BeginTx instead.
func (c *conn) Begin() (driver.Tx, error) {
return c.BeginTx(context.Background(), driver.TxOptions{})
}
@@ -301,7 +302,7 @@ func (c *conn) PrepareContext(ctx context.Context, query string) (driver.Stmt, e
s.Close()
return nil, util.TailErr
}
- return &stmt{Stmt: s, tmRead: c.tmRead, tmWrite: c.tmWrite}, nil
+ return &stmt{Stmt: s, tmRead: c.tmRead, tmWrite: c.tmWrite, inputs: -2}, nil
}
func (c *conn) ExecContext(ctx context.Context, query string, args []driver.NamedValue) (driver.Result, error) {
@@ -335,6 +336,7 @@ type stmt struct {
*sqlite3.Stmt
tmWrite sqlite3.TimeFormat
tmRead sqlite3.TimeFormat
+ inputs int
}
var (
@@ -345,12 +347,17 @@ var (
)
func (s *stmt) NumInput() int {
+ if s.inputs >= -1 {
+ return s.inputs
+ }
n := s.Stmt.BindCount()
for i := 1; i <= n; i++ {
if s.Stmt.BindName(i) != "" {
+ s.inputs = -1
return -1
}
}
+ s.inputs = n
return n
}
@@ -389,12 +396,7 @@ func (s *stmt) QueryContext(ctx context.Context, args []driver.NamedValue) (driv
return &rows{ctx: ctx, stmt: s}, nil
}
-func (s *stmt) setupBindings(args []driver.NamedValue) error {
- err := s.Stmt.ClearBindings()
- if err != nil {
- return err
- }
-
+func (s *stmt) setupBindings(args []driver.NamedValue) (err error) {
var ids [3]int
for _, arg := range args {
ids := ids[:0]
@@ -558,19 +560,20 @@ func (r *rows) Next(dest []driver.Value) error {
return err
}
-func (r *rows) decodeTime(i int, v any) (_ time.Time, _ bool) {
+func (r *rows) decodeTime(i int, v any) (_ time.Time, ok bool) {
if r.tmRead == sqlite3.TimeFormatDefault {
+ // handled by maybeTime
return
}
- switch r.declType(i) {
- case "DATE", "TIME", "DATETIME", "TIMESTAMP":
- // maybe
+ switch v.(type) {
+ case int64, float64, string:
+ // could be a time value
default:
return
}
- switch v.(type) {
- case int64, float64, string:
- // maybe
+ switch r.declType(i) {
+ case "DATE", "TIME", "DATETIME", "TIMESTAMP":
+ // could be a time value
default:
return
}