Commit 137eddb1 authored by sqlite Upstream's avatar sqlite Upstream Committed by Shawn Waldon
Browse files

sqlite 2018-02-07 (1e6c2aee)

Code extracted from:

    https://gitlab.kitware.com/third-party/sqlite.git

at commit 1e6c2aee385399d746d38c75f464e0e26cc64198 (for/vtk-old).
parents
* -whitespace
sqlite3.c hooks-max-size=8388608
vtk_add_library(vtksqlite
sqlite3.c
sqlite3.h
vtk_sqlite_mangle.h
"${CMAKE_CURRENT_BINARY_DIR}/vtksqlite_export.h")
if (NOT VTK_INSTALL_NO_DEVELOPMENT)
install(FILES
sqlite3.h
vtk_sqlite_mangle.h
"${CMAKE_CURRENT_BINARY_DIR}/vtksqlite_export.h"
DESTINATION "${VTK_INSTALL_INCLUDE_DIR}/vtksqlite"
COMPONENT Development)
endif()
target_compile_definitions(vtksqlite
PRIVATE
SQLITE_THREADSAFE=1)
target_link_libraries(vtksqlite
PRIVATE
${CMAKE_THREAD_LIBS})
target_include_directories(vtksqlite
PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>")
include(GenerateExportHeader)
generate_export_header(vtksqlite
EXPORT_MACRO_NAME SQLITE_API
EXPORT_FILE_NAME vtksqlite_export.h)
# sqlite fork for VTK
This branch contains changes required to embed sqlite into VTK. This
includes changes made primarily to the build system to allow it to be embedded
into another source tree as well as a header to facilitate mangling of the
symbols to avoid conflicts with other copies of the library within a single
process.
* Ignore whitespace errors for VTK's commit checks.
* Integrate the CMake build with VTK's module system.
* Mangle all exported symbols to have a `vtksqlite_` prefix.
<h1 align="center">SQLite Source Repository</h1>
This repository contains the complete source code for the SQLite database
engine. Some test scripts are also include. However, many other test scripts
and most of the documentation are managed separately.
If you are reading this on a Git mirror someplace, you are doing it wrong.
The [official repository](https://www.sqlite.org/src/) is better. Go there
now.
## Obtaining The Code
SQLite sources are managed using the
[Fossil](https://www.fossil-scm.org/), a distributed version control system
that was specifically designed to support SQLite development.
If you do not want to use Fossil, you can download tarballs or ZIP
archives as follows:
* Lastest trunk check-in:
<https://www.sqlite.org/src/tarball/sqlite.tar.gz> or
<https://www.sqlite.org/src/zip/sqlite.zip>.
* Latest release:
<https://www.sqlite.org/src/tarball/sqlite.tar.gz?r=release> or
<https://www.sqlite.org/src/zip/sqlite.zip?r=release>.
* For other check-ins, substitute an appropriate branch name or
tag or hash prefix for "release" in the URLs of the previous
bullet. Or browse the [timeline](https://www.sqlite.org/src/timeline)
to locate the check-in desired, click on its information page link,
then click on the "Tarball" or "ZIP Archive" links on the information
page.
If you do want to use Fossil to check out the source tree,
first install Fossil version 2.0 or later.
(Source tarballs and precompiled binaries available
[here](https://www.fossil-scm.org/fossil/uv/download.html). Fossil is
a stand-alone program. To install, simply download or build the single
executable file and put that file someplace on your $PATH.)
Then run commands like this:
mkdir ~/sqlite
cd ~/sqlite
fossil clone https://www.sqlite.org/src sqlite.fossil
fossil open sqlite.fossil
After setting up a repository using the steps above, you can always
update to the lastest version using:
fossil update trunk ;# latest trunk check-in
fossil update release ;# latest official release
Or type "fossil ui" to get a web-based user interface.
## Compiling
First create a directory in which to place
the build products. It is recommended, but not required, that the
build directory be separate from the source directory. Cd into the
build directory and then from the build directory run the configure
script found at the root of the source tree. Then run "make".
For example:
tar xzf sqlite.tar.gz ;# Unpack the source tree into "sqlite"
mkdir bld ;# Build will occur in a sibling directory
cd bld ;# Change to the build directory
../sqlite/configure ;# Run the configure script
make ;# Run the makefile.
make sqlite3.c ;# Build the "amalgamation" source file
make test ;# Run some tests (requires Tcl)
See the makefile for additional targets.
The configure script uses autoconf 2.61 and libtool. If the configure
script does not work out for you, there is a generic makefile named
"Makefile.linux-gcc" in the top directory of the source tree that you
can copy and edit to suit your needs. Comments on the generic makefile
show what changes are needed.
## Using MSVC
On Windows, all applicable build products can be compiled with MSVC.
First open the command prompt window associated with the desired compiler
version (e.g. "Developer Command Prompt for VS2013"). Next, use NMAKE
with the provided "Makefile.msc" to build one of the supported targets.
For example:
mkdir bld
cd bld
nmake /f Makefile.msc TOP=..\sqlite
nmake /f Makefile.msc sqlite3.c TOP=..\sqlite
nmake /f Makefile.msc sqlite3.dll TOP=..\sqlite
nmake /f Makefile.msc sqlite3.exe TOP=..\sqlite
nmake /f Makefile.msc test TOP=..\sqlite
There are several build options that can be set via the NMAKE command
line. For example, to build for WinRT, simply add "FOR_WINRT=1" argument
to the "sqlite3.dll" command line above. When debugging into the SQLite
code, adding the "DEBUG=1" argument to one of the above command lines is
recommended.
SQLite does not require [Tcl](http://www.tcl.tk/) to run, but a Tcl installation
is required by the makefiles (including those for MSVC). SQLite contains
a lot of generated code and Tcl is used to do much of that code generation.
The makefiles also require AWK.
## Source Code Tour
Most of the core source files are in the **src/** subdirectory. The
**src/** folder also contains files used to build the "testfixture" test
harness. The names of the source files used by "testfixture" all begin
with "test".
The **src/** also contains the "shell.c" file
which is the main program for the "sqlite3.exe"
[command-line shell](https://sqlite.org/cli.html) and
the "tclsqlite.c" file which implements the
[TCL bindings](https://sqlite.org/tclsqlite.html) for SQLite.
(Historical note: SQLite began as a Tcl
extension and only later escaped to the wild as an independent library.)
Test scripts and programs are found in the **test/** subdirectory.
Addtional test code is found in other source repositories.
See [How SQLite Is Tested](http://www.sqlite.org/testing.html) for
additional information.
The **ext/** subdirectory contains code for extensions. The
Full-text search engine is in **ext/fts3**. The R-Tree engine is in
**ext/rtree**. The **ext/misc** subdirectory contains a number of
smaller, single-file extensions, such as a REGEXP operator.
The **tool/** subdirectory contains various scripts and programs used
for building generated source code files or for testing or for generating
accessory programs such as "sqlite3_analyzer(.exe)".
### Generated Source Code Files
Several of the C-language source files used by SQLite are generated from
other sources rather than being typed in manually by a programmer. This
section will summarize those automatically-generated files. To create all
of the automatically-generated files, simply run "make target&#95;source".
The "target&#95;source" make target will create a subdirectory "tsrc/" and
fill it with all the source files needed to build SQLite, both
manually-edited files and automatically-generated files.
The SQLite interface is defined by the **sqlite3.h** header file, which is
generated from src/sqlite.h.in, ./manifest.uuid, and ./VERSION. The
[Tcl script](http://www.tcl.tk) at tool/mksqlite3h.tcl does the conversion.
The manifest.uuid file contains the SHA3 hash of the particular check-in
and is used to generate the SQLITE\_SOURCE\_ID macro. The VERSION file
contains the current SQLite version number. The sqlite3.h header is really
just a copy of src/sqlite.h.in with the source-id and version number inserted
at just the right spots. Note that comment text in the sqlite3.h file is
used to generate much of the SQLite API documentation. The Tcl scripts
used to generate that documentation are in a separate source repository.
The SQL language parser is **parse.c** which is generate from a grammar in
the src/parse.y file. The conversion of "parse.y" into "parse.c" is done
by the [lemon](./doc/lemon.html) LALR(1) parser generator. The source code
for lemon is at tool/lemon.c. Lemon uses the tool/lempar.c file as a
template for generating its parser.
Lemon also generates the **parse.h** header file, at the same time it
generates parse.c. But the parse.h header file is
modified further (to add additional symbols) using the ./addopcodes.awk
AWK script.
The **opcodes.h** header file contains macros that define the numbers
corresponding to opcodes in the "VDBE" virtual machine. The opcodes.h
file is generated by the scanning the src/vdbe.c source file. The
AWK script at ./mkopcodeh.awk does this scan and generates opcodes.h.
A second AWK script, ./mkopcodec.awk, then scans opcodes.h to generate
the **opcodes.c** source file, which contains a reverse mapping from
opcode-number to opcode-name that is used for EXPLAIN output.
The **keywordhash.h** header file contains the definition of a hash table
that maps SQL language keywords (ex: "CREATE", "SELECT", "INDEX", etc.) into
the numeric codes used by the parse.c parser. The keywordhash.h file is
generated by a C-language program at tool mkkeywordhash.c.
The **pragma.h** header file contains various definitions used to parse
and implement the PRAGMA statements. The header is generated by a
script **tool/mkpragmatab.tcl**. If you want to add a new PRAGMA, edit
the **tool/mkpragmatab.tcl** file to insert the information needed by the
parser for your new PRAGMA, then run the script to regenerate the
**pragma.h** header file.
### The Amalgamation
All of the individual C source code and header files (both manually-edited
and automatically-generated) can be combined into a single big source file
**sqlite3.c** called "the amalgamation". The amalgamation is the recommended
way of using SQLite in a larger application. Combining all individual
source code files into a single big source code file allows the C compiler
to perform more cross-procedure analysis and generate better code. SQLite
runs about 5% faster when compiled from the amalgamation versus when compiled
from individual source files.
The amalgamation is generated from the tool/mksqlite3c.tcl Tcl script.
First, all of the individual source files must be gathered into the tsrc/
subdirectory (using the equivalent of "make target_source") then the
tool/mksqlite3c.tcl script is run to copy them all together in just the
right order while resolving internal "#include" references.
The amalgamation source file is more than 200K lines long. Some symbolic
debuggers (most notably MSVC) are unable to deal with files longer than 64K
lines. To work around this, a separate Tcl script, tool/split-sqlite3c.tcl,
can be run on the amalgamation to break it up into a single small C file
called **sqlite3-all.c** that does #include on about five other files
named **sqlite3-1.c**, **sqlite3-2.c**, ..., **sqlite3-5.c**. In this way,
all of the source code is contained within a single translation unit so
that the compiler can do extra cross-procedure optimization, but no
individual source file exceeds 32K lines in length.
## How It All Fits Together
SQLite is modular in design.
See the [architectural description](http://www.sqlite.org/arch.html)
for details. Other documents that are useful in
(helping to understand how SQLite works include the
[file format](http://www.sqlite.org/fileformat2.html) description,
the [virtual machine](http://www.sqlite.org/opcode.html) that runs
prepared statements, the description of
[how transactions work](http://www.sqlite.org/atomiccommit.html), and
the [overview of the query planner](http://www.sqlite.org/optoverview.html).
Years of effort have gone into optimizating SQLite, both
for small size and high performance. And optimizations tend to result in
complex code. So there is a lot of complexity in the current SQLite
implementation. It will not be the easiest library in the world to hack.
Key files:
* **sqlite.h.in** - This file defines the public interface to the SQLite
library. Readers will need to be familiar with this interface before
trying to understand how the library works internally.
* **sqliteInt.h** - this header file defines many of the data objects
used internally by SQLite.
* **parse.y** - This file describes the LALR(1) grammar that SQLite uses
to parse SQL statements, and the actions that are taken at each step
in the parsing process.
* **vdbe.c** - This file implements the virtual machine that runs
prepared statements. There are various helper files whose names
begin with "vdbe". The VDBE has access to the vdbeInt.h header file
which defines internal data objects. The rest of SQLite interacts
with the VDBE through an interface defined by vdbe.h.
* **where.c** - This file analyzes the WHERE clause and generates
virtual machine code to run queries efficiently. This file is
sometimes called the "query optimizer". It has its own private
header file, whereInt.h, that defines data objects used internally.
* **btree.c** - This file contains the implementation of the B-Tree
storage engine used by SQLite.
* **pager.c** - This file contains the "pager" implementation, the
module that implements transactions.
* **os_unix.c** and **os_win.c** - These two files implement the interface
between SQLite and the underlying operating system using the run-time
pluggable VFS interface.
* **shell.c** - This file is not part of the core SQLite library. This
is the file that, when linked against sqlite3.a, generates the
"sqlite3.exe" command-line shell.
* **tclsqlite.c** - This file implements the Tcl bindings for SQLite. It
is not part of the core SQLite library. But as most of the tests in this
repository are written in Tcl, the Tcl language bindings are important.
There are many other source files. Each has a succinct header comment that
describes its purpose and role within the larger system.
## Contacts
The main SQLite webpage is [http://www.sqlite.org/](http://www.sqlite.org/)
with geographically distributed backups at
[http://www2.sqlite.org/](http://www2.sqlite.org) and
[http://www3.sqlite.org/](http://www3.sqlite.org).
This diff is collapsed.
This diff is collapsed.
#ifndef vtk_sqlite_mangle_h
#define vtk_sqlite_mangle_h
#define sqlite3_aggregate_context vtksqlite_sqlite3_aggregate_context
#define sqlite3_aggregate_count vtksqlite_sqlite3_aggregate_count
#define sqlite3_auto_extension vtksqlite_sqlite3_auto_extension
#define sqlite3_backup_finish vtksqlite_sqlite3_backup_finish
#define sqlite3_backup_init vtksqlite_sqlite3_backup_init
#define sqlite3_backup_pagecount vtksqlite_sqlite3_backup_pagecount
#define sqlite3_backup_remaining vtksqlite_sqlite3_backup_remaining
#define sqlite3_backup_step vtksqlite_sqlite3_backup_step
#define sqlite3_bind_blob vtksqlite_sqlite3_bind_blob
#define sqlite3_bind_blob64 vtksqlite_sqlite3_bind_blob64
#define sqlite3_bind_double vtksqlite_sqlite3_bind_double
#define sqlite3_bind_int vtksqlite_sqlite3_bind_int
#define sqlite3_bind_int64 vtksqlite_sqlite3_bind_int64
#define sqlite3_bind_null vtksqlite_sqlite3_bind_null
#define sqlite3_bind_parameter_count vtksqlite_sqlite3_bind_parameter_count
#define sqlite3_bind_parameter_index vtksqlite_sqlite3_bind_parameter_index
#define sqlite3_bind_parameter_name vtksqlite_sqlite3_bind_parameter_name
#define sqlite3_bind_pointer vtksqlite_sqlite3_bind_pointer
#define sqlite3_bind_text vtksqlite_sqlite3_bind_text
#define sqlite3_bind_text16 vtksqlite_sqlite3_bind_text16
#define sqlite3_bind_text64 vtksqlite_sqlite3_bind_text64
#define sqlite3_bind_value vtksqlite_sqlite3_bind_value
#define sqlite3_bind_zeroblob vtksqlite_sqlite3_bind_zeroblob
#define sqlite3_bind_zeroblob64 vtksqlite_sqlite3_bind_zeroblob64
#define sqlite3_blob_bytes vtksqlite_sqlite3_blob_bytes
#define sqlite3_blob_close vtksqlite_sqlite3_blob_close
#define sqlite3_blob_open vtksqlite_sqlite3_blob_open
#define sqlite3_blob_read vtksqlite_sqlite3_blob_read
#define sqlite3_blob_reopen vtksqlite_sqlite3_blob_reopen
#define sqlite3_blob_write vtksqlite_sqlite3_blob_write
#define sqlite3_busy_handler vtksqlite_sqlite3_busy_handler
#define sqlite3_busy_timeout vtksqlite_sqlite3_busy_timeout
#define sqlite3_cancel_auto_extension vtksqlite_sqlite3_cancel_auto_extension
#define sqlite3_changes vtksqlite_sqlite3_changes
#define sqlite3_clear_bindings vtksqlite_sqlite3_clear_bindings
#define sqlite3_close vtksqlite_sqlite3_close
#define sqlite3_close_v2 vtksqlite_sqlite3_close_v2
#define sqlite3_collation_needed vtksqlite_sqlite3_collation_needed
#define sqlite3_collation_needed16 vtksqlite_sqlite3_collation_needed16
#define sqlite3_column_blob vtksqlite_sqlite3_column_blob
#define sqlite3_column_bytes vtksqlite_sqlite3_column_bytes
#define sqlite3_column_bytes16 vtksqlite_sqlite3_column_bytes16
#define sqlite3_column_count vtksqlite_sqlite3_column_count
#define sqlite3_column_decltype vtksqlite_sqlite3_column_decltype
#define sqlite3_column_decltype16 vtksqlite_sqlite3_column_decltype16
#define sqlite3_column_double vtksqlite_sqlite3_column_double
#define sqlite3_column_int vtksqlite_sqlite3_column_int
#define sqlite3_column_int64 vtksqlite_sqlite3_column_int64
#define sqlite3_column_name vtksqlite_sqlite3_column_name
#define sqlite3_column_name16 vtksqlite_sqlite3_column_name16
#define sqlite3_column_text vtksqlite_sqlite3_column_text
#define sqlite3_column_text16 vtksqlite_sqlite3_column_text16
#define sqlite3_column_type vtksqlite_sqlite3_column_type
#define sqlite3_column_value vtksqlite_sqlite3_column_value
#define sqlite3_commit_hook vtksqlite_sqlite3_commit_hook
#define sqlite3_compileoption_get vtksqlite_sqlite3_compileoption_get
#define sqlite3_compileoption_used vtksqlite_sqlite3_compileoption_used
#define sqlite3_complete vtksqlite_sqlite3_complete
#define sqlite3_complete16 vtksqlite_sqlite3_complete16
#define sqlite3_config vtksqlite_sqlite3_config
#define sqlite3_context_db_handle vtksqlite_sqlite3_context_db_handle
#define sqlite3_create_collation vtksqlite_sqlite3_create_collation
#define sqlite3_create_collation16 vtksqlite_sqlite3_create_collation16
#define sqlite3_create_collation_v2 vtksqlite_sqlite3_create_collation_v2
#define sqlite3_create_function vtksqlite_sqlite3_create_function
#define sqlite3_create_function16 vtksqlite_sqlite3_create_function16
#define sqlite3_create_function_v2 vtksqlite_sqlite3_create_function_v2
#define sqlite3_create_module vtksqlite_sqlite3_create_module
#define sqlite3_create_module_v2 vtksqlite_sqlite3_create_module_v2
#define sqlite3_data_count vtksqlite_sqlite3_data_count
#define sqlite3_db_cacheflush vtksqlite_sqlite3_db_cacheflush
#define sqlite3_db_config vtksqlite_sqlite3_db_config
#define sqlite3_db_filename vtksqlite_sqlite3_db_filename
#define sqlite3_db_handle vtksqlite_sqlite3_db_handle
#define sqlite3_db_mutex vtksqlite_sqlite3_db_mutex
#define sqlite3_db_readonly vtksqlite_sqlite3_db_readonly
#define sqlite3_db_release_memory vtksqlite_sqlite3_db_release_memory
#define sqlite3_db_status vtksqlite_sqlite3_db_status
#define sqlite3_declare_vtab vtksqlite_sqlite3_declare_vtab
#define sqlite3_enable_load_extension vtksqlite_sqlite3_enable_load_extension
#define sqlite3_enable_shared_cache vtksqlite_sqlite3_enable_shared_cache
#define sqlite3_errcode vtksqlite_sqlite3_errcode
#define sqlite3_errmsg vtksqlite_sqlite3_errmsg
#define sqlite3_errmsg16 vtksqlite_sqlite3_errmsg16
#define sqlite3_errstr vtksqlite_sqlite3_errstr
#define sqlite3_exec vtksqlite_sqlite3_exec
#define sqlite3_expanded_sql vtksqlite_sqlite3_expanded_sql
#define sqlite3_expired vtksqlite_sqlite3_expired
#define sqlite3_extended_errcode vtksqlite_sqlite3_extended_errcode
#define sqlite3_extended_result_codes vtksqlite_sqlite3_extended_result_codes
#define sqlite3_file_control vtksqlite_sqlite3_file_control
#define sqlite3_finalize vtksqlite_sqlite3_finalize
#define sqlite3_free vtksqlite_sqlite3_free
#define sqlite3_free_table vtksqlite_sqlite3_free_table
#define sqlite3_get_autocommit vtksqlite_sqlite3_get_autocommit
#define sqlite3_get_auxdata vtksqlite_sqlite3_get_auxdata
#define sqlite3_get_table vtksqlite_sqlite3_get_table
#define sqlite3_global_recover vtksqlite_sqlite3_global_recover
#define sqlite3_initialize vtksqlite_sqlite3_initialize
#define sqlite3_interrupt vtksqlite_sqlite3_interrupt
#define sqlite3_last_insert_rowid vtksqlite_sqlite3_last_insert_rowid
#define sqlite3_libversion vtksqlite_sqlite3_libversion
#define sqlite3_libversion_number vtksqlite_sqlite3_libversion_number
#define sqlite3_limit vtksqlite_sqlite3_limit
#define sqlite3_load_extension vtksqlite_sqlite3_load_extension
#define sqlite3_log vtksqlite_sqlite3_log
#define sqlite3_malloc vtksqlite_sqlite3_malloc
#define sqlite3_malloc64 vtksqlite_sqlite3_malloc64
#define sqlite3_memory_alarm vtksqlite_sqlite3_memory_alarm
#define sqlite3_memory_highwater vtksqlite_sqlite3_memory_highwater
#define sqlite3_memory_used vtksqlite_sqlite3_memory_used
#define sqlite3_mprintf vtksqlite_sqlite3_mprintf
#define sqlite3_msize vtksqlite_sqlite3_msize
#define sqlite3_mutex_alloc vtksqlite_sqlite3_mutex_alloc
#define sqlite3_mutex_enter vtksqlite_sqlite3_mutex_enter
#define sqlite3_mutex_free vtksqlite_sqlite3_mutex_free
#define sqlite3_mutex_leave vtksqlite_sqlite3_mutex_leave
#define sqlite3_mutex_try vtksqlite_sqlite3_mutex_try
#define sqlite3_next_stmt vtksqlite_sqlite3_next_stmt
#define sqlite3_open vtksqlite_sqlite3_open
#define sqlite3_open16 vtksqlite_sqlite3_open16
#define sqlite3_open_v2 vtksqlite_sqlite3_open_v2
#define sqlite3_os_end vtksqlite_sqlite3_os_end
#define sqlite3_os_init vtksqlite_sqlite3_os_init
#define sqlite3_overload_function vtksqlite_sqlite3_overload_function
#define sqlite3_prepare vtksqlite_sqlite3_prepare
#define sqlite3_prepare16 vtksqlite_sqlite3_prepare16
#define sqlite3_prepare16_v2 vtksqlite_sqlite3_prepare16_v2
#define sqlite3_prepare16_v3 vtksqlite_sqlite3_prepare16_v3
#define sqlite3_prepare_v2 vtksqlite_sqlite3_prepare_v2
#define sqlite3_prepare_v3 vtksqlite_sqlite3_prepare_v3
#define sqlite3_profile vtksqlite_sqlite3_profile
#define sqlite3_progress_handler vtksqlite_sqlite3_progress_handler
#define sqlite3_randomness vtksqlite_sqlite3_randomness
#define sqlite3_realloc vtksqlite_sqlite3_realloc
#define sqlite3_realloc64 vtksqlite_sqlite3_realloc64
#define sqlite3_release_memory vtksqlite_sqlite3_release_memory
#define sqlite3_reset vtksqlite_sqlite3_reset
#define sqlite3_reset_auto_extension vtksqlite_sqlite3_reset_auto_extension
#define sqlite3_result_blob vtksqlite_sqlite3_result_blob
#define sqlite3_result_blob64 vtksqlite_sqlite3_result_blob64
#define sqlite3_result_double vtksqlite_sqlite3_result_double
#define sqlite3_result_error vtksqlite_sqlite3_result_error
#define sqlite3_result_error16 vtksqlite_sqlite3_result_error16
#define sqlite3_result_error_code vtksqlite_sqlite3_result_error_code
#define sqlite3_result_error_nomem vtksqlite_sqlite3_result_error_nomem
#define sqlite3_result_error_toobig vtksqlite_sqlite3_result_error_toobig
#define sqlite3_result_int vtksqlite_sqlite3_result_int
#define sqlite3_result_int64 vtksqlite_sqlite3_result_int64
#define sqlite3_result_null vtksqlite_sqlite3_result_null
#define sqlite3_result_pointer vtksqlite_sqlite3_result_pointer
#define sqlite3_result_subtype vtksqlite_sqlite3_result_subtype
#define sqlite3_result_text vtksqlite_sqlite3_result_text
#define sqlite3_result_text16 vtksqlite_sqlite3_result_text16
#define sqlite3_result_text16be vtksqlite_sqlite3_result_text16be
#define sqlite3_result_text16le vtksqlite_sqlite3_result_text16le
#define sqlite3_result_text64 vtksqlite_sqlite3_result_text64
#define sqlite3_result_value vtksqlite_sqlite3_result_value
#define sqlite3_result_zeroblob vtksqlite_sqlite3_result_zeroblob
#define sqlite3_result_zeroblob64 vtksqlite_sqlite3_result_zeroblob64
#define sqlite3_rollback_hook vtksqlite_sqlite3_rollback_hook
#define sqlite3_set_authorizer vtksqlite_sqlite3_set_authorizer
#define sqlite3_set_auxdata vtksqlite_sqlite3_set_auxdata
#define sqlite3_set_last_insert_rowid vtksqlite_sqlite3_set_last_insert_rowid
#define sqlite3_shutdown vtksqlite_sqlite3_shutdown
#define sqlite3_sleep vtksqlite_sqlite3_sleep
#define sqlite3_snprintf vtksqlite_sqlite3_snprintf
#define sqlite3_soft_heap_limit vtksqlite_sqlite3_soft_heap_limit
#define sqlite3_soft_heap_limit64 vtksqlite_sqlite3_soft_heap_limit64
#define sqlite3_sourceid vtksqlite_sqlite3_sourceid
#define sqlite3_sql vtksqlite_sqlite3_sql
#define sqlite3_status vtksqlite_sqlite3_status
#define sqlite3_status64 vtksqlite_sqlite3_status64
#define sqlite3_step vtksqlite_sqlite3_step
#define sqlite3_stmt_busy vtksqlite_sqlite3_stmt_busy
#define sqlite3_stmt_readonly vtksqlite_sqlite3_stmt_readonly
#define sqlite3_stmt_status vtksqlite_sqlite3_stmt_status
#define sqlite3_strglob vtksqlite_sqlite3_strglob
#define sqlite3_stricmp vtksqlite_sqlite3_stricmp
#define sqlite3_strlike vtksqlite_sqlite3_strlike
#define sqlite3_strnicmp vtksqlite_sqlite3_strnicmp
#define sqlite3_system_errno vtksqlite_sqlite3_system_errno
#define sqlite3_table_column_metadata vtksqlite_sqlite3_table_column_metadata
#define sqlite3_test_control vtksqlite_sqlite3_test_control
#define sqlite3_thread_cleanup vtksqlite_sqlite3_thread_cleanup
#define sqlite3_threadsafe vtksqlite_sqlite3_threadsafe
#define sqlite3_total_changes vtksqlite_sqlite3_total_changes
#define sqlite3_trace vtksqlite_sqlite3_trace
#define sqlite3_trace_v2 vtksqlite_sqlite3_trace_v2
#define sqlite3_transfer_bindings vtksqlite_sqlite3_transfer_bindings
#define sqlite3_update_hook vtksqlite_sqlite3_update_hook
#define sqlite3_uri_boolean vtksqlite_sqlite3_uri_boolean
#define sqlite3_uri_int64 vtksqlite_sqlite3_uri_int64
#define sqlite3_uri_parameter vtksqlite_sqlite3_uri_parameter
#define sqlite3_user_data vtksqlite_sqlite3_user_data
#define sqlite3_value_blob vtksqlite_sqlite3_value_blob
#define sqlite3_value_bytes vtksqlite_sqlite3_value_bytes
#define sqlite3_value_bytes16 vtksqlite_sqlite3_value_bytes16
#define sqlite3_value_double vtksqlite_sqlite3_value_double
#define sqlite3_value_dup vtksqlite_sqlite3_value_dup
#define sqlite3_value_free vtksqlite_sqlite3_value_free
#define sqlite3_value_int vtksqlite_sqlite3_value_int
#define sqlite3_value_int64 vtksqlite_sqlite3_value_int64
#define sqlite3_value_numeric_type vtksqlite_sqlite3_value_numeric_type
#define sqlite3_value_pointer vtksqlite_sqlite3_value_pointer
#define sqlite3_value_subtype vtksqlite_sqlite3_value_subtype
#define sqlite3_value_text vtksqlite_sqlite3_value_text
#define sqlite3_value_text16 vtksqlite_sqlite3_value_text16
#define sqlite3_value_text16be vtksqlite_sqlite3_value_text16be
#define sqlite3_value_text16le vtksqlite_sqlite3_value_text16le
#define sqlite3_value_type vtksqlite_sqlite3_value_type
#define sqlite3_vfs_find vtksqlite_sqlite3_vfs_find
#define sqlite3_vfs_register vtksqlite_sqlite3_vfs_register
#define sqlite3_vfs_unregister vtksqlite_sqlite3_vfs_unregister
#define sqlite3_vmprintf vtksqlite_sqlite3_vmprintf
#define sqlite3_vsnprintf vtksqlite_sqlite3_vsnprintf
#define sqlite3_vtab_config vtksqlite_sqlite3_vtab_config
#define sqlite3_vtab_on_conflict vtksqlite_sqlite3_vtab_on_conflict
#define sqlite3_wal_autocheckpoint vtksqlite_sqlite3_wal_autocheckpoint
#define sqlite3_wal_checkpoint vtksqlite_sqlite3_wal_checkpoint
#define sqlite3_wal_checkpoint_v2 vtksqlite_sqlite3_wal_checkpoint_v2
#define sqlite3_wal_hook vtksqlite_sqlite3_wal_hook
#endif
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment