mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-26 12:27:06 +00:00 
			
		
		
		
	Vendor Update (#14496)
* update code.gitea.io/sdk/gitea v0.13.1 -> v0.13.2 * update github.com/go-swagger/go-swagger v0.25.0 -> v0.26.0 * update github.com/google/uuid v1.1.2 -> v1.2.0 * update github.com/klauspost/compress v1.11.3 -> v1.11.7 * update github.com/lib/pq 083382b7e6fc -> v1.9.0 * update github.com/markbates/goth v1.65.0 -> v1.66.1 * update github.com/mattn/go-sqlite3 v1.14.4 -> v1.14.6 * update github.com/mgechev/revive 246eac737dc7 -> v1.0.3 * update github.com/minio/minio-go/v7 v7.0.6 -> v7.0.7 * update github.com/niklasfasching/go-org v1.3.2 -> v1.4.0 * update github.com/olivere/elastic/v7 v7.0.21 -> v7.0.22 * update github.com/pquerna/otp v1.2.0 -> v1.3.0 * update github.com/xanzy/go-gitlab v0.39.0 -> v0.42.0 * update github.com/yuin/goldmark v1.2.1 -> v1.3.1
This commit is contained in:
		
							
								
								
									
										4
									
								
								vendor/github.com/mattn/go-sqlite3/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/mattn/go-sqlite3/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -15,7 +15,7 @@ Latest stable version is v1.14 or later not v2. | ||||
|  | ||||
| sqlite3 driver conforming to the built-in database/sql interface | ||||
|  | ||||
| Supported Golang version: See .github/workflows/go.yaml | ||||
| Supported Golang version: See [.github/workflows/go.yaml](./.github/workflows/go.yaml) | ||||
|  | ||||
| [This package follows the official Golang Release Policy.](https://golang.org/doc/devel/release.html#policy) | ||||
|  | ||||
| @@ -125,6 +125,8 @@ Boolean values can be one of: | ||||
| | Time Zone Location | `_loc` | auto | Specify location of time format. | | ||||
| | Transaction Lock | `_txlock` | <ul><li>immediate</li><li>deferred</li><li>exclusive</li></ul> | Specify locking behavior for transactions. | | ||||
| | Writable Schema | `_writable_schema` | `Boolean` | When this pragma is on, the SQLITE_MASTER tables in which database can be changed using ordinary UPDATE, INSERT, and DELETE statements. Warning: misuse of this pragma can easily result in a corrupt database file. | | ||||
| | Cache Size | `_cache_size` | `int` | Maximum cache size; default is 2000K (2M). See [PRAGMA cache_size](https://sqlite.org/pragma.html#pragma_cache_size) | | ||||
|  | ||||
|  | ||||
| ## DSN Examples | ||||
|  | ||||
|   | ||||
							
								
								
									
										35
									
								
								vendor/github.com/mattn/go-sqlite3/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										35
									
								
								vendor/github.com/mattn/go-sqlite3/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -79,9 +79,8 @@ Then, you can use this extension. | ||||
|  | ||||
| Connection Hook | ||||
|  | ||||
| You can hook and inject your code when the connection is established. database/sql | ||||
| doesn't provide a way to get native go-sqlite3 interfaces. So if you want, | ||||
| you need to set ConnectHook and get the SQLiteConn. | ||||
| You can hook and inject your code when the connection is established by setting | ||||
| ConnectHook to get the SQLiteConn. | ||||
|  | ||||
| 	sql.Register("sqlite3_with_hook_example", | ||||
| 			&sqlite3.SQLiteDriver{ | ||||
| @@ -91,21 +90,45 @@ you need to set ConnectHook and get the SQLiteConn. | ||||
| 					}, | ||||
| 			}) | ||||
|  | ||||
| You can also use database/sql.Conn.Raw (Go >= 1.13): | ||||
|  | ||||
| 	conn, err := db.Conn(context.Background()) | ||||
| 	// if err != nil { ... } | ||||
| 	defer conn.Close() | ||||
| 	err = conn.Raw(func (driverConn interface{}) error { | ||||
| 		sqliteConn := driverConn.(*sqlite3.SQLiteConn) | ||||
| 		// ... use sqliteConn | ||||
| 	}) | ||||
| 	// if err != nil { ... } | ||||
|  | ||||
| Go SQlite3 Extensions | ||||
|  | ||||
| If you want to register Go functions as SQLite extension functions, | ||||
| call RegisterFunction from ConnectHook. | ||||
| If you want to register Go functions as SQLite extension functions | ||||
| you can make a custom driver by calling RegisterFunction from | ||||
| ConnectHook. | ||||
|  | ||||
| 	regex = func(re, s string) (bool, error) { | ||||
| 		return regexp.MatchString(re, s) | ||||
| 	} | ||||
| 	sql.Register("sqlite3_with_go_func", | ||||
| 	sql.Register("sqlite3_extended", | ||||
| 			&sqlite3.SQLiteDriver{ | ||||
| 					ConnectHook: func(conn *sqlite3.SQLiteConn) error { | ||||
| 						return conn.RegisterFunc("regexp", regex, true) | ||||
| 					}, | ||||
| 			}) | ||||
|  | ||||
| You can then use the custom driver by passing its name to sql.Open. | ||||
|  | ||||
| 	var i int | ||||
| 	conn, err := sql.Open("sqlite3_extended", "./foo.db") | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
| 	} | ||||
| 	err = db.QueryRow(`SELECT regexp("foo.*", "seafood")`).Scan(&i) | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
| 	} | ||||
|  | ||||
| See the documentation of RegisterFunc for more details. | ||||
|  | ||||
| */ | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/github.com/mattn/go-sqlite3/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/mattn/go-sqlite3/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,3 +1,3 @@ | ||||
| module github.com/mattn/go-sqlite3 | ||||
|  | ||||
| go 1.10 | ||||
| go 1.12 | ||||
|   | ||||
							
								
								
									
										2677
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2677
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										79
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										79
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -124,9 +124,9 @@ extern "C" { | ||||
| ** [sqlite3_libversion_number()], [sqlite3_sourceid()], | ||||
| ** [sqlite_version()] and [sqlite_source_id()]. | ||||
| */ | ||||
| #define SQLITE_VERSION        "3.33.0" | ||||
| #define SQLITE_VERSION_NUMBER 3033000 | ||||
| #define SQLITE_SOURCE_ID      "2020-08-14 13:23:32 fca8dc8b578f215a969cd899336378966156154710873e68b3d9ac5881b0ff3f" | ||||
| #define SQLITE_VERSION        "3.34.0" | ||||
| #define SQLITE_VERSION_NUMBER 3034000 | ||||
| #define SQLITE_SOURCE_ID      "2020-12-01 16:14:00 a26b6597e3ae272231b96f9982c3bcc17ddec2f2b6eb4df06a224b91089fed5b" | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: Run-Time Library Version Numbers | ||||
| @@ -505,6 +505,7 @@ SQLITE_API int sqlite3_exec( | ||||
| #define SQLITE_IOERR_COMMIT_ATOMIC     (SQLITE_IOERR | (30<<8)) | ||||
| #define SQLITE_IOERR_ROLLBACK_ATOMIC   (SQLITE_IOERR | (31<<8)) | ||||
| #define SQLITE_IOERR_DATA              (SQLITE_IOERR | (32<<8)) | ||||
| #define SQLITE_IOERR_CORRUPTFS         (SQLITE_IOERR | (33<<8)) | ||||
| #define SQLITE_LOCKED_SHAREDCACHE      (SQLITE_LOCKED |  (1<<8)) | ||||
| #define SQLITE_LOCKED_VTAB             (SQLITE_LOCKED |  (2<<8)) | ||||
| #define SQLITE_BUSY_RECOVERY           (SQLITE_BUSY   |  (1<<8)) | ||||
| @@ -6187,6 +6188,57 @@ SQLITE_API const char *sqlite3_db_filename(sqlite3 *db, const char *zDbName); | ||||
| */ | ||||
| SQLITE_API int sqlite3_db_readonly(sqlite3 *db, const char *zDbName); | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: Determine the transaction state of a database | ||||
| ** METHOD: sqlite3 | ||||
| ** | ||||
| ** ^The sqlite3_txn_state(D,S) interface returns the current | ||||
| ** [transaction state] of schema S in database connection D.  ^If S is NULL, | ||||
| ** then the highest transaction state of any schema on database connection D | ||||
| ** is returned.  Transaction states are (in order of lowest to highest): | ||||
| ** <ol> | ||||
| ** <li value="0"> SQLITE_TXN_NONE | ||||
| ** <li value="1"> SQLITE_TXN_READ | ||||
| ** <li value="2"> SQLITE_TXN_WRITE | ||||
| ** </ol> | ||||
| ** ^If the S argument to sqlite3_txn_state(D,S) is not the name of | ||||
| ** a valid schema, then -1 is returned. | ||||
| */ | ||||
| SQLITE_API int sqlite3_txn_state(sqlite3*,const char *zSchema); | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: Allowed return values from [sqlite3_txn_state()] | ||||
| ** KEYWORDS: {transaction state} | ||||
| ** | ||||
| ** These constants define the current transaction state of a database file. | ||||
| ** ^The [sqlite3_txn_state(D,S)] interface returns one of these | ||||
| ** constants in order to describe the transaction state of schema S | ||||
| ** in [database connection] D. | ||||
| ** | ||||
| ** <dl> | ||||
| ** [[SQLITE_TXN_NONE]] <dt>SQLITE_TXN_NONE</dt> | ||||
| ** <dd>The SQLITE_TXN_NONE state means that no transaction is currently | ||||
| ** pending.</dd> | ||||
| ** | ||||
| ** [[SQLITE_TXN_READ]] <dt>SQLITE_TXN_READ</dt> | ||||
| ** <dd>The SQLITE_TXN_READ state means that the database is currently | ||||
| ** in a read transaction.  Content has been read from the database file | ||||
| ** but nothing in the database file has changed.  The transaction state | ||||
| ** will advanced to SQLITE_TXN_WRITE if any changes occur and there are | ||||
| ** no other conflicting concurrent write transactions.  The transaction | ||||
| ** state will revert to SQLITE_TXN_NONE following a [ROLLBACK] or | ||||
| ** [COMMIT].</dd> | ||||
| ** | ||||
| ** [[SQLITE_TXN_WRITE]] <dt>SQLITE_TXN_WRITE</dt> | ||||
| ** <dd>The SQLITE_TXN_WRITE state means that the database is currently | ||||
| ** in a write transaction.  Content has been written to the database file | ||||
| ** but has not yet committed.  The transaction state will change to | ||||
| ** to SQLITE_TXN_NONE at the next [ROLLBACK] or [COMMIT].</dd> | ||||
| */ | ||||
| #define SQLITE_TXN_NONE  0 | ||||
| #define SQLITE_TXN_READ  1 | ||||
| #define SQLITE_TXN_WRITE 2 | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: Find the next prepared statement | ||||
| ** METHOD: sqlite3 | ||||
| @@ -7713,7 +7765,8 @@ SQLITE_API int sqlite3_test_control(int op, ...); | ||||
| #define SQLITE_TESTCTRL_RESULT_INTREAL          27 | ||||
| #define SQLITE_TESTCTRL_PRNG_SEED               28 | ||||
| #define SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS     29 | ||||
| #define SQLITE_TESTCTRL_LAST                    29  /* Largest TESTCTRL */ | ||||
| #define SQLITE_TESTCTRL_SEEK_COUNT              30 | ||||
| #define SQLITE_TESTCTRL_LAST                    30  /* Largest TESTCTRL */ | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: SQL Keyword Checking | ||||
| @@ -9193,10 +9246,11 @@ SQLITE_API int sqlite3_vtab_on_conflict(sqlite3 *); | ||||
| ** CAPI3REF: Determine If Virtual Table Column Access Is For UPDATE | ||||
| ** | ||||
| ** If the sqlite3_vtab_nochange(X) routine is called within the [xColumn] | ||||
| ** method of a [virtual table], then it returns true if and only if the | ||||
| ** method of a [virtual table], then it might return true if the | ||||
| ** column is being fetched as part of an UPDATE operation during which the | ||||
| ** column value will not change.  Applications might use this to substitute | ||||
| ** a return value that is less expensive to compute and that the corresponding | ||||
| ** column value will not change.  The virtual table implementation can use | ||||
| ** this hint as permission to substitute a return value that is less | ||||
| ** expensive to compute and that the corresponding | ||||
| ** [xUpdate] method understands as a "no-change" value. | ||||
| ** | ||||
| ** If the [xColumn] method calls sqlite3_vtab_nochange() and finds that | ||||
| @@ -9205,6 +9259,12 @@ SQLITE_API int sqlite3_vtab_on_conflict(sqlite3 *); | ||||
| ** any of the [sqlite3_result_int|sqlite3_result_xxxxx() interfaces]. | ||||
| ** In that case, [sqlite3_value_nochange(X)] will return true for the | ||||
| ** same column in the [xUpdate] method. | ||||
| ** | ||||
| ** The sqlite3_vtab_nochange() routine is an optimization.  Virtual table | ||||
| ** implementations should continue to give a correct answer even if the | ||||
| ** sqlite3_vtab_nochange() interface were to always return false.  In the | ||||
| ** current implementation, the sqlite3_vtab_nochange() interface does always | ||||
| ** returns false for the enhanced [UPDATE FROM] statement. | ||||
| */ | ||||
| SQLITE_API int sqlite3_vtab_nochange(sqlite3_context*); | ||||
|  | ||||
| @@ -9346,6 +9406,7 @@ SQLITE_API void sqlite3_stmt_scanstatus_reset(sqlite3_stmt*); | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: Flush caches to disk mid-transaction | ||||
| ** METHOD: sqlite3 | ||||
| ** | ||||
| ** ^If a write-transaction is open on [database connection] D when the | ||||
| ** [sqlite3_db_cacheflush(D)] interface invoked, any dirty | ||||
| @@ -9378,6 +9439,7 @@ SQLITE_API int sqlite3_db_cacheflush(sqlite3*); | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: The pre-update hook. | ||||
| ** METHOD: sqlite3 | ||||
| ** | ||||
| ** ^These interfaces are only available if SQLite is compiled using the | ||||
| ** [SQLITE_ENABLE_PREUPDATE_HOOK] compile-time option. | ||||
| @@ -9418,7 +9480,7 @@ SQLITE_API int sqlite3_db_cacheflush(sqlite3*); | ||||
| ** seventh parameter is the final rowid value of the row being inserted | ||||
| ** or updated. The value of the seventh parameter passed to the callback | ||||
| ** function is not defined for operations on WITHOUT ROWID tables, or for | ||||
| ** INSERT operations on rowid tables. | ||||
| ** DELETE operations on rowid tables. | ||||
| ** | ||||
| ** The [sqlite3_preupdate_old()], [sqlite3_preupdate_new()], | ||||
| ** [sqlite3_preupdate_count()], and [sqlite3_preupdate_depth()] interfaces | ||||
| @@ -9480,6 +9542,7 @@ SQLITE_API int sqlite3_preupdate_new(sqlite3 *, int, sqlite3_value **); | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: Low-level system error code | ||||
| ** METHOD: sqlite3 | ||||
| ** | ||||
| ** ^Attempt to return the underlying operating system error code or error | ||||
| ** number that caused the most recent I/O error or failure to open a file. | ||||
|   | ||||
							
								
								
									
										35
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										35
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -15,10 +15,8 @@ package sqlite3 | ||||
| #cgo CFLAGS: -DHAVE_USLEEP=1 | ||||
| #cgo CFLAGS: -DSQLITE_ENABLE_FTS3 | ||||
| #cgo CFLAGS: -DSQLITE_ENABLE_FTS3_PARENTHESIS | ||||
| #cgo CFLAGS: -DSQLITE_ENABLE_FTS4_UNICODE61 | ||||
| #cgo CFLAGS: -DSQLITE_TRACE_SIZE_LIMIT=15 | ||||
| #cgo CFLAGS: -DSQLITE_OMIT_DEPRECATED | ||||
| #cgo CFLAGS: -DSQLITE_DISABLE_INTRINSIC | ||||
| #cgo CFLAGS: -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 | ||||
| #cgo CFLAGS: -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT | ||||
| #cgo CFLAGS: -Wno-deprecated-declarations | ||||
| @@ -1041,6 +1039,8 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) { | ||||
| 	secureDelete := "DEFAULT" | ||||
| 	synchronousMode := "NORMAL" | ||||
| 	writableSchema := -1 | ||||
| 	vfsName := "" | ||||
| 	var cacheSize *int64 | ||||
|  | ||||
| 	pos := strings.IndexRune(dsn, '?') | ||||
| 	if pos >= 1 { | ||||
| @@ -1364,6 +1364,22 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) { | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		// Cache size (_cache_size) | ||||
| 		// | ||||
| 		// https://sqlite.org/pragma.html#pragma_cache_size | ||||
| 		// | ||||
| 		if val := params.Get("_cache_size"); val != "" { | ||||
| 			iv, err := strconv.ParseInt(val, 10, 64) | ||||
| 			if err != nil { | ||||
| 				return nil, fmt.Errorf("Invalid _cache_size: %v: %v", val, err) | ||||
| 			} | ||||
| 			cacheSize = &iv | ||||
| 		} | ||||
|  | ||||
| 		if val := params.Get("vfs"); val != "" { | ||||
| 			vfsName = val | ||||
| 		} | ||||
|  | ||||
| 		if !strings.HasPrefix(dsn, "file:") { | ||||
| 			dsn = dsn[:pos] | ||||
| 		} | ||||
| @@ -1372,9 +1388,14 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) { | ||||
| 	var db *C.sqlite3 | ||||
| 	name := C.CString(dsn) | ||||
| 	defer C.free(unsafe.Pointer(name)) | ||||
| 	var vfs *C.char | ||||
| 	if vfsName != "" { | ||||
| 		vfs = C.CString(vfsName) | ||||
| 		defer C.free(unsafe.Pointer(vfs)) | ||||
| 	} | ||||
| 	rv := C._sqlite3_open_v2(name, &db, | ||||
| 		mutex|C.SQLITE_OPEN_READWRITE|C.SQLITE_OPEN_CREATE, | ||||
| 		nil) | ||||
| 		vfs) | ||||
| 	if rv != 0 { | ||||
| 		// Save off the error _before_ closing the database. | ||||
| 		// This is safe even if db is nil. | ||||
| @@ -1667,6 +1688,14 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) { | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	// Cache Size | ||||
| 	if cacheSize != nil { | ||||
| 		if err := exec(fmt.Sprintf("PRAGMA cache_size = %d;", *cacheSize)); err != nil { | ||||
| 			C.sqlite3_close_v2(db) | ||||
| 			return nil, err | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if len(d.Extensions) > 0 { | ||||
| 		if err := conn.loadExtensions(d.Extensions); err != nil { | ||||
| 			conn.Close() | ||||
|   | ||||
							
								
								
									
										55
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3_opt_vtable.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										55
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3_opt_vtable.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -226,11 +226,43 @@ static sqlite3_module goModule = { | ||||
| 	0	                     // xRollbackTo | ||||
| }; | ||||
|  | ||||
| // See https://sqlite.org/vtab.html#eponymous_only_virtual_tables | ||||
| static sqlite3_module goModuleEponymousOnly = { | ||||
| 	0,                       // iVersion | ||||
| 	0,                       // xCreate - create a table, which here is null | ||||
| 	cXConnect,               // xConnect - connect to an existing table | ||||
| 	cXBestIndex,             // xBestIndex - Determine search strategy | ||||
| 	cXDisconnect,            // xDisconnect - Disconnect from a table | ||||
| 	cXDestroy,               // xDestroy - Drop a table | ||||
| 	cXOpen,                  // xOpen - open a cursor | ||||
| 	cXClose,                 // xClose - close a cursor | ||||
| 	cXFilter,                // xFilter - configure scan constraints | ||||
| 	cXNext,                  // xNext - advance a cursor | ||||
| 	cXEof,                   // xEof | ||||
| 	cXColumn,                // xColumn - read data | ||||
| 	cXRowid,                 // xRowid - read data | ||||
| 	cXUpdate,                // xUpdate - write data | ||||
| // Not implemented | ||||
| 	0,                       // xBegin - begin transaction | ||||
| 	0,                       // xSync - sync transaction | ||||
| 	0,                       // xCommit - commit transaction | ||||
| 	0,                       // xRollback - rollback transaction | ||||
| 	0,                       // xFindFunction - function overloading | ||||
| 	0,                       // xRename - rename the table | ||||
| 	0,                       // xSavepoint | ||||
| 	0,                       // xRelease | ||||
| 	0	                     // xRollbackTo | ||||
| }; | ||||
|  | ||||
| void goMDestroy(void*); | ||||
|  | ||||
| static int _sqlite3_create_module(sqlite3 *db, const char *zName, uintptr_t pClientData) { | ||||
|   return sqlite3_create_module_v2(db, zName, &goModule, (void*) pClientData, goMDestroy); | ||||
| } | ||||
|  | ||||
| static int _sqlite3_create_module_eponymous_only(sqlite3 *db, const char *zName, uintptr_t pClientData) { | ||||
|   return sqlite3_create_module_v2(db, zName, &goModuleEponymousOnly, (void*) pClientData, goMDestroy); | ||||
| } | ||||
| */ | ||||
| import "C" | ||||
|  | ||||
| @@ -595,6 +627,13 @@ type Module interface { | ||||
| 	DestroyModule() | ||||
| } | ||||
|  | ||||
| // EponymousOnlyModule is a "virtual table module" (as above), but | ||||
| // for defining "eponymous only" virtual tables See: https://sqlite.org/vtab.html#eponymous_only_virtual_tables | ||||
| type EponymousOnlyModule interface { | ||||
| 	Module | ||||
| 	EponymousOnlyModule() | ||||
| } | ||||
|  | ||||
| // VTab describes a particular instance of the virtual table. | ||||
| // See: http://sqlite.org/c3ref/vtab.html | ||||
| type VTab interface { | ||||
| @@ -652,9 +691,19 @@ func (c *SQLiteConn) CreateModule(moduleName string, module Module) error { | ||||
| 	mname := C.CString(moduleName) | ||||
| 	defer C.free(unsafe.Pointer(mname)) | ||||
| 	udm := sqliteModule{c, moduleName, module} | ||||
| 	rv := C._sqlite3_create_module(c.db, mname, C.uintptr_t(uintptr(newHandle(c, &udm)))) | ||||
| 	if rv != C.SQLITE_OK { | ||||
| 		return c.lastError() | ||||
| 	switch module.(type) { | ||||
| 	case EponymousOnlyModule: | ||||
| 		rv := C._sqlite3_create_module_eponymous_only(c.db, mname, C.uintptr_t(uintptr(newHandle(c, &udm)))) | ||||
| 		if rv != C.SQLITE_OK { | ||||
| 			return c.lastError() | ||||
| 		} | ||||
| 		return nil | ||||
| 	case Module: | ||||
| 		rv := C._sqlite3_create_module(c.db, mname, C.uintptr_t(uintptr(newHandle(c, &udm)))) | ||||
| 		if rv != C.SQLITE_OK { | ||||
| 			return c.lastError() | ||||
| 		} | ||||
| 		return nil | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3_type.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3_type.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -31,12 +31,12 @@ func (rc *SQLiteRows) ColumnTypeLength(index int) (length int64, ok bool) { | ||||
| func (rc *SQLiteRows) ColumnTypePrecisionScale(index int) (precision, scale int64, ok bool) { | ||||
| 	return 0, 0, false | ||||
| } | ||||
| */ | ||||
|  | ||||
| // ColumnTypeNullable implement RowsColumnTypeNullable. | ||||
| func (rc *SQLiteRows) ColumnTypeNullable(i int) (nullable, ok bool) { | ||||
| 	return true, true | ||||
| 	return false, false | ||||
| } | ||||
| */ | ||||
|  | ||||
| // ColumnTypeScanType implement RowsColumnTypeScanType. | ||||
| func (rc *SQLiteRows) ColumnTypeScanType(i int) reflect.Type { | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3_usleep_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3_usleep_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -15,7 +15,9 @@ package sqlite3 | ||||
| // This code should improve performance on windows because | ||||
| // without the presence of usleep SQLite waits 1 second. | ||||
| // | ||||
| // Source: https://stackoverflow.com/questions/5801813/c-usleep-is-obsolete-workarounds-for-windows-mingw?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa | ||||
| // Source:  https://github.com/php/php-src/blob/PHP-5.0/win32/time.c | ||||
| // License: https://github.com/php/php-src/blob/PHP-5.0/LICENSE | ||||
| // Details: https://stackoverflow.com/questions/5801813/c-usleep-is-obsolete-workarounds-for-windows-mingw?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa | ||||
|  | ||||
| /* | ||||
| #include <windows.h> | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3ext.h
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3ext.h
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -336,6 +336,8 @@ struct sqlite3_api_routines { | ||||
|                            int,const char**); | ||||
|   void (*free_filename)(char*); | ||||
|   sqlite3_file *(*database_file_object)(const char*); | ||||
|   /* Version 3.34.0 and later */ | ||||
|   int (*txn_state)(sqlite3*,const char*); | ||||
| }; | ||||
|  | ||||
| /* | ||||
| @@ -640,6 +642,8 @@ typedef int (*sqlite3_loadext_entry)( | ||||
| #define sqlite3_create_filename        sqlite3_api->create_filename | ||||
| #define sqlite3_free_filename          sqlite3_api->free_filename | ||||
| #define sqlite3_database_file_object   sqlite3_api->database_file_object | ||||
| /* Version 3.34.0 and later */ | ||||
| #define sqlite3_txn_state              sqlite3_api->txn_state | ||||
| #endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */ | ||||
|  | ||||
| #if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 6543
					6543