14# include "private_mk.h"
16# include "LibMkKernel_mk.h"
19#ifndef PARSE_C_HEADER_TO_META
168# undef SQ3_C_BUILD_DLL
169# define SQ3_C_BUILD_DLL
173# define SQ3_RT_ARGS_ONLY MK_RT mkrt
174# define SQ3_RT_ARGS SQ3_RT_ARGS_ONLY,
175# define SQ3_RT_CALL_ONLY mkrt
176# define SQ3_RT_CALL SQ3_RT_CALL_ONLY,
178# define SQ3_RT_ARGS_ONLY void
180# define SQ3_RT_CALL_ONLY
190#undef BEGIN_SQ3_C_DECLS
191#undef END_SQ3_C_DECLS
192#if defined(META_COMPILE_AS_CC)
193# define BEGIN_SQ3_C_DECLS namespace libsq3lite { using namespace libmkkernel;
194# define END_SQ3_C_DECLS }
195#elif defined(__cplusplus)
196# define BEGIN_SQ3_C_DECLS extern "C" {
197# define END_SQ3_C_DECLS }
199# define BEGIN_SQ3_C_DECLS
200# define END_SQ3_C_DECLS
204#ifndef PARSE_C_HEADER_TO_META
221# define SQ3_INSTANCE_HDL(x) MK_INSTANCE_HDL(x)
223# define SQ3_INSTANCE_RT_X(x) MK_INSTANCE_RT_X(x)
224# define SQ3_INSTANCE_RT_X_NULL(x) MK_INSTANCE_RT_X_NULL(x)
225# define SQ3_INSTANCE_RT_O(o) MK_INSTANCE_RT_O(o)
226# define SQ3_INSTANCE_RT_O_NULL(o) MK_INSTANCE_RT_O_NULL(o)
227# define SQ3_DESTRUCTOR_RT_X(c,x) MK_DESTRUCTOR_RT_X(c,x)
228# define SQ3_STATIC_RT MK_STATIC_RT
247#if defined(META_IGNORE_EXTERN)
251# if defined(DLL_EXPORT)
253# if defined(SQ3_C_BUILD_DLL)
254# define SQ3_EXTERN __declspec(dllexport)
256# define SQ3_EXTERN __declspec(dllimport)
260# define SQ3_EXTERN __attribute__ ((visibility("default")))
268#undef SQ3_EXTERN_DATA
269#if defined(META_PRIVATE)
270# define SQ3_EXTERN_DATA extern
271#elif defined(META_IGNORE_EXTERN)
272# define SQ3_EXTERN_DATA extern
275# if defined(DLL_EXPORT)
277# if defined(SQ3_C_BUILD_DLL)
278# define SQ3_EXTERN_DATA __declspec(dllexport)
280# define SQ3_EXTERN_DATA __declspec(dllimport)
284# define SQ3_EXTERN_DATA __attribute__ ((visibility("default"))) extern
287# define SQ3_EXTERN_DATA extern
334#define SQ3_SET_T(_cls,_hook,_nat) ({ \
336 (_cls##_type) MkObjCreate(_cls##_TT,_nat,NULL); \
347 __parser__(type=ME_CCC_Sq3ValueC:
"Sq3ValueC class handle":primary)
350 __parser__(type=ME_CCN_Sq3ValueC:"const - Sq3ValueC class handle":primary)
361 __parser__(type=ME_CCC_Sq3StmtC:"Sq3StmtC class handle":primary)
364 __parser__(type=ME_CCN_Sq3StmtC:"const - Sq3StmtC class handle":primary)
375 __parser__(type=ME_CCC_Sq3BlobC:"Sq3BlobC class handle":primary)
378 __parser__(type=ME_CCN_Sq3BlobC:"const - Sq3BlobC class handle":primary)
389 __parser__(type=ME_CCC_Sq3FileC:"Sq3FileC class handle":primary)
392 __parser__(type=ME_CCN_Sq3FileC:"const - Sq3FileC class handle":primary)
403 __parser__(type=ME_CCC_Sq3LiteC:"Sq3LiteC class handle":primary)
406 __parser__(type=ME_CCN_Sq3LiteC:"const - Sq3LiteC class handle":primary)
420 #include "Sq3Enum_sq3.h"
450 return ((ret) > SQ3_RESULT_OK && (ret) < SQ3_RESULT_ROW) ;
459#define Sq3ErrorE_Check(sq3_hdl,PROC) \
460 if (unlikely(Sq3ErrorCheckI(PROC))) { \
461 Sq3LiteErrorToMQ(MkOBJ(sq3_hdl), __func__,__FILE__,__LINE__); \
465#define Sq3ErrorE_Check_Package(PROC) \
466 if (unlikely(Sq3ErrorCheckI(PROC))) { \
467 Sq3LiteErrorToMQ(MK_ERROR_DEFAULT_NULL, __func__,__FILE__,__LINE__); \
471#define Sq3ErrorE_Check_Static(cls_hdl, PROC) \
472 if (unlikely(Sq3ErrorCheckI(PROC))) { \
473 Sq3LiteErrorToMQ(MkOBJ(cls_hdl), __func__,__FILE__,__LINE__); \
477#define Sq3ErrorE_Check_Ctor(__cls, __hdl, PROC) \
478 if (unlikely(Sq3ErrorCheckI(PROC))) { \
479 Sq3LiteErrorToMQ(__hdl?MkOBJ(__hdl):MkOBJ(__cls), __func__,__FILE__,__LINE__); \
496 MK_STRN
const func
__parser__(
default=F#FUNC) ,
497 MK_STRN
const file
__parser__(
default=F#FILE) ,
516__parser__(hide,
class=Sq3Lite,doc-group=Config)
525#ifndef PARSE_C_HEADER_TO_META
539#ifndef META_DOXYGEN_SHOULD_SKIP_THIS
541 #ifdef PARSE_C_HEADER_TO_META
542 #include "sqlite3_modified.h"
549__parser__(type=ME_PSN_SQ3_FILENAME:
"constant string filename data-type":primary)
550typedef sqlite3_filename SQ3_FILENAME;
620#ifndef PARSE_C_HEADER_TO_META
626 #define Sq3Fupu_Sq3LiteProgressHandler_X_ret MK_I32
627 #define Sq3Fupu_Sq3LiteProgressHandler_X_args MK_PTR P
633 #define Sq3Fupu_Sq3LiteSetAuthorizer_xAuth_ret MK_I32
634 #define Sq3Fupu_Sq3LiteSetAuthorizer_xAuth_args MK_PTR pUserData, MK_I32 auth_action_code, MK_STRN arg2, MK_STRN arg3, MK_STRN arg4, MK_STRN arg5
644#ifndef PARSE_C_HEADER_TO_META
650 MK_STRN __retVal__L = sqlite3_compileoption_get(N);
655 mk_inline MK_BOOL Sq3CompileOptionUsed (MK_STRN zOptName) {
656 return (MK_BOOL)sqlite3_compileoption_used(zOptName);
661 struct sqlite3 * sq3lite_hdl = sq3lite->nat;
662 sqlite3_progress_handler(sq3lite_hdl, N, X, (MK_PTR)(P));
666 mk_inline enum Sq3AuthReturnE Sq3LiteSetAuthorizer (SQ3_LITE sq3lite, Sq3Fupu_Sq3LiteSetAuthorizer_xAuth xAuth, MK_PTR pUserData) {
667 struct sqlite3 * sq3lite_hdl = sq3lite->nat;
668 return (
enum Sq3AuthReturnE)sqlite3_set_authorizer(sq3lite_hdl, xAuth, (MK_PTR)(pUserData));
672 mk_inline MK_I64 Sq3MemoryHighwater (MK_I32 resetFlag) {
673 return sqlite3_memory_highwater(resetFlag);
678 return sqlite3_memory_used();
683 sqlite3_randomness(N, (
MK_PTR)(P));
687 mk_inline enum MkErrorE Sq3Threadsafe (
void) {
688 enum Sq3ErrorE errVal = (
enum Sq3ErrorE)sqlite3_threadsafe();
696#ifndef PARSE_C_HEADER_TO_META
710 mk_inline enum MkErrorE Sq3KeywordCheck (MK_STRN arg0, MK_I32 arg1) {
711 enum Sq3ErrorE errVal = (
enum Sq3ErrorE)sqlite3_keyword_check(arg0, arg1);
719 mk_inline enum MkErrorE Sq3KeywordCount (
void) {
720 enum Sq3ErrorE errVal = (
enum Sq3ErrorE)sqlite3_keyword_count();
730 mk_inline enum MkErrorE Sq3KeywordName (MK_I32 num, MK_STRN *kwd, MK_I32 *kwdsz) {
731 enum Sq3ErrorE errVal = (
enum Sq3ErrorE)sqlite3_keyword_name(num, kwd, kwdsz);
739 mk_inline enum MkErrorE Sq3Status (
enum Sq3StatusE op, MK_I32 *pCurrent, MK_I32 *pHighwater, MK_BOOL resetFlag) {
740 enum Sq3ErrorE errVal = (
enum Sq3ErrorE)sqlite3_status(op, pCurrent, pHighwater, resetFlag);
748 mk_inline enum MkErrorE Sq3Status64 (
enum Sq3StatusE op, MK_I64 *pCurrent, MK_I64 *pHighwater, MK_BOOL resetFlag) {
749 enum Sq3ErrorE errVal = (
enum Sq3ErrorE)sqlite3_status64(op, pCurrent, pHighwater, resetFlag);
757#ifndef PARSE_C_HEADER_TO_META
763 sqlite3_free((
MK_PTR)(N));
768 return (MK_PTR)sqlite3_malloc(N);
773 return (MK_PTR)sqlite3_malloc64((MK_U64)N);
778 return (MK_I64)sqlite3_msize((MK_PTR)(N));
783 return (MK_PTR)sqlite3_realloc((MK_PTR)(arg0), N);
788 return (MK_PTR)sqlite3_realloc64((MK_PTR)(arg0), (MK_U64)N);
792#ifndef PARSE_C_HEADER_TO_META
798 return sqlite3_hard_heap_limit64(N);
802 mk_inline enum MkErrorE Sq3ReleaseMemory (MK_I32 N) {
803 enum Sq3ErrorE errVal = (
enum Sq3ErrorE)sqlite3_release_memory(N);
812 return sqlite3_soft_heap_limit64(N);
816#ifndef PARSE_C_HEADER_TO_META
822 return sqlite3_strglob(zGlob, zStr);
826 mk_inline MK_I32 Sq3StrIcmp (MK_STRN arg0, MK_STRN arg1) {
827 return sqlite3_stricmp(arg0, arg1);
832 return sqlite3_strlike(zGlob, zStr, (MK_U32)cEsc);
837 return sqlite3_strnicmp(arg0, arg1, arg2);
841#ifndef PARSE_C_HEADER_TO_META
855 mk_inline enum MkErrorE Sq3OsEnd (
void) {
856 enum Sq3ErrorE errVal = (
enum Sq3ErrorE)sqlite3_os_end();
864 mk_inline enum MkErrorE Sq3OsInit (
void) {
865 enum Sq3ErrorE errVal = (
enum Sq3ErrorE)sqlite3_os_init();
873 mk_inline enum MkErrorE Sq3Shutdown (
void) {
874 enum Sq3ErrorE errVal = (
enum Sq3ErrorE)sqlite3_shutdown();
882#ifndef PARSE_C_HEADER_TO_META
888 MK_STRN __retVal__L = sqlite3_libversion();
893 mk_inline enum MkErrorE Sq3LibversionNumber (
void) {
894 enum Sq3ErrorE errVal = (
enum Sq3ErrorE)sqlite3_libversion_number();
903 MK_STRN __retVal__L = sqlite3_sourceid();
908#ifndef PARSE_C_HEADER_TO_META
914 SQ3_FILENAME __retVal__L = sqlite3_create_filename(zDatabase, zJournal, zWal, azParam_num, azParam);
919 mk_inline MK_STRN Sq3FilenameDatabase (SQ3_FILENAME F) {
920 MK_STRN __retVal__L = sqlite3_filename_database(F);
926 MK_STRN __retVal__L = sqlite3_filename_journal(F);
931 mk_inline MK_STRN Sq3FilenameWal (SQ3_FILENAME F) {
932 MK_STRN __retVal__L = sqlite3_filename_wal(F);
937 mk_inline void Sq3FreeFilename (SQ3_FILENAME arg0) {
938 sqlite3_free_filename(arg0);
942 mk_inline enum MkErrorE Sq3UriBoolean (SQ3_FILENAME z, MK_STRN zParam, MK_I32 bDefault) {
943 enum Sq3ErrorE errVal = (
enum Sq3ErrorE)sqlite3_uri_boolean(z, zParam, bDefault);
952 return sqlite3_uri_int64(arg0, arg1, arg2);
957 MK_STRN __retVal__L = sqlite3_uri_key(z, N);
962 mk_inline MK_STRN Sq3UriParameter (SQ3_FILENAME z, MK_STRN zParam) {
963 MK_STRN __retVal__L = sqlite3_uri_parameter(z, zParam);
976#define Sq3ErrorC_Check(hdl,PROC) \
977 if (unlikely(Sq3ErrorCheckI(PROC))) { \
978 OT_ERROR_SQ3_2_MQ(hdl); \
979 OT_ERROR_META_2_LNG(hdl); \
983#define OT_ERROR_SQ3_2_MQ(hdl) Sq3LiteErrorToMQ(MkOBJ(hdl), __func__,__FILE__,__LINE__);
1002 assert(kwd_out != NULL);
1010 strncpy(bufR.super.buf.storage.first.S,kwd,(
size_t)kwdsz);
1011 bufR.super.buf.storage.first.S[kwdsz] =
'\0';
#define BEGIN_SQ3_C_DECLS
#define MkBufferSizeNew(...)
#define MkBufferCreateTLS_T(cls, name, size)
#define MkErrorStack_1X(...)
#define __parser__global__(...)
#define __parser__push__(...)
#define SQ3_EXTERN
static library
#define Sq3Fupu_Sq3LiteSetAuthorizer_xAuth_args
static void Sq3Randomness(MK_I32 N, MK_PTR P)
Pseudo-Random Number Generator …
#define Sq3Fupu_Sq3LiteProgressHandler_X_ret
static void Sq3LiteProgressHandler(SQ3_LITE sq3lite, MK_I32 N, Sq3Fupu_Sq3LiteProgressHandler_X X, MK_PTR P)
Query Progress Callbacks …
static MK_STRN Sq3CompileOptionGet(MK_I32 N)
Run-Time Library Compilation Options Diagnostics …
#define Sq3Fupu_Sq3LiteProgressHandler_X_args
#define Sq3Fupu_Sq3LiteSetAuthorizer_xAuth_ret
#define Sq3ErrorE_Check_Package(PROC)
static bool Sq3ErrorCheckI(enum Sq3ErrorE ret)
check if ret signal an error …
static enum MkErrorE Sq3Complete(MK_STRN sql)
Determine If An SQL Statement Is Complete …
#define Sq3KeywordName_E(...)
static MK_PTR Sq3Malloc64(MK_I64 N)
Memory Allocation Subsystem …
static void Sq3Free(MK_PTR N)
Memory Allocation Subsystem …
static MK_PTR Sq3Realloc(MK_PTR arg0, MK_I32 N)
Memory Allocation Subsystem …
static MK_I64 Sq3Msize(MK_PTR N)
Memory Allocation Subsystem …
static MK_PTR Sq3Realloc64(MK_PTR arg0, MK_I64 N)
Memory Allocation Subsystem …
static MK_I64 Sq3HardHeapLimit64(MK_I64 N)
Impose A Limit On Heap Size …
static MK_I64 Sq3SoftHeapLimit64(MK_I64 N)
Impose A Limit On Heap Size …
static MK_I32 Sq3StrNicmp(MK_STRN arg0, MK_STRN arg1, MK_I32 arg2)
String Comparison …
static MK_I32 Sq3StrLike(MK_STRN zGlob, MK_STRN zStr, MK_I32 cEsc)
String LIKE Matching …
static MK_I32 Sq3StrGlob(MK_STRN zGlob, MK_STRN zStr)
String Globbing …
static enum MkErrorE Sq3Initialize(void)
Initialize The SQLite Library …
static MK_STRN Sq3Sourceid(void)
Run-Time Library Version Numbers …
static MK_STRN Sq3Libversion(void)
Run-Time Library Version Numbers …
static SQ3_FILENAME Sq3CreateFilename(MK_STRN zDatabase, MK_STRN zJournal, MK_STRN zWal, MK_I32 azParam_num, MK_STRN *azParam)
Create and Destroy VFS Filenames …
static MK_STRN Sq3FilenameJournal(SQ3_FILENAME F)
Translate filenames …
static MK_STRN Sq3UriKey(SQ3_FILENAME z, MK_I32 N)
Obtain Values For URI Parameters …
static MK_I64 Sq3UriInt64(SQ3_FILENAME arg0, MK_STRN arg1, MK_I64 arg2)
Obtain Values For URI Parameters …
Struct to represent the data of the Sq3BlobC …
Struct to represent the data of the Sq3FileC …
Struct to represent the data of the Sq3LiteC …
Struct to represent the data of the Sq3StmtC …
Struct to represent the data of the Sq3ValueC …