summaryrefslogtreecommitdiff
path: root/vendor/github.com/ncruces/go-sqlite3/vtab.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/vtab.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/vtab.go')
-rw-r--r--vendor/github.com/ncruces/go-sqlite3/vtab.go31
1 files changed, 23 insertions, 8 deletions
diff --git a/vendor/github.com/ncruces/go-sqlite3/vtab.go b/vendor/github.com/ncruces/go-sqlite3/vtab.go
index a330c98ff..7c19330bb 100644
--- a/vendor/github.com/ncruces/go-sqlite3/vtab.go
+++ b/vendor/github.com/ncruces/go-sqlite3/vtab.go
@@ -16,14 +16,15 @@ func CreateModule[T VTab](db *Conn, name string, create, connect VTabConstructor
var flags int
const (
- VTAB_CREATOR = 0x01
- VTAB_DESTROYER = 0x02
- VTAB_UPDATER = 0x04
- VTAB_RENAMER = 0x08
- VTAB_OVERLOADER = 0x10
- VTAB_CHECKER = 0x20
- VTAB_TXN = 0x40
- VTAB_SAVEPOINTER = 0x80
+ VTAB_CREATOR = 0x001
+ VTAB_DESTROYER = 0x002
+ VTAB_UPDATER = 0x004
+ VTAB_RENAMER = 0x008
+ VTAB_OVERLOADER = 0x010
+ VTAB_CHECKER = 0x020
+ VTAB_TXN = 0x040
+ VTAB_SAVEPOINTER = 0x080
+ VTAB_SHADOWTABS = 0x100
)
if create != nil {
@@ -52,6 +53,9 @@ func CreateModule[T VTab](db *Conn, name string, create, connect VTabConstructor
if implements[VTabSavepointer](vtab) {
flags |= VTAB_SAVEPOINTER
}
+ if implements[VTabShadowTabler](vtab) {
+ flags |= VTAB_SHADOWTABS
+ }
defer db.arena.mark()()
namePtr := db.arena.string(name)
@@ -174,6 +178,17 @@ type VTabOverloader interface {
FindFunction(arg int, name string) (ScalarFunction, IndexConstraintOp)
}
+// A VTabShadowTabler allows a virtual table to protect the content
+// of shadow tables from being corrupted by hostile SQL.
+//
+// Implementing this interface signals that a virtual table named
+// "mumble" reserves all table names starting with "mumble_".
+type VTabShadowTabler interface {
+ VTab
+ // https://sqlite.org/vtab.html#the_xshadowname_method
+ ShadowTables()
+}
+
// A VTabChecker allows a virtual table to report errors
// to the PRAGMA integrity_check and PRAGMA quick_check commands.
//