mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 11:28:24 +00:00 
			
		
		
		
	* Use vendored go-swagger (#8087) * Use vendored go-swagger * vendor go-swagger * revert un wanteed change * remove un-needed GO111MODULE * Update Makefile Co-Authored-By: techknowlogick <matti@mdranta.net> * re-generate swagger file
This commit is contained in:
		
				
					committed by
					
						 Lauris BH
						Lauris BH
					
				
			
			
				
	
			
			
			
						parent
						
							2f71571305
						
					
				
				
					commit
					c4d8d53a6d
				
			
							
								
								
									
										30
									
								
								vendor/github.com/mattn/go-sqlite3/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								vendor/github.com/mattn/go-sqlite3/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -8,34 +8,24 @@ addons: | ||||
|   apt: | ||||
|     update: true | ||||
|  | ||||
| env: | ||||
|   matrix: | ||||
|     - GOTAGS= | ||||
|     - GOTAGS=libsqlite3 | ||||
|     - GOTAGS="sqlite_allow_uri_authority sqlite_app_armor sqlite_foreign_keys sqlite_fts5 sqlite_icu sqlite_introspect sqlite_json sqlite_secure_delete sqlite_see sqlite_stat4 sqlite_trace sqlite_userauth sqlite_vacuum_incr sqlite_vtable sqlite_unlock_notify" | ||||
|     - GOTAGS=sqlite_vacuum_full | ||||
|  | ||||
| go: | ||||
|   - 1.9.x | ||||
|   - 1.10.x | ||||
|   - 1.11.x | ||||
|   - master | ||||
|  | ||||
| before_install: | ||||
|   - | | ||||
|     if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then  | ||||
|     if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then | ||||
|       brew update | ||||
|     fi | ||||
|   - | | ||||
|     go get github.com/smartystreets/goconvey | ||||
|     if [[ "${GOOS}" != "windows" ]]; then | ||||
|       go get github.com/mattn/goveralls | ||||
|       go get golang.org/x/tools/cmd/cover | ||||
|     fi | ||||
|   - go get github.com/smartystreets/goconvey | ||||
|   - go get github.com/mattn/goveralls | ||||
|   - go get golang.org/x/tools/cmd/cover | ||||
|  | ||||
| script: | ||||
|   - GOOS=$(go env GOOS) GOARCH=$(go env GOARCH) go build -v -tags "${GOTAGS}" . | ||||
|   - | | ||||
|     if [[ "${GOOS}" != "windows" ]]; then | ||||
|       $HOME/gopath/bin/goveralls -repotoken 3qJVUE0iQwqnCbmNcDsjYu1nh4J4KIFXx | ||||
|       go test -race -v . -tags "${GOTAGS}" | ||||
|     fi | ||||
|   - $HOME/gopath/bin/goveralls -repotoken 3qJVUE0iQwqnCbmNcDsjYu1nh4J4KIFXx | ||||
|   - go test -race -v . -tags "" | ||||
|   - go test -race -v . -tags "libsqlite3" | ||||
|   - go test -race -v . -tags "sqlite_allow_uri_authority sqlite_app_armor sqlite_foreign_keys sqlite_fts5 sqlite_icu sqlite_introspect sqlite_json sqlite_secure_delete sqlite_see sqlite_stat4 sqlite_trace sqlite_userauth sqlite_vacuum_incr sqlite_vtable sqlite_unlock_notify" | ||||
|   - go test -race -v . -tags "sqlite_vacuum_full" | ||||
							
								
								
									
										26
									
								
								vendor/github.com/mattn/go-sqlite3/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								vendor/github.com/mattn/go-sqlite3/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -10,9 +10,7 @@ go-sqlite3 | ||||
|  | ||||
| sqlite3 driver conforming to the built-in database/sql interface | ||||
|  | ||||
| Supported Golang version: | ||||
| - 1.9.x | ||||
| - 1.10.x | ||||
| Supported Golang version: See .travis.yml | ||||
|  | ||||
| [This package follows the official Golang Release Policy.](https://golang.org/doc/devel/release.html#policy) | ||||
|  | ||||
| @@ -249,7 +247,7 @@ Required dependency | ||||
| brew install sqlite3 | ||||
| ``` | ||||
|  | ||||
| For OSX there is an additional package install which is required if you whish to build the `icu` extension. | ||||
| For OSX there is an additional package install which is required if you wish to build the `icu` extension. | ||||
|  | ||||
| This additional package can be installed with `homebrew`. | ||||
|  | ||||
| @@ -282,7 +280,7 @@ To compile this package on Windows OS you must have the `gcc` compiler installed | ||||
| 3) Open a terminal for the TDM-GCC toolchain, can be found in the Windows Start menu. | ||||
| 4) Navigate to your project folder and run the `go build ...` command for this package. | ||||
|  | ||||
| For example the TDM-GCC Toolchain can be found [here](ttps://sourceforge.net/projects/tdm-gcc/). | ||||
| For example the TDM-GCC Toolchain can be found [here](https://sourceforge.net/projects/tdm-gcc/). | ||||
|  | ||||
| ## Errors | ||||
|  | ||||
| @@ -458,15 +456,19 @@ For an example see [shaxbee/go-spatialite](https://github.com/shaxbee/go-spatial | ||||
|  | ||||
|     Why is it racy if I use a `sql.Open("sqlite3", ":memory:")` database? | ||||
|  | ||||
|     Each connection to :memory: opens a brand new in-memory sql database, so if | ||||
|     Each connection to `":memory:"` opens a brand new in-memory sql database, so if | ||||
|     the stdlib's sql engine happens to open another connection and you've only | ||||
|     specified ":memory:", that connection will see a brand new database. A | ||||
|     workaround is to use "file::memory:?mode=memory&cache=shared". Every | ||||
|     connection to this string will point to the same in-memory database.  | ||||
|     specified `":memory:"`, that connection will see a brand new database. A | ||||
|     workaround is to use `"file::memory:?cache=shared"` (or `"file:foobar?mode=memory&cache=shared"`). Every | ||||
|     connection to this string will point to the same in-memory database. | ||||
|      | ||||
|     Note that if the last database connection in the pool closes, the in-memory database is deleted. Make sure the [max idle connection limit](https://golang.org/pkg/database/sql/#DB.SetMaxIdleConns) is > 0, and the [connection lifetime](https://golang.org/pkg/database/sql/#DB.SetConnMaxLifetime) is infinite. | ||||
|      | ||||
|     For more information see | ||||
|     * [#204](https://github.com/mattn/go-sqlite3/issues/204) | ||||
|     * [#511](https://github.com/mattn/go-sqlite3/issues/511) | ||||
|     * https://www.sqlite.org/sharedcache.html#shared_cache_and_in_memory_databases | ||||
|     * https://www.sqlite.org/inmemorydb.html#sharedmemdb | ||||
|  | ||||
| - Reading from database with large amount of goroutines fails on OSX. | ||||
|  | ||||
| @@ -481,11 +483,11 @@ For an example see [shaxbee/go-spatialite](https://github.com/shaxbee/go-spatial | ||||
|  | ||||
|     You need to implement the feature or call the sqlite3 cli. | ||||
|  | ||||
|     More infomation see [#305](https://github.com/mattn/go-sqlite3/issues/305) | ||||
|     More information see [#305](https://github.com/mattn/go-sqlite3/issues/305) | ||||
|  | ||||
| - Error: `database is locked` | ||||
|  | ||||
|     When you get an database is locked. Please use the following options. | ||||
|     When you get a database is locked. Please use the following options. | ||||
|  | ||||
|     Add to DSN: `cache=shared` | ||||
|  | ||||
| @@ -497,7 +499,7 @@ For an example see [shaxbee/go-spatialite](https://github.com/shaxbee/go-spatial | ||||
|     Second please set the database connections of the SQL package to 1. | ||||
|      | ||||
|     ```go | ||||
|     db.SetMaxOpenConn(1) | ||||
|     db.SetMaxOpenConns(1) | ||||
|     ``` | ||||
|  | ||||
|     More information see [#209](https://github.com/mattn/go-sqlite3/issues/209) | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/github.com/mattn/go-sqlite3/callback.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/mattn/go-sqlite3/callback.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -368,7 +368,7 @@ func callbackRet(typ reflect.Type) (callbackRetConverter, error) { | ||||
| func callbackError(ctx *C.sqlite3_context, err error) { | ||||
| 	cstr := C.CString(err.Error()) | ||||
| 	defer C.free(unsafe.Pointer(cstr)) | ||||
| 	C.sqlite3_result_error(ctx, cstr, -1) | ||||
| 	C.sqlite3_result_error(ctx, cstr, C.int(-1)) | ||||
| } | ||||
|  | ||||
| // Test support code. Tests are not allowed to import "C", so we can't | ||||
|   | ||||
							
								
								
									
										18974
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18974
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										297
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										297
									
								
								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.25.2" | ||||
| #define SQLITE_VERSION_NUMBER 3025002 | ||||
| #define SQLITE_SOURCE_ID      "2018-09-25 19:08:10 fb90e7189ae6d62e77ba3a308ca5d683f90bbe633cf681865365b8e92792d1c7" | ||||
| #define SQLITE_VERSION        "3.29.0" | ||||
| #define SQLITE_VERSION_NUMBER 3029000 | ||||
| #define SQLITE_SOURCE_ID      "2019-07-10 17:32:03 fc82b73eaac8b36950e527f12c4b5dc1e147e6f4ad2217ae43ad82882a88bfa6" | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: Run-Time Library Version Numbers | ||||
| @@ -190,6 +190,9 @@ SQLITE_API int sqlite3_libversion_number(void); | ||||
| #ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS | ||||
| SQLITE_API int sqlite3_compileoption_used(const char *zOptName); | ||||
| SQLITE_API const char *sqlite3_compileoption_get(int N); | ||||
| #else | ||||
| # define sqlite3_compileoption_used(X) 0 | ||||
| # define sqlite3_compileoption_get(X)  ((void*)0) | ||||
| #endif | ||||
|  | ||||
| /* | ||||
| @@ -824,6 +827,15 @@ struct sqlite3_io_methods { | ||||
| ** file space based on this hint in order to help writes to the database | ||||
| ** file run faster. | ||||
| ** | ||||
| ** <li>[[SQLITE_FCNTL_SIZE_LIMIT]] | ||||
| ** The [SQLITE_FCNTL_SIZE_LIMIT] opcode is used by in-memory VFS that | ||||
| ** implements [sqlite3_deserialize()] to set an upper bound on the size | ||||
| ** of the in-memory database.  The argument is a pointer to a [sqlite3_int64]. | ||||
| ** If the integer pointed to is negative, then it is filled in with the | ||||
| ** current limit.  Otherwise the limit is set to the larger of the value | ||||
| ** of the integer pointed to and the current database size.  The integer | ||||
| ** pointed to is set to the new limit. | ||||
| ** | ||||
| ** <li>[[SQLITE_FCNTL_CHUNK_SIZE]] | ||||
| ** The [SQLITE_FCNTL_CHUNK_SIZE] opcode is used to request that the VFS | ||||
| ** extends and truncates the database file in chunks of a size specified | ||||
| @@ -1132,6 +1144,7 @@ struct sqlite3_io_methods { | ||||
| #define SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE  33 | ||||
| #define SQLITE_FCNTL_LOCK_TIMEOUT           34 | ||||
| #define SQLITE_FCNTL_DATA_VERSION           35 | ||||
| #define SQLITE_FCNTL_SIZE_LIMIT             36 | ||||
|  | ||||
| /* deprecated names */ | ||||
| #define SQLITE_GET_LOCKPROXYFILE      SQLITE_FCNTL_GET_LOCKPROXYFILE | ||||
| @@ -1284,8 +1297,14 @@ typedef struct sqlite3_api_routines sqlite3_api_routines; | ||||
| ** ^The flags argument to xAccess() may be [SQLITE_ACCESS_EXISTS] | ||||
| ** to test for the existence of a file, or [SQLITE_ACCESS_READWRITE] to | ||||
| ** test whether a file is readable and writable, or [SQLITE_ACCESS_READ] | ||||
| ** to test whether a file is at least readable.   The file can be a | ||||
| ** directory. | ||||
| ** to test whether a file is at least readable.  The SQLITE_ACCESS_READ | ||||
| ** flag is never actually used and is not implemented in the built-in | ||||
| ** VFSes of SQLite.  The file is named by the second argument and can be a | ||||
| ** directory. The xAccess method returns [SQLITE_OK] on success or some | ||||
| ** non-zero error code if there is an I/O error or if the name of | ||||
| ** the file given in the second argument is illegal.  If SQLITE_OK | ||||
| ** is returned, then non-zero or zero is written into *pResOut to indicate | ||||
| ** whether or not the file is accessible.   | ||||
| ** | ||||
| ** ^SQLite will always allocate at least mxPathname+1 bytes for the | ||||
| ** output buffer xFullPathname.  The exact size of the output buffer | ||||
| @@ -1973,6 +1992,17 @@ struct sqlite3_mem_methods { | ||||
| ** negative value for this option restores the default behaviour. | ||||
| ** This option is only available if SQLite is compiled with the | ||||
| ** [SQLITE_ENABLE_SORTER_REFERENCES] compile-time option. | ||||
| ** | ||||
| ** [[SQLITE_CONFIG_MEMDB_MAXSIZE]] | ||||
| ** <dt>SQLITE_CONFIG_MEMDB_MAXSIZE | ||||
| ** <dd>The SQLITE_CONFIG_MEMDB_MAXSIZE option accepts a single parameter | ||||
| ** [sqlite3_int64] parameter which is the default maximum size for an in-memory | ||||
| ** database created using [sqlite3_deserialize()].  This default maximum | ||||
| ** size can be adjusted up or down for individual databases using the | ||||
| ** [SQLITE_FCNTL_SIZE_LIMIT] [sqlite3_file_control|file-control].  If this | ||||
| ** configuration setting is never used, then the default maximum is determined | ||||
| ** by the [SQLITE_MEMDB_DEFAULT_MAXSIZE] compile-time option.  If that | ||||
| ** compile-time option is not set, then the default maximum is 1073741824. | ||||
| ** </dl> | ||||
| */ | ||||
| #define SQLITE_CONFIG_SINGLETHREAD  1  /* nil */ | ||||
| @@ -2003,6 +2033,7 @@ struct sqlite3_mem_methods { | ||||
| #define SQLITE_CONFIG_STMTJRNL_SPILL      26  /* int nByte */ | ||||
| #define SQLITE_CONFIG_SMALL_MALLOC        27  /* boolean */ | ||||
| #define SQLITE_CONFIG_SORTERREF_SIZE      28  /* int nByte */ | ||||
| #define SQLITE_CONFIG_MEMDB_MAXSIZE       29  /* sqlite3_int64 */ | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: Database Connection Configuration Options | ||||
| @@ -2018,6 +2049,7 @@ struct sqlite3_mem_methods { | ||||
| ** is invoked. | ||||
| ** | ||||
| ** <dl> | ||||
| ** [[SQLITE_DBCONFIG_LOOKASIDE]] | ||||
| ** <dt>SQLITE_DBCONFIG_LOOKASIDE</dt> | ||||
| ** <dd> ^This option takes three additional arguments that determine the  | ||||
| ** [lookaside memory allocator] configuration for the [database connection]. | ||||
| @@ -2040,6 +2072,7 @@ struct sqlite3_mem_methods { | ||||
| ** memory is in use leaves the configuration unchanged and returns  | ||||
| ** [SQLITE_BUSY].)^</dd> | ||||
| ** | ||||
| ** [[SQLITE_DBCONFIG_ENABLE_FKEY]] | ||||
| ** <dt>SQLITE_DBCONFIG_ENABLE_FKEY</dt> | ||||
| ** <dd> ^This option is used to enable or disable the enforcement of | ||||
| ** [foreign key constraints].  There should be two additional arguments. | ||||
| @@ -2050,6 +2083,7 @@ struct sqlite3_mem_methods { | ||||
| ** following this call.  The second parameter may be a NULL pointer, in | ||||
| ** which case the FK enforcement setting is not reported back. </dd> | ||||
| ** | ||||
| ** [[SQLITE_DBCONFIG_ENABLE_TRIGGER]] | ||||
| ** <dt>SQLITE_DBCONFIG_ENABLE_TRIGGER</dt> | ||||
| ** <dd> ^This option is used to enable or disable [CREATE TRIGGER | triggers]. | ||||
| ** There should be two additional arguments. | ||||
| @@ -2060,9 +2094,10 @@ struct sqlite3_mem_methods { | ||||
| ** following this call.  The second parameter may be a NULL pointer, in | ||||
| ** which case the trigger setting is not reported back. </dd> | ||||
| ** | ||||
| ** [[SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER]] | ||||
| ** <dt>SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER</dt> | ||||
| ** <dd> ^This option is used to enable or disable the two-argument | ||||
| ** version of the [fts3_tokenizer()] function which is part of the | ||||
| ** <dd> ^This option is used to enable or disable the | ||||
| ** [fts3_tokenizer()] function which is part of the | ||||
| ** [FTS3] full-text search engine extension. | ||||
| ** There should be two additional arguments. | ||||
| ** The first argument is an integer which is 0 to disable fts3_tokenizer() or | ||||
| @@ -2073,6 +2108,7 @@ struct sqlite3_mem_methods { | ||||
| ** following this call.  The second parameter may be a NULL pointer, in | ||||
| ** which case the new setting is not reported back. </dd> | ||||
| ** | ||||
| ** [[SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION]] | ||||
| ** <dt>SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION</dt> | ||||
| ** <dd> ^This option is used to enable or disable the [sqlite3_load_extension()] | ||||
| ** interface independently of the [load_extension()] SQL function. | ||||
| @@ -2090,7 +2126,7 @@ struct sqlite3_mem_methods { | ||||
| ** be a NULL pointer, in which case the new setting is not reported back. | ||||
| ** </dd> | ||||
| ** | ||||
| ** <dt>SQLITE_DBCONFIG_MAINDBNAME</dt> | ||||
| ** [[SQLITE_DBCONFIG_MAINDBNAME]] <dt>SQLITE_DBCONFIG_MAINDBNAME</dt> | ||||
| ** <dd> ^This option is used to change the name of the "main" database | ||||
| ** schema.  ^The sole argument is a pointer to a constant UTF8 string | ||||
| ** which will become the new schema name in place of "main".  ^SQLite | ||||
| @@ -2099,6 +2135,7 @@ struct sqlite3_mem_methods { | ||||
| ** until after the database connection closes. | ||||
| ** </dd> | ||||
| ** | ||||
| ** [[SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE]]  | ||||
| ** <dt>SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE</dt> | ||||
| ** <dd> Usually, when a database in wal mode is closed or detached from a  | ||||
| ** database handle, SQLite checks if this will mean that there are now no  | ||||
| @@ -2112,7 +2149,7 @@ struct sqlite3_mem_methods { | ||||
| ** have been disabled - 0 if they are not disabled, 1 if they are. | ||||
| ** </dd> | ||||
| ** | ||||
| ** <dt>SQLITE_DBCONFIG_ENABLE_QPSG</dt> | ||||
| ** [[SQLITE_DBCONFIG_ENABLE_QPSG]] <dt>SQLITE_DBCONFIG_ENABLE_QPSG</dt> | ||||
| ** <dd>^(The SQLITE_DBCONFIG_ENABLE_QPSG option activates or deactivates | ||||
| ** the [query planner stability guarantee] (QPSG).  When the QPSG is active, | ||||
| ** a single SQL query statement will always use the same algorithm regardless | ||||
| @@ -2128,7 +2165,7 @@ struct sqlite3_mem_methods { | ||||
| ** following this call. | ||||
| ** </dd> | ||||
| ** | ||||
| ** <dt>SQLITE_DBCONFIG_TRIGGER_EQP</dt> | ||||
| ** [[SQLITE_DBCONFIG_TRIGGER_EQP]] <dt>SQLITE_DBCONFIG_TRIGGER_EQP</dt> | ||||
| ** <dd> By default, the output of EXPLAIN QUERY PLAN commands does not  | ||||
| ** include output for any operations performed by trigger programs. This | ||||
| ** option is used to set or clear (the default) a flag that governs this | ||||
| @@ -2140,7 +2177,7 @@ struct sqlite3_mem_methods { | ||||
| ** it is not disabled, 1 if it is.   | ||||
| ** </dd> | ||||
| ** | ||||
| ** <dt>SQLITE_DBCONFIG_RESET_DATABASE</dt> | ||||
| ** [[SQLITE_DBCONFIG_RESET_DATABASE]] <dt>SQLITE_DBCONFIG_RESET_DATABASE</dt> | ||||
| ** <dd> Set the SQLITE_DBCONFIG_RESET_DATABASE flag and then run | ||||
| ** [VACUUM] in order to reset a database back to an empty database | ||||
| ** with no schema and no content. The following process works even for | ||||
| @@ -2159,6 +2196,58 @@ struct sqlite3_mem_methods { | ||||
| ** Because resetting a database is destructive and irreversible, the | ||||
| ** process requires the use of this obscure API and multiple steps to help | ||||
| ** ensure that it does not happen by accident. | ||||
| ** | ||||
| ** [[SQLITE_DBCONFIG_DEFENSIVE]] <dt>SQLITE_DBCONFIG_DEFENSIVE</dt> | ||||
| ** <dd>The SQLITE_DBCONFIG_DEFENSIVE option activates or deactivates the | ||||
| ** "defensive" flag for a database connection.  When the defensive | ||||
| ** flag is enabled, language features that allow ordinary SQL to  | ||||
| ** deliberately corrupt the database file are disabled.  The disabled | ||||
| ** features include but are not limited to the following: | ||||
| ** <ul> | ||||
| ** <li> The [PRAGMA writable_schema=ON] statement. | ||||
| ** <li> The [PRAGMA journal_mode=OFF] statement. | ||||
| ** <li> Writes to the [sqlite_dbpage] virtual table. | ||||
| ** <li> Direct writes to [shadow tables]. | ||||
| ** </ul> | ||||
| ** </dd> | ||||
| ** | ||||
| ** [[SQLITE_DBCONFIG_WRITABLE_SCHEMA]] <dt>SQLITE_DBCONFIG_WRITABLE_SCHEMA</dt> | ||||
| ** <dd>The SQLITE_DBCONFIG_WRITABLE_SCHEMA option activates or deactivates the | ||||
| ** "writable_schema" flag. This has the same effect and is logically equivalent | ||||
| ** to setting [PRAGMA writable_schema=ON] or [PRAGMA writable_schema=OFF]. | ||||
| ** The first argument to this setting is an integer which is 0 to disable  | ||||
| ** the writable_schema, positive to enable writable_schema, or negative to | ||||
| ** leave the setting unchanged. The second parameter is a pointer to an | ||||
| ** integer into which is written 0 or 1 to indicate whether the writable_schema | ||||
| ** is enabled or disabled following this call. | ||||
| ** </dd> | ||||
| ** | ||||
| ** [[SQLITE_DBCONFIG_LEGACY_ALTER_TABLE]] | ||||
| ** <dt>SQLITE_DBCONFIG_LEGACY_ALTER_TABLE</dt> | ||||
| ** <dd>The SQLITE_DBCONFIG_LEGACY_ALTER_TABLE option activates or deactivates | ||||
| ** the legacy behavior of the [ALTER TABLE RENAME] command such it | ||||
| ** behaves as it did prior to [version 3.24.0] (2018-06-04).  See the | ||||
| ** "Compatibility Notice" on the [ALTER TABLE RENAME documentation] for | ||||
| ** additional information. This feature can also be turned on and off | ||||
| ** using the [PRAGMA legacy_alter_table] statement. | ||||
| ** </dd> | ||||
| ** | ||||
| ** [[SQLITE_DBCONFIG_DQS_DML]] | ||||
| ** <dt>SQLITE_DBCONFIG_DQS_DML</td> | ||||
| ** <dd>The SQLITE_DBCONFIG_DQS_DML option activates or deactivates | ||||
| ** the legacy [double-quoted string literal] misfeature for DML statement | ||||
| ** only, that is DELETE, INSERT, SELECT, and UPDATE statements. The | ||||
| ** default value of this setting is determined by the [-DSQLITE_DQS] | ||||
| ** compile-time option. | ||||
| ** </dd> | ||||
| ** | ||||
| ** [[SQLITE_DBCONFIG_DQS_DDL]] | ||||
| ** <dt>SQLITE_DBCONFIG_DQS_DDL</td> | ||||
| ** <dd>The SQLITE_DBCONFIG_DQS option activates or deactivates | ||||
| ** the legacy [double-quoted string literal] misfeature for DDL statements, | ||||
| ** such as CREATE TABLE and CREATE INDEX. The | ||||
| ** default value of this setting is determined by the [-DSQLITE_DQS] | ||||
| ** compile-time option. | ||||
| ** </dd> | ||||
| ** </dl> | ||||
| */ | ||||
| @@ -2172,7 +2261,12 @@ struct sqlite3_mem_methods { | ||||
| #define SQLITE_DBCONFIG_ENABLE_QPSG           1007 /* int int* */ | ||||
| #define SQLITE_DBCONFIG_TRIGGER_EQP           1008 /* int int* */ | ||||
| #define SQLITE_DBCONFIG_RESET_DATABASE        1009 /* int int* */ | ||||
| #define SQLITE_DBCONFIG_MAX                   1009 /* Largest DBCONFIG */ | ||||
| #define SQLITE_DBCONFIG_DEFENSIVE             1010 /* int int* */ | ||||
| #define SQLITE_DBCONFIG_WRITABLE_SCHEMA       1011 /* int int* */ | ||||
| #define SQLITE_DBCONFIG_LEGACY_ALTER_TABLE    1012 /* int int* */ | ||||
| #define SQLITE_DBCONFIG_DQS_DML               1013 /* int int* */ | ||||
| #define SQLITE_DBCONFIG_DQS_DDL               1014 /* int int* */ | ||||
| #define SQLITE_DBCONFIG_MAX                   1014 /* Largest DBCONFIG */ | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: Enable Or Disable Extended Result Codes | ||||
| @@ -2329,7 +2423,7 @@ SQLITE_API int sqlite3_changes(sqlite3*); | ||||
| ** not. ^Changes to a view that are intercepted by INSTEAD OF triggers  | ||||
| ** are not counted. | ||||
| ** | ||||
| ** This the [sqlite3_total_changes(D)] interface only reports the number | ||||
| ** The [sqlite3_total_changes(D)] interface only reports the number | ||||
| ** of rows that changed due to SQL statement run against database | ||||
| ** connection D.  Any changes by other database connections are ignored. | ||||
| ** To detect changes against a database file from other database | ||||
| @@ -2973,9 +3067,9 @@ SQLITE_API int sqlite3_set_authorizer( | ||||
| ** time is in units of nanoseconds, however the current implementation | ||||
| ** is only capable of millisecond resolution so the six least significant | ||||
| ** digits in the time are meaningless.  Future versions of SQLite | ||||
| ** might provide greater resolution on the profiler callback.  The | ||||
| ** sqlite3_profile() function is considered experimental and is | ||||
| ** subject to change in future versions of SQLite. | ||||
| ** might provide greater resolution on the profiler callback.  Invoking | ||||
| ** either [sqlite3_trace()] or [sqlite3_trace_v2()] will cancel the | ||||
| ** profile callback. | ||||
| */ | ||||
| SQLITE_API SQLITE_DEPRECATED void *sqlite3_trace(sqlite3*, | ||||
|    void(*xTrace)(void*,const char*), void*); | ||||
| @@ -3389,6 +3483,8 @@ SQLITE_API int sqlite3_open_v2( | ||||
| ** is not a database file pathname pointer that SQLite passed into the xOpen | ||||
| ** VFS method, then the behavior of this routine is undefined and probably | ||||
| ** undesirable. | ||||
| ** | ||||
| ** See the [URI filename] documentation for additional information. | ||||
| */ | ||||
| SQLITE_API const char *sqlite3_uri_parameter(const char *zFilename, const char *zParam); | ||||
| SQLITE_API int sqlite3_uri_boolean(const char *zFile, const char *zParam, int bDefault); | ||||
| @@ -3610,9 +3706,24 @@ SQLITE_API int sqlite3_limit(sqlite3*, int id, int newVal); | ||||
| ** on this hint by avoiding the use of [lookaside memory] so as not to | ||||
| ** deplete the limited store of lookaside memory. Future versions of | ||||
| ** SQLite may act on this hint differently. | ||||
| ** | ||||
| ** [[SQLITE_PREPARE_NORMALIZE]] <dt>SQLITE_PREPARE_NORMALIZE</dt> | ||||
| ** <dd>The SQLITE_PREPARE_NORMALIZE flag is a no-op. This flag used | ||||
| ** to be required for any prepared statement that wanted to use the | ||||
| ** [sqlite3_normalized_sql()] interface.  However, the | ||||
| ** [sqlite3_normalized_sql()] interface is now available to all | ||||
| ** prepared statements, regardless of whether or not they use this | ||||
| ** flag. | ||||
| ** | ||||
| ** [[SQLITE_PREPARE_NO_VTAB]] <dt>SQLITE_PREPARE_NO_VTAB</dt> | ||||
| ** <dd>The SQLITE_PREPARE_NO_VTAB flag causes the SQL compiler | ||||
| ** to return an error (error code SQLITE_ERROR) if the statement uses | ||||
| ** any virtual tables. | ||||
| ** </dl> | ||||
| */ | ||||
| #define SQLITE_PREPARE_PERSISTENT              0x01 | ||||
| #define SQLITE_PREPARE_NORMALIZE               0x02 | ||||
| #define SQLITE_PREPARE_NO_VTAB                 0x04 | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: Compiling An SQL Statement | ||||
| @@ -3770,6 +3881,11 @@ SQLITE_API int sqlite3_prepare16_v3( | ||||
| ** ^The sqlite3_expanded_sql(P) interface returns a pointer to a UTF-8 | ||||
| ** string containing the SQL text of prepared statement P with | ||||
| ** [bound parameters] expanded. | ||||
| ** ^The sqlite3_normalized_sql(P) interface returns a pointer to a UTF-8 | ||||
| ** string containing the normalized SQL text of prepared statement P.  The | ||||
| ** semantics used to normalize a SQL statement are unspecified and subject | ||||
| ** to change.  At a minimum, literal values will be replaced with suitable | ||||
| ** placeholders. | ||||
| ** | ||||
| ** ^(For example, if a prepared statement is created using the SQL | ||||
| ** text "SELECT $abc,:xyz" and if parameter $abc is bound to integer 2345 | ||||
| @@ -3785,14 +3901,16 @@ SQLITE_API int sqlite3_prepare16_v3( | ||||
| ** bound parameter expansions.  ^The [SQLITE_OMIT_TRACE] compile-time | ||||
| ** option causes sqlite3_expanded_sql() to always return NULL. | ||||
| ** | ||||
| ** ^The string returned by sqlite3_sql(P) is managed by SQLite and is | ||||
| ** automatically freed when the prepared statement is finalized. | ||||
| ** ^The strings returned by sqlite3_sql(P) and sqlite3_normalized_sql(P) | ||||
| ** are managed by SQLite and are automatically freed when the prepared | ||||
| ** statement is finalized. | ||||
| ** ^The string returned by sqlite3_expanded_sql(P), on the other hand, | ||||
| ** is obtained from [sqlite3_malloc()] and must be free by the application | ||||
| ** by passing it to [sqlite3_free()]. | ||||
| */ | ||||
| SQLITE_API const char *sqlite3_sql(sqlite3_stmt *pStmt); | ||||
| SQLITE_API char *sqlite3_expanded_sql(sqlite3_stmt *pStmt); | ||||
| SQLITE_API const char *sqlite3_normalized_sql(sqlite3_stmt *pStmt); | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: Determine If An SQL Statement Writes The Database | ||||
| @@ -3830,6 +3948,18 @@ SQLITE_API char *sqlite3_expanded_sql(sqlite3_stmt *pStmt); | ||||
| */ | ||||
| SQLITE_API int sqlite3_stmt_readonly(sqlite3_stmt *pStmt); | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: Query The EXPLAIN Setting For A Prepared Statement | ||||
| ** METHOD: sqlite3_stmt | ||||
| ** | ||||
| ** ^The sqlite3_stmt_isexplain(S) interface returns 1 if the | ||||
| ** prepared statement S is an EXPLAIN statement, or 2 if the | ||||
| ** statement S is an EXPLAIN QUERY PLAN. | ||||
| ** ^The sqlite3_stmt_isexplain(S) interface returns 0 if S is | ||||
| ** an ordinary statement or a NULL pointer. | ||||
| */ | ||||
| SQLITE_API int sqlite3_stmt_isexplain(sqlite3_stmt *pStmt); | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: Determine If A Prepared Statement Has Been Reset | ||||
| ** METHOD: sqlite3_stmt | ||||
| @@ -3969,7 +4099,9 @@ typedef struct sqlite3_context sqlite3_context; | ||||
| ** ^The fifth argument to the BLOB and string binding interfaces | ||||
| ** is a destructor used to dispose of the BLOB or | ||||
| ** string after SQLite has finished with it.  ^The destructor is called | ||||
| ** to dispose of the BLOB or string even if the call to bind API fails. | ||||
| ** to dispose of the BLOB or string even if the call to the bind API fails, | ||||
| ** except the destructor is not called if the third parameter is a NULL | ||||
| ** pointer or the fourth parameter is negative. | ||||
| ** ^If the fifth argument is | ||||
| ** the special value [SQLITE_STATIC], then SQLite assumes that the | ||||
| ** information is in static, unmanaged space and does not need to be freed. | ||||
| @@ -4886,6 +5018,8 @@ SQLITE_API SQLITE_DEPRECATED int sqlite3_memory_alarm(void(*)(void*,sqlite3_int6 | ||||
| ** <tr><td><b>sqlite3_value_nochange  </b> | ||||
| ** <td>→  <td>True if the column is unchanged in an UPDATE | ||||
| ** against a virtual table. | ||||
| ** <tr><td><b>sqlite3_value_frombind  </b> | ||||
| ** <td>→  <td>True if value originated from a [bound parameter] | ||||
| ** </table></blockquote> | ||||
| ** | ||||
| ** <b>Details:</b> | ||||
| @@ -4947,6 +5081,11 @@ SQLITE_API SQLITE_DEPRECATED int sqlite3_memory_alarm(void(*)(void*,sqlite3_int6 | ||||
| ** than within an [xUpdate] method call for an UPDATE statement, then | ||||
| ** the return value is arbitrary and meaningless. | ||||
| ** | ||||
| ** ^The sqlite3_value_frombind(X) interface returns non-zero if the | ||||
| ** value X originated from one of the [sqlite3_bind_int|sqlite3_bind()] | ||||
| ** interfaces.  ^If X comes from an SQL literal value, or a table column, | ||||
| ** and expression, then sqlite3_value_frombind(X) returns zero. | ||||
| ** | ||||
| ** Please pay particular attention to the fact that the pointer returned | ||||
| ** from [sqlite3_value_blob()], [sqlite3_value_text()], or | ||||
| ** [sqlite3_value_text16()] can be invalidated by a subsequent call to | ||||
| @@ -4992,6 +5131,7 @@ SQLITE_API int sqlite3_value_bytes16(sqlite3_value*); | ||||
| SQLITE_API int sqlite3_value_type(sqlite3_value*); | ||||
| SQLITE_API int sqlite3_value_numeric_type(sqlite3_value*); | ||||
| SQLITE_API int sqlite3_value_nochange(sqlite3_value*); | ||||
| SQLITE_API int sqlite3_value_frombind(sqlite3_value*); | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: Finding The Subtype Of SQL Values | ||||
| @@ -5727,7 +5867,7 @@ SQLITE_API sqlite3 *sqlite3_db_handle(sqlite3_stmt*); | ||||
| ** associated with database N of connection D.  ^The main database file | ||||
| ** has the name "main".  If there is no attached database N on the database | ||||
| ** connection D, or if database N is a temporary or in-memory database, then | ||||
| ** a NULL pointer is returned. | ||||
| ** this function will return either a NULL pointer or an empty string. | ||||
| ** | ||||
| ** ^The filename returned by this function is the output of the | ||||
| ** xFullPathname method of the [VFS].  ^In other words, the filename | ||||
| @@ -6282,6 +6422,9 @@ struct sqlite3_module { | ||||
|   int (*xSavepoint)(sqlite3_vtab *pVTab, int); | ||||
|   int (*xRelease)(sqlite3_vtab *pVTab, int); | ||||
|   int (*xRollbackTo)(sqlite3_vtab *pVTab, int); | ||||
|   /* The methods above are in versions 1 and 2 of the sqlite_module object. | ||||
|   ** Those below are for version 3 and greater. */ | ||||
|   int (*xShadowName)(const char*); | ||||
| }; | ||||
|  | ||||
| /* | ||||
| @@ -7204,6 +7347,7 @@ SQLITE_API int sqlite3_test_control(int op, ...); | ||||
| #define SQLITE_TESTCTRL_OPTIMIZATIONS           15 | ||||
| #define SQLITE_TESTCTRL_ISKEYWORD               16  /* NOT USED */ | ||||
| #define SQLITE_TESTCTRL_SCRATCHMALLOC           17  /* NOT USED */ | ||||
| #define SQLITE_TESTCTRL_INTERNAL_FUNCTIONS      17 | ||||
| #define SQLITE_TESTCTRL_LOCALTIME_FAULT         18 | ||||
| #define SQLITE_TESTCTRL_EXPLAIN_STMT            19  /* NOT USED */ | ||||
| #define SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD    19 | ||||
| @@ -7214,7 +7358,8 @@ SQLITE_API int sqlite3_test_control(int op, ...); | ||||
| #define SQLITE_TESTCTRL_SORTER_MMAP             24 | ||||
| #define SQLITE_TESTCTRL_IMPOSTER                25 | ||||
| #define SQLITE_TESTCTRL_PARSER_COVERAGE         26 | ||||
| #define SQLITE_TESTCTRL_LAST                    26  /* Largest TESTCTRL */ | ||||
| #define SQLITE_TESTCTRL_RESULT_INTREAL          27 | ||||
| #define SQLITE_TESTCTRL_LAST                    27  /* Largest TESTCTRL */ | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: SQL Keyword Checking | ||||
| @@ -8616,6 +8761,7 @@ SQLITE_API int sqlite3_vtab_config(sqlite3*, int op, ...); | ||||
| ** can use to customize and optimize their behavior. | ||||
| ** | ||||
| ** <dl> | ||||
| ** [[SQLITE_VTAB_CONSTRAINT_SUPPORT]] | ||||
| ** <dt>SQLITE_VTAB_CONSTRAINT_SUPPORT | ||||
| ** <dd>Calls of the form | ||||
| ** [sqlite3_vtab_config](db,SQLITE_VTAB_CONSTRAINT_SUPPORT,X) are supported, | ||||
| @@ -9385,7 +9531,7 @@ struct sqlite3_rtree_query_info { | ||||
|   sqlite3_int64 iRowid;             /* Rowid for current entry */ | ||||
|   sqlite3_rtree_dbl rParentScore;   /* Score of parent node */ | ||||
|   int eParentWithin;                /* Visibility of parent node */ | ||||
|   int eWithin;                      /* OUT: Visiblity */ | ||||
|   int eWithin;                      /* OUT: Visibility */ | ||||
|   sqlite3_rtree_dbl rScore;         /* OUT: Write the score here */ | ||||
|   /* The following fields are only available in 3.8.11 and later */ | ||||
|   sqlite3_value **apSqlParam;       /* Original SQL values of parameters */ | ||||
| @@ -9881,12 +10027,38 @@ SQLITE_API int sqlite3session_isempty(sqlite3_session *pSession); | ||||
| ** consecutively. There is no chance that the iterator will visit a change  | ||||
| ** the applies to table X, then one for table Y, and then later on visit  | ||||
| ** another change for table X. | ||||
| ** | ||||
| ** The behavior of sqlite3changeset_start_v2() and its streaming equivalent | ||||
| ** may be modified by passing a combination of | ||||
| ** [SQLITE_CHANGESETSTART_INVERT | supported flags] as the 4th parameter. | ||||
| ** | ||||
| ** Note that the sqlite3changeset_start_v2() API is still <b>experimental</b> | ||||
| ** and therefore subject to change. | ||||
| */ | ||||
| SQLITE_API int sqlite3changeset_start( | ||||
|   sqlite3_changeset_iter **pp,    /* OUT: New changeset iterator handle */ | ||||
|   int nChangeset,                 /* Size of changeset blob in bytes */ | ||||
|   void *pChangeset                /* Pointer to blob containing changeset */ | ||||
| ); | ||||
| SQLITE_API int sqlite3changeset_start_v2( | ||||
|   sqlite3_changeset_iter **pp,    /* OUT: New changeset iterator handle */ | ||||
|   int nChangeset,                 /* Size of changeset blob in bytes */ | ||||
|   void *pChangeset,               /* Pointer to blob containing changeset */ | ||||
|   int flags                       /* SESSION_CHANGESETSTART_* flags */ | ||||
| ); | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: Flags for sqlite3changeset_start_v2 | ||||
| ** | ||||
| ** The following flags may passed via the 4th parameter to | ||||
| ** [sqlite3changeset_start_v2] and [sqlite3changeset_start_v2_strm]: | ||||
| ** | ||||
| ** <dt>SQLITE_CHANGESETAPPLY_INVERT <dd> | ||||
| **   Invert the changeset while iterating through it. This is equivalent to | ||||
| **   inverting a changeset using sqlite3changeset_invert() before applying it. | ||||
| **   It is an error to specify this flag with a patchset. | ||||
| */ | ||||
| #define SQLITE_CHANGESETSTART_INVERT        0x0002 | ||||
|  | ||||
|  | ||||
| /* | ||||
| @@ -9930,7 +10102,7 @@ SQLITE_API int sqlite3changeset_next(sqlite3_changeset_iter *pIter); | ||||
| ** sqlite3changeset_next() is called on the iterator or until the  | ||||
| ** conflict-handler function returns. If pnCol is not NULL, then *pnCol is  | ||||
| ** set to the number of columns in the table affected by the change. If | ||||
| ** pbIncorrect is not NULL, then *pbIndirect is set to true (1) if the change | ||||
| ** pbIndirect is not NULL, then *pbIndirect is set to true (1) if the change | ||||
| ** is an indirect change, or false (0) otherwise. See the documentation for | ||||
| ** [sqlite3session_indirect()] for a description of direct and indirect | ||||
| ** changes. Finally, if pOp is not NULL, then *pOp is set to one of  | ||||
| @@ -10541,7 +10713,7 @@ SQLITE_API int sqlite3changeset_apply_v2( | ||||
|   ), | ||||
|   void *pCtx,                     /* First argument passed to xConflict */ | ||||
|   void **ppRebase, int *pnRebase, /* OUT: Rebase data */ | ||||
|   int flags                       /* Combination of SESSION_APPLY_* flags */ | ||||
|   int flags                       /* SESSION_CHANGESETAPPLY_* flags */ | ||||
| ); | ||||
|  | ||||
| /* | ||||
| @@ -10559,8 +10731,14 @@ SQLITE_API int sqlite3changeset_apply_v2( | ||||
| **   causes the sessions module to omit this savepoint. In this case, if the | ||||
| **   caller has an open transaction or savepoint when apply_v2() is called,  | ||||
| **   it may revert the partially applied changeset by rolling it back. | ||||
| ** | ||||
| ** <dt>SQLITE_CHANGESETAPPLY_INVERT <dd> | ||||
| **   Invert the changeset before applying it. This is equivalent to inverting | ||||
| **   a changeset using sqlite3changeset_invert() before applying it. It is | ||||
| **   an error to specify this flag with a patchset. | ||||
| */ | ||||
| #define SQLITE_CHANGESETAPPLY_NOSAVEPOINT   0x0001 | ||||
| #define SQLITE_CHANGESETAPPLY_INVERT        0x0002 | ||||
|  | ||||
| /*  | ||||
| ** CAPI3REF: Constants Passed To The Conflict Handler | ||||
| @@ -10791,7 +10969,7 @@ SQLITE_API int sqlite3rebaser_configure( | ||||
| ** in size. This function allocates and populates a buffer with a copy | ||||
| ** of the changeset rebased rebased according to the configuration of the | ||||
| ** rebaser object passed as the first argument. If successful, (*ppOut) | ||||
| ** is set to point to the new buffer containing the rebased changset and  | ||||
| ** is set to point to the new buffer containing the rebased changeset and  | ||||
| ** (*pnOut) to its size in bytes and SQLITE_OK returned. It is the | ||||
| ** responsibility of the caller to eventually free the new buffer using | ||||
| ** sqlite3_free(). Otherwise, if an error occurs, (*ppOut) and (*pnOut) | ||||
| @@ -10954,6 +11132,12 @@ SQLITE_API int sqlite3changeset_start_strm( | ||||
|   int (*xInput)(void *pIn, void *pData, int *pnData), | ||||
|   void *pIn | ||||
| ); | ||||
| SQLITE_API int sqlite3changeset_start_v2_strm( | ||||
|   sqlite3_changeset_iter **pp, | ||||
|   int (*xInput)(void *pIn, void *pData, int *pnData), | ||||
|   void *pIn, | ||||
|   int flags | ||||
| ); | ||||
| SQLITE_API int sqlite3session_changeset_strm( | ||||
|   sqlite3_session *pSession, | ||||
|   int (*xOutput)(void *pOut, const void *pData, int nData), | ||||
| @@ -10980,6 +11164,45 @@ SQLITE_API int sqlite3rebaser_rebase_strm( | ||||
|   void *pOut | ||||
| ); | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: Configure global parameters | ||||
| ** | ||||
| ** The sqlite3session_config() interface is used to make global configuration | ||||
| ** changes to the sessions module in order to tune it to the specific needs  | ||||
| ** of the application. | ||||
| ** | ||||
| ** The sqlite3session_config() interface is not threadsafe. If it is invoked | ||||
| ** while any other thread is inside any other sessions method then the | ||||
| ** results are undefined. Furthermore, if it is invoked after any sessions | ||||
| ** related objects have been created, the results are also undefined.  | ||||
| ** | ||||
| ** The first argument to the sqlite3session_config() function must be one | ||||
| ** of the SQLITE_SESSION_CONFIG_XXX constants defined below. The  | ||||
| ** interpretation of the (void*) value passed as the second parameter and | ||||
| ** the effect of calling this function depends on the value of the first | ||||
| ** parameter. | ||||
| ** | ||||
| ** <dl> | ||||
| ** <dt>SQLITE_SESSION_CONFIG_STRMSIZE<dd> | ||||
| **    By default, the sessions module streaming interfaces attempt to input | ||||
| **    and output data in approximately 1 KiB chunks. This operand may be used | ||||
| **    to set and query the value of this configuration setting. The pointer | ||||
| **    passed as the second argument must point to a value of type (int). | ||||
| **    If this value is greater than 0, it is used as the new streaming data | ||||
| **    chunk size for both input and output. Before returning, the (int) value | ||||
| **    pointed to by pArg is set to the final value of the streaming interface | ||||
| **    chunk size. | ||||
| ** </dl> | ||||
| ** | ||||
| ** This function returns SQLITE_OK if successful, or an SQLite error code | ||||
| ** otherwise. | ||||
| */ | ||||
| SQLITE_API int sqlite3session_config(int op, void *pArg); | ||||
|  | ||||
| /* | ||||
| ** CAPI3REF: Values for sqlite3session_config(). | ||||
| */ | ||||
| #define SQLITE_SESSION_CONFIG_STRMSIZE 1 | ||||
|  | ||||
| /* | ||||
| ** Make sure we can call this stuff from C++. | ||||
| @@ -11113,12 +11336,8 @@ struct Fts5PhraseIter { | ||||
| ** | ||||
| **   Usually, output parameter *piPhrase is set to the phrase number, *piCol | ||||
| **   to the column in which it occurs and *piOff the token offset of the | ||||
| **   first token of the phrase. The exception is if the table was created | ||||
| **   with the offsets=0 option specified. In this case *piOff is always | ||||
| **   set to -1. | ||||
| ** | ||||
| **   Returns SQLITE_OK if successful, or an error code (i.e. SQLITE_NOMEM)  | ||||
| **   if an error occurs. | ||||
| **   first token of the phrase. Returns SQLITE_OK if successful, or an error | ||||
| **   code (i.e. SQLITE_NOMEM) if an error occurs. | ||||
| ** | ||||
| **   This API can be quite slow if used with an FTS5 table created with the | ||||
| **   "detail=none" or "detail=column" option.  | ||||
| @@ -11159,7 +11378,7 @@ struct Fts5PhraseIter { | ||||
| **   Save the pointer passed as the second argument as the extension functions  | ||||
| **   "auxiliary data". The pointer may then be retrieved by the current or any | ||||
| **   future invocation of the same fts5 extension function made as part of | ||||
| **   of the same MATCH query using the xGetAuxdata() API. | ||||
| **   the same MATCH query using the xGetAuxdata() API. | ||||
| ** | ||||
| **   Each extension function is allocated a single auxiliary data slot for | ||||
| **   each FTS query (MATCH expression). If the extension function is invoked  | ||||
| @@ -11174,7 +11393,7 @@ struct Fts5PhraseIter { | ||||
| **   The xDelete callback, if one is specified, is also invoked on the | ||||
| **   auxiliary data pointer after the FTS5 query has finished. | ||||
| ** | ||||
| **   If an error (e.g. an OOM condition) occurs within this function, an | ||||
| **   If an error (e.g. an OOM condition) occurs within this function, | ||||
| **   the auxiliary data is set to NULL and an error code returned. If the | ||||
| **   xDelete parameter was not NULL, it is invoked on the auxiliary data | ||||
| **   pointer before returning. | ||||
| @@ -11407,11 +11626,11 @@ struct Fts5ExtensionApi { | ||||
| **            the tokenizer substitutes "first" for "1st" and the query works | ||||
| **            as expected. | ||||
| ** | ||||
| **       <li> By adding multiple synonyms for a single term to the FTS index. | ||||
| **            In this case, when tokenizing query text, the tokenizer may  | ||||
| **            provide multiple synonyms for a single term within the document. | ||||
| **            FTS5 then queries the index for each synonym individually. For | ||||
| **            example, faced with the query: | ||||
| **       <li> By querying the index for all synonyms of each query term | ||||
| **            separately. In this case, when tokenizing query text, the | ||||
| **            tokenizer may provide multiple synonyms for a single term  | ||||
| **            within the document. FTS5 then queries the index for each  | ||||
| **            synonym individually. For example, faced with the query: | ||||
| ** | ||||
| **   <codeblock> | ||||
| **     ... MATCH 'first place'</codeblock> | ||||
| @@ -11435,7 +11654,7 @@ struct Fts5ExtensionApi { | ||||
| **            "place". | ||||
| ** | ||||
| **            This way, even if the tokenizer does not provide synonyms | ||||
| **            when tokenizing query text (it should not - to do would be | ||||
| **            when tokenizing query text (it should not - to do so would be | ||||
| **            inefficient), it doesn't matter if the user queries for  | ||||
| **            'first + place' or '1st + place', as there are entries in the | ||||
| **            FTS index corresponding to both forms of the first token. | ||||
|   | ||||
							
								
								
									
										29
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -683,7 +683,7 @@ func (c *SQLiteConn) RegisterAggregator(name string, impl interface{}, pure bool | ||||
| 		ai.stepArgConverters = append(ai.stepArgConverters, conv) | ||||
| 	} | ||||
| 	if step.IsVariadic() { | ||||
| 		conv, err := callbackArg(t.In(start + stepNArgs).Elem()) | ||||
| 		conv, err := callbackArg(step.In(start + stepNArgs).Elem()) | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| @@ -740,6 +740,8 @@ func (c *SQLiteConn) RegisterAggregator(name string, impl interface{}, pure bool | ||||
|  | ||||
| // AutoCommit return which currently auto commit or not. | ||||
| func (c *SQLiteConn) AutoCommit() bool { | ||||
| 	c.mu.Lock() | ||||
| 	defer c.mu.Unlock() | ||||
| 	return int(C.sqlite3_get_autocommit(c.db)) != 0 | ||||
| } | ||||
|  | ||||
| @@ -1340,6 +1342,9 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) { | ||||
| 		mutex|C.SQLITE_OPEN_READWRITE|C.SQLITE_OPEN_CREATE, | ||||
| 		nil) | ||||
| 	if rv != 0 { | ||||
| 		if db != nil { | ||||
| 			C.sqlite3_close_v2(db) | ||||
| 		} | ||||
| 		return nil, Error{Code: ErrNo(rv)} | ||||
| 	} | ||||
| 	if db == nil { | ||||
| @@ -1376,7 +1381,7 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) { | ||||
| 	//  - Activate User Authentication | ||||
| 	//		Check if the user wants to activate User Authentication. | ||||
| 	//		If so then first create a temporary AuthConn to the database | ||||
| 	//		This is possible because we are already succesfully authenticated. | ||||
| 	//		This is possible because we are already successfully authenticated. | ||||
| 	// | ||||
| 	//	- Check if `sqlite_user`` table exists | ||||
| 	//		YES				=> Add the provided user from DSN as Admin User and | ||||
| @@ -1387,7 +1392,7 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) { | ||||
| 	// Create connection to SQLite | ||||
| 	conn := &SQLiteConn{db: db, loc: loc, txlock: txlock} | ||||
|  | ||||
| 	// Password Cipher has to be registerd before authentication | ||||
| 	// Password Cipher has to be registered before authentication | ||||
| 	if len(authCrypt) > 0 { | ||||
| 		switch strings.ToUpper(authCrypt) { | ||||
| 		case "SHA1": | ||||
| @@ -1674,7 +1679,7 @@ func (c *SQLiteConn) prepare(ctx context.Context, query string) (driver.Stmt, er | ||||
| 	defer C.free(unsafe.Pointer(pquery)) | ||||
| 	var s *C.sqlite3_stmt | ||||
| 	var tail *C.char | ||||
| 	rv := C._sqlite3_prepare_v2_internal(c.db, pquery, -1, &s, &tail) | ||||
| 	rv := C._sqlite3_prepare_v2_internal(c.db, pquery, C.int(-1), &s, &tail) | ||||
| 	if rv != C.SQLITE_OK { | ||||
| 		return nil, c.lastError() | ||||
| 	} | ||||
| @@ -1718,7 +1723,7 @@ func (c *SQLiteConn) GetFilename(schemaName string) string { | ||||
| // GetLimit returns the current value of a run-time limit. | ||||
| // See: sqlite3_limit, http://www.sqlite.org/c3ref/limit.html | ||||
| func (c *SQLiteConn) GetLimit(id int) int { | ||||
| 	return int(C._sqlite3_limit(c.db, C.int(id), -1)) | ||||
| 	return int(C._sqlite3_limit(c.db, C.int(id), C.int(-1))) | ||||
| } | ||||
|  | ||||
| // SetLimit changes the value of a run-time limits. | ||||
| @@ -2024,16 +2029,11 @@ func (rc *SQLiteRows) Next(dest []driver.Value) error { | ||||
| 		case C.SQLITE_BLOB: | ||||
| 			p := C.sqlite3_column_blob(rc.s.s, C.int(i)) | ||||
| 			if p == nil { | ||||
| 				dest[i] = nil | ||||
| 				dest[i] = []byte{} | ||||
| 				continue | ||||
| 			} | ||||
| 			n := int(C.sqlite3_column_bytes(rc.s.s, C.int(i))) | ||||
| 			switch dest[i].(type) { | ||||
| 			default: | ||||
| 				slice := make([]byte, n) | ||||
| 				copy(slice[:], (*[1 << 30]byte)(p)[0:n]) | ||||
| 				dest[i] = slice | ||||
| 			} | ||||
| 			n := C.sqlite3_column_bytes(rc.s.s, C.int(i)) | ||||
| 			dest[i] = C.GoBytes(p, n) | ||||
| 		case C.SQLITE_NULL: | ||||
| 			dest[i] = nil | ||||
| 		case C.SQLITE_TEXT: | ||||
| @@ -2062,9 +2062,8 @@ func (rc *SQLiteRows) Next(dest []driver.Value) error { | ||||
| 				} | ||||
| 				dest[i] = t | ||||
| 			default: | ||||
| 				dest[i] = []byte(s) | ||||
| 				dest[i] = s | ||||
| 			} | ||||
|  | ||||
| 		} | ||||
| 	} | ||||
| 	return nil | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3_func_crypt.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3_func_crypt.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -13,7 +13,7 @@ import ( | ||||
|  | ||||
| // This file provides several different implementations for the | ||||
| // default embedded sqlite_crypt function. | ||||
| // This function is uses a ceasar-cypher by default | ||||
| // This function is uses a caesar-cypher by default | ||||
| // and is used within the UserAuthentication module to encode | ||||
| // the password. | ||||
| // | ||||
| @@ -40,7 +40,7 @@ import ( | ||||
| // password X, sqlite_crypt(X,NULL) is run.  A new random salt is selected | ||||
| // when the second argument is NULL. | ||||
| // | ||||
| // The built-in version of of sqlite_crypt() uses a simple Ceasar-cypher | ||||
| // The built-in version of of sqlite_crypt() uses a simple Caesar-cypher | ||||
| // which prevents passwords from being revealed by searching the raw database | ||||
| // for ASCII text, but is otherwise trivally broken.  For better password | ||||
| // security, the database should be encrypted using the SQLite Encryption | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3_go18.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3_go18.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -10,7 +10,6 @@ package sqlite3 | ||||
|  | ||||
| import ( | ||||
| 	"database/sql/driver" | ||||
| 	"errors" | ||||
|  | ||||
| 	"context" | ||||
| ) | ||||
| @@ -18,7 +17,8 @@ import ( | ||||
| // Ping implement Pinger. | ||||
| func (c *SQLiteConn) Ping(ctx context.Context) error { | ||||
| 	if c.db == nil { | ||||
| 		return errors.New("Connection was closed") | ||||
| 		// must be ErrBadConn for sql to close the database | ||||
| 		return driver.ErrBadConn | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|   | ||||
							
								
								
									
										11
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3ext.h
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/github.com/mattn/go-sqlite3/sqlite3ext.h
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -311,12 +311,18 @@ struct sqlite3_api_routines { | ||||
|   int (*str_errcode)(sqlite3_str*); | ||||
|   int (*str_length)(sqlite3_str*); | ||||
|   char *(*str_value)(sqlite3_str*); | ||||
|   /* Version 3.25.0 and later */ | ||||
|   int (*create_window_function)(sqlite3*,const char*,int,int,void*, | ||||
|                             void (*xStep)(sqlite3_context*,int,sqlite3_value**), | ||||
|                             void (*xFinal)(sqlite3_context*), | ||||
|                             void (*xValue)(sqlite3_context*), | ||||
|                             void (*xInv)(sqlite3_context*,int,sqlite3_value**), | ||||
|                             void(*xDestroy)(void*)); | ||||
|   /* Version 3.26.0 and later */ | ||||
|   const char *(*normalized_sql)(sqlite3_stmt*); | ||||
|   /* Version 3.28.0 and later */ | ||||
|   int (*stmt_isexplain)(sqlite3_stmt*); | ||||
|   int (*value_frombind)(sqlite3_value*); | ||||
| }; | ||||
|  | ||||
| /* | ||||
| @@ -604,6 +610,11 @@ typedef int (*sqlite3_loadext_entry)( | ||||
| #define sqlite3_str_value              sqlite3_api->str_value | ||||
| /* Version 3.25.0 and later */ | ||||
| #define sqlite3_create_window_function sqlite3_api->create_window_function | ||||
| /* Version 3.26.0 and later */ | ||||
| #define sqlite3_normalized_sql         sqlite3_api->normalized_sql | ||||
| /* Version 3.28.0 and later */ | ||||
| #define sqlite3_stmt_isexplain         sqlite3_api->isexplain | ||||
| #define sqlite3_value_frombind         sqlite3_api->frombind | ||||
| #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