summaryrefslogtreecommitdiff
path: root/vendor/github.com/ncruces/go-sqlite3/driver
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2024-12-16 11:37:53 +0000
committerLibravatar GitHub <noreply@github.com>2024-12-16 11:37:53 +0000
commit9697df0955095cb9be7b5fa0c4408ae4523d8b08 (patch)
tree737d826b4ea8bc22c0645cbbea7ab143428e0bda /vendor/github.com/ncruces/go-sqlite3/driver
parentbump gruf/go-ffmpreg to v0.6.3 (#3624) (diff)
downloadgotosocial-9697df0955095cb9be7b5fa0c4408ae4523d8b08.tar.xz
bump ncruces/go-sqlite3 to v0.21.1 (#3625)
Diffstat (limited to 'vendor/github.com/ncruces/go-sqlite3/driver')
-rw-r--r--vendor/github.com/ncruces/go-sqlite3/driver/driver.go2
-rw-r--r--vendor/github.com/ncruces/go-sqlite3/driver/whitespace.go61
2 files changed, 62 insertions, 1 deletions
diff --git a/vendor/github.com/ncruces/go-sqlite3/driver/driver.go b/vendor/github.com/ncruces/go-sqlite3/driver/driver.go
index 477e9a940..b9bb03bb7 100644
--- a/vendor/github.com/ncruces/go-sqlite3/driver/driver.go
+++ b/vendor/github.com/ncruces/go-sqlite3/driver/driver.go
@@ -379,7 +379,7 @@ func (c *conn) PrepareContext(ctx context.Context, query string) (driver.Stmt, e
if err != nil {
return nil, err
}
- if tail != "" {
+ if notWhitespace(tail) {
s.Close()
return nil, util.TailErr
}
diff --git a/vendor/github.com/ncruces/go-sqlite3/driver/whitespace.go b/vendor/github.com/ncruces/go-sqlite3/driver/whitespace.go
new file mode 100644
index 000000000..8f45706f5
--- /dev/null
+++ b/vendor/github.com/ncruces/go-sqlite3/driver/whitespace.go
@@ -0,0 +1,61 @@
+package driver
+
+func notWhitespace(sql string) bool {
+ const (
+ code = iota
+ slash
+ minus
+ ccomment
+ sqlcomment
+ endcomment
+ )
+
+ state := code
+ for _, b := range ([]byte)(sql) {
+ if b == 0 {
+ break
+ }
+
+ switch state {
+ case code:
+ switch b {
+ case '/':
+ state = slash
+ case '-':
+ state = minus
+ case ' ', ';', '\t', '\n', '\v', '\f', '\r':
+ continue
+ default:
+ return true
+ }
+ case slash:
+ if b != '*' {
+ return true
+ }
+ state = ccomment
+ case minus:
+ if b != '-' {
+ return true
+ }
+ state = sqlcomment
+ case ccomment:
+ if b == '*' {
+ state = endcomment
+ }
+ case sqlcomment:
+ if b == '\n' {
+ state = code
+ }
+ case endcomment:
+ switch b {
+ case '/':
+ state = code
+ case '*':
+ state = endcomment
+ default:
+ state = ccomment
+ }
+ }
+ }
+ return state == slash || state == minus
+}