theSq3Lite 10.0
Loading...
Searching...
No Matches
Sq3LiteC_sq3.h
Go to the documentation of this file.
1
9/* LABEL-START */
10#pragma once
11
12#include "LibSq3Lite_sq3.h"
13/* LABEL-END */
14
15#include "Sq3LiteC_def_sq3.h"
16
18
19/* MARK_C ################################################################ */
20
30__parser__(const,class-overload=MkObjectLog)
33 SQ3_LITEN const lite ,
35 MK_DBG const debug __parser__(default=0),
36 MK_STRN const callfunc __parser__(default=F#FUNC),
37 MK_I32 const lvl __parser__(default=0)
39
40/*****************************************************************************/
41/* */
42/* inline functions */
43/* */
44/*****************************************************************************/
45
46// =========================================================================
47// BEGIN-Sq3LiteC-fupu - created by 'c_Native.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
48
49#ifndef PARSE_C_HEADER_TO_META
50
51 // doc-key: Sq3LiteC,Sq3LiteC-Config,om_
52
55 #define Sq3Fupu_Sq3LiteBusyHandler_arg1_ret MK_I32
56 #define Sq3Fupu_Sq3LiteBusyHandler_arg1_args MK_PTR arg0, MK_I32 arg1
59
62 #define Sq3Fupu_Sq3LiteCommitHook_arg1_ret MK_I32
63 #define Sq3Fupu_Sq3LiteCommitHook_arg1_args MK_PTR arg0
66
69 #define Sq3Fupu_Sq3LiteRollbackHook_arg1_ret void
70 #define Sq3Fupu_Sq3LiteRollbackHook_arg1_args MK_PTR arg0
73
76 #define Sq3Fupu_Sq3LiteUpdateHook_arg1_ret void
77 #define Sq3Fupu_Sq3LiteUpdateHook_arg1_args MK_PTR arg0, MK_I32 arg1, MK_STRN arg2, MK_STRN arg3, sqlite3_int64 arg4
80#endif
81
82#ifndef PARSE_C_HEADER_TO_META
83
84 // doc-key: Sq3LiteC,Sq3LiteC-Execution,om_
85
88 #define Sq3Fupu_Sq3LiteExec_callback_call_ret MK_I32
89 #define Sq3Fupu_Sq3LiteExec_callback_call_args MK_CBP callV1, MK_I32 num, MK_STR *vals, MK_STR *cols
92#endif
93
94#ifndef PARSE_C_HEADER_TO_META
95
96 // doc-key: Sq3LiteC,Sq3LiteC-Misc,om_
97
100 #define Sq3Fupu_Sq3LiteAutovacuumPages_arg1_ret MK_U32
101 #define Sq3Fupu_Sq3LiteAutovacuumPages_arg1_args MK_PTR arg0, MK_STRN arg1, MK_U32 arg2, MK_U32 arg3, MK_U32 arg4
104
107 #define Sq3Fupu_Sq3LiteAutovacuumPages_arg3_ret void
108 #define Sq3Fupu_Sq3LiteAutovacuumPages_arg3_args MK_PTR arg0
111
114 #define Sq3Fupu_Sq3LiteCreateCollation_xCompare_ret MK_I32
115 #define Sq3Fupu_Sq3LiteCreateCollation_xCompare_args MK_PTR arg0, MK_I32 arg1, MK_PTRN arg2, MK_I32 arg3, MK_PTRN arg4
118#endif
119
120// END-Sq3LiteC-fupu - created by 'c_Native.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
121
122// =========================================================================
123// BEGIN-Sq3LiteC-inline - created by 'c_Native.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
124
125#ifndef PARSE_C_HEADER_TO_META
126
127 // doc-key: Sq3LiteC,Sq3LiteC-Config,om_
128
131 SQ3_INSTANCE_HDL(sq3lite);
132 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_busy_handler(sq3lite->nat, arg1, (MK_PTR)(arg2));
133 Sq3ErrorE_Check(sq3lite, errVal);
134 return MK_OK;
135 error:
136 return MK_ERROR;
137 }
138
141 SQ3_INSTANCE_HDL(sq3lite);
142 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_busy_timeout(sq3lite->nat, ms);
143 Sq3ErrorE_Check(sq3lite, errVal);
144 return MK_OK;
145 error:
146 return MK_ERROR;
147 }
148
151 SQ3_INSTANCE_HDL(sq3lite);
152 return (MK_PTR)sqlite3_commit_hook(sq3lite->nat, arg1, (MK_PTR)(arg2));
153 }
154
157 SQ3_INSTANCE_HDL(sq3lite);
158 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_declare_vtab(sq3lite->nat, zSQL);
159 Sq3ErrorE_Check(sq3lite, errVal);
160 return MK_OK;
161 error:
162 return MK_ERROR;
163 }
164
167 SQ3_INSTANCE_HDL(sq3lite);
168 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_extended_result_codes(sq3lite->nat, onoff);
169 Sq3ErrorE_Check(sq3lite, errVal);
170 return MK_OK;
171 error:
172 return MK_ERROR;
173 }
174
176 mk_inline enum MkErrorE Sq3LiteLimit (SQ3_LITE sq3lite, enum Sq3LimitE id, MK_I32 newVal) {
177 SQ3_INSTANCE_HDL(sq3lite);
178 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_limit(sq3lite->nat, id, newVal);
179 Sq3ErrorE_Check(sq3lite, errVal);
180 return MK_OK;
181 error:
182 return MK_ERROR;
183 }
184
187 SQ3_INSTANCE_HDL(sq3lite);
188 return (MK_PTR)sqlite3_rollback_hook(sq3lite->nat, arg1, (MK_PTR)(arg2));
189 }
190
193 SQ3_INSTANCE_HDL(sq3lite);
194 return (MK_PTR)sqlite3_update_hook(sq3lite->nat, arg1, (MK_PTR)(arg2));
195 }
196#endif
197
198#ifndef PARSE_C_HEADER_TO_META
199
200 // doc-key: Sq3LiteC,Sq3LiteC-Error,om_
201
205 return (enum Sq3ErrorE)sqlite3_errcode(db->nat);
206 }
207
210 SQ3_INSTANCE_HDL(sq3lite);
211 MK_STRN __retVal__L = sqlite3_errmsg(sq3lite->nat);
212 return __retVal__L;
213 }
214
218 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_error_offset(db->nat);
219 Sq3ErrorE_Check(db, errVal);
220 return MK_OK;
221 error:
222 return MK_ERROR;
223 }
224
230
233 SQ3_INSTANCE_HDL(sq3lite);
234 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_system_errno(sq3lite->nat);
235 Sq3ErrorE_Check(sq3lite, errVal);
236 return MK_OK;
237 error:
238 return MK_ERROR;
239 }
240
241 // doc-key: Sq3LiteC,Sq3LiteC-Error,sm_
242
245 MK_STRN __retVal__L = sqlite3_errstr(arg0);
246 return __retVal__L;
247 }
248#endif
249
250#ifndef PARSE_C_HEADER_TO_META
251
252 // doc-key: Sq3LiteC,Sq3LiteC-Execution,om_
253
255 mk_inline enum MkErrorE Sq3LiteExec (SQ3_LITE sq3lite, MK_STRN sql, Sq3Fupu_Sq3LiteExec_callback_call callback_call, MK_CBP callback_data) {
256 SQ3_INSTANCE_HDL(sq3lite);
257 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_exec(sq3lite->nat, sql, callback_call, callback_data, NULL);
258 Sq3ErrorE_Check(sq3lite, errVal);
259 return MK_OK;
260 error:
261 return MK_ERROR;
262 }
263
264 // doc-key: Sq3LiteC,Sq3LiteC-Execution,sm_
265
268 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_sleep(arg0);
270 return MK_OK;
271 error:
272 return MK_ERROR;
273 }
274#endif
275
276#ifndef PARSE_C_HEADER_TO_META
277
278 // doc-key: Sq3LiteC,Sq3LiteC-Info,om_
279
282 SQ3_INSTANCE_HDL(sq3lite);
283 return sqlite3_get_autocommit(sq3lite->nat);
284 }
285
288 SQ3_INSTANCE_HDL(sq3lite);
289 return sqlite3_last_insert_rowid(sq3lite->nat);
290 }
291
294 SQ3_INSTANCE_HDL(sq3lite);
295 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_txn_state(sq3lite->nat, zSchema);
296 Sq3ErrorE_Check(sq3lite, errVal);
297 return MK_OK;
298 error:
299 return MK_ERROR;
300 }
301
304 SQ3_INSTANCE_HDL(sq3lite);
305 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_vtab_on_conflict(sq3lite->nat);
306 Sq3ErrorE_Check(sq3lite, errVal);
307 return MK_OK;
308 error:
309 return MK_ERROR;
310 }
311#endif
312
313#ifndef PARSE_C_HEADER_TO_META
314
315 // doc-key: Sq3LiteC,Sq3LiteC-Misc,om_
316
320 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_autovacuum_pages(db->nat, arg1, (MK_PTR)(arg2), arg3);
321 Sq3ErrorE_Check(db, errVal);
322 return MK_OK;
323 error:
324 return MK_ERROR;
325 }
326
329 SQ3_INSTANCE_HDL(sq3lite);
330 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_create_collation(sq3lite->nat, zName, eTextRep, (MK_PTR)(pArg), xCompare);
331 Sq3ErrorE_Check(sq3lite, errVal);
332 return MK_OK;
333 error:
334 return MK_ERROR;
335 }
336
339 SQ3_INSTANCE_HDL(sq3lite);
340 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_db_cacheflush(sq3lite->nat);
341 Sq3ErrorE_Check(sq3lite, errVal);
342 return MK_OK;
343 error:
344 return MK_ERROR;
345 }
346
348 mk_inline SQ3_FILENAME Sq3LiteDbFilename (SQ3_LITE db, MK_STRN zDbName) {
350 SQ3_FILENAME __retVal__L = sqlite3_db_filename(db->nat, zDbName);
351 return __retVal__L;
352 }
353
357 MK_STRN __retVal__L = sqlite3_db_name(db->nat, N);
358 return __retVal__L;
359 }
360
364 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_db_readonly(db->nat, zDbName);
365 Sq3ErrorE_Check(db, errVal);
366 return MK_OK;
367 error:
368 return MK_ERROR;
369 }
370
373 SQ3_INSTANCE_HDL(sq3lite);
374 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_db_release_memory(sq3lite->nat);
375 Sq3ErrorE_Check(sq3lite, errVal);
376 return MK_OK;
377 error:
378 return MK_ERROR;
379 }
380
382 mk_inline enum MkErrorE Sq3LiteDeserializeHide (SQ3_LITE db, MK_STRN zSchema, MK_BIN pData, MK_I64 szDb, MK_I64 szBuf, enum Sq3DeSerializeEF mFlags) {
384 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_deserialize(db->nat, zSchema, pData, szDb, szBuf, mFlags);
385 Sq3ErrorE_Check(db, errVal);
386 return MK_OK;
387 error:
388 return MK_ERROR;
389 }
390
394 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_drop_modules(db->nat, azKeep);
395 Sq3ErrorE_Check(db, errVal);
396 return MK_OK;
397 error:
398 return MK_ERROR;
399 }
400
402 mk_inline enum MkErrorE Sq3LiteFileControl (SQ3_LITE sq3lite, MK_STRN zDbName, enum Sq3TestCtrlE op, MK_PTR arg3) {
403 SQ3_INSTANCE_HDL(sq3lite);
404 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_file_control(sq3lite->nat, zDbName, op, (MK_PTR)(arg3));
405 Sq3ErrorE_Check(sq3lite, errVal);
406 return MK_OK;
407 error:
408 return MK_ERROR;
409 }
410
413 SQ3_INSTANCE_HDL(sq3lite);
414 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_overload_function(sq3lite->nat, zFuncName, nArg);
415 Sq3ErrorE_Check(sq3lite, errVal);
416 return MK_OK;
417 error:
418 return MK_ERROR;
419 }
420
421 // doc-key: Sq3LiteC,Sq3LiteC-Misc,omo
422
424 mk_inline enum MkErrorE Sq3LiteDbStatus (SQ3_LITE sq3lite, enum Sq3DbStatusE op, MK_I32 *pCur, MK_I32 *pHiwtr, MK_BOOL resetFlg) {
425 SQ3_INSTANCE_HDL(sq3lite);
426 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_db_status(sq3lite->nat, op, pCur, pHiwtr, resetFlg);
427 Sq3ErrorE_Check(sq3lite, errVal);
428 return MK_OK;
429 error:
430 return MK_ERROR;
431 }
432
436 return sqlite3_serialize(db->nat, zSchema, piSize, mFlags);
437 }
438
440 mk_inline enum MkErrorE Sq3LiteTableColumnMetadata (SQ3_LITE db, MK_STRN zDbName, MK_STRN zTableName, MK_STRN zColumnName, MK_STRN *pzDataType, MK_STRN *pzCollSeq, MK_I32 *pNotNull, MK_I32 *pPrimaryKey, MK_I32 *pAutoinc) {
442 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_table_column_metadata(db->nat, zDbName, zTableName, zColumnName, pzDataType, pzCollSeq, pNotNull, pPrimaryKey, pAutoinc);
443 Sq3ErrorE_Check(db, errVal);
444 return MK_OK;
445 error:
446 return MK_ERROR;
447 }
448#endif
449
450#ifndef PARSE_C_HEADER_TO_META
451
452 // doc-key: Sq3LiteC,Sq3LiteC-Modify-Wal,om_
453
457 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_wal_autocheckpoint(db->nat, N);
458 Sq3ErrorE_Check(db, errVal);
459 return MK_OK;
460 error:
461 return MK_ERROR;
462 }
463
464 // doc-key: Sq3LiteC,Sq3LiteC-Modify-Wal,omo
465
469 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_wal_checkpoint_v2(db->nat, zDb, eMode, pnLog, pnCkpt);
470 Sq3ErrorE_Check(db, errVal);
471 return MK_OK;
472 error:
473 return MK_ERROR;
474 }
475#endif
476
477#ifndef PARSE_C_HEADER_TO_META
478
479 // doc-key: Sq3LiteC,Sq3LiteC-Query,om_
480
483 SQ3_INSTANCE_HDL(sq3lite);
484 sqlite3_interrupt(sq3lite->nat);
485 }
486
489 SQ3_INSTANCE_HDL(sq3lite);
490 return (MK_BOOL)sqlite3_is_interrupted(sq3lite->nat);
491 }
492#endif
493
494#ifndef PARSE_C_HEADER_TO_META
495
496 // doc-key: Sq3LiteC,Sq3LiteC-Row,om_
497
500 SQ3_INSTANCE_HDL(sq3lite);
501 return sqlite3_changes(sq3lite->nat);
502 }
503
506 SQ3_INSTANCE_HDL(sq3lite);
507 return sqlite3_changes64(sq3lite->nat);
508 }
509
512 SQ3_INSTANCE_HDL(sq3lite);
513 sqlite3_set_last_insert_rowid(sq3lite->nat, arg1);
514 }
515
518 SQ3_INSTANCE_HDL(sq3lite);
519 return sqlite3_total_changes(sq3lite->nat);
520 }
521
524 SQ3_INSTANCE_HDL(sq3lite);
525 return sqlite3_total_changes64(sq3lite->nat);
526 }
527#endif
528
529#ifndef PARSE_C_HEADER_TO_META
530
531 // doc-key: Sq3LiteC,Sq3LiteC-TOR,sCo
532
534 mk_inline enum MkErrorE Sq3LiteOpenV2 (MK_STRN filename, SQ3_LITE *ppDb, enum Sq3OpenEF flags, MK_STRN zVfs) {
535 *ppDb = NULL;
536 sqlite3* ppDb_val = NULL;
537 if (MK_NULL_STR_CHECK_1(zVfs)) zVfs = NULL;
538 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_open_v2(filename, &ppDb_val, flags, zVfs);
539 *ppDb = Sq3LiteC_ObjCreate(ppDb_val);
541 return MK_OK;
542 error:
543 return MK_ERROR;
544 }
545
546 // doc-key: Sq3LiteC,Sq3LiteC-TOR,om_
547
550 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_close_v2(sq3lite->nat);
551 Sq3ErrorE_Check(sq3lite, errVal);
552 return MK_OK;
553 error:
554 return MK_ERROR;
555 }
556#endif
557
558// END-Sq3LiteC-inline - created by 'c_Native.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
559
560// =============================================================================================
561// OVERLOAD
562//
563
577 SQ3_INSTANCE_HDL(sq3lite);
578
579 MK_I64 piSize_val = 0;
580 MK_BIN __retVal__L = Sq3LiteSerializeHide(sq3lite, zSchema, &piSize_val, mFlags);
581 return MkBinaryCreate((MK_SIZE)piSize_val,__retVal__L);
582}
583
600 SQ3_LITE sq3lite,
601 MK_STRN zSchema,
602 MkBinaryR pData,
603 enum Sq3DeSerializeEF mFlags
604) {
605 SQ3_INSTANCE_RT_X(sq3lite);
606
607 Sq3LiteDeserializeHide_E(sq3lite, zSchema, (MK_BIN)pData.data, (MK_I64)pData.size, (MK_I64)pData.size, mFlags);
608 return MK_OK;
609error:
610 return MkErrorStack_1X(sq3lite);
611}
612
632#define Sq3LiteVtabConfig(sq3lite, op, ...) ({ \
633 Sq3ErrorE errVal = sqlite3_vtab_config(sq3lite->nat, op, __VA_ARGS__); \
634 Sq3ErrorE_Check_Macro(sq3lite,errVal); \
635 if (unlikely(Sq3ErrorCheckI(errVal))) { \
636 Sq3LiteErrorToMQ(MkOBJ(sq3lite), __func__,__FILE__,__LINE__); \
637 MK_ERROR; \
638 } else { \
639 MK_OK; \
640 } \
641})
642
657 SQ3_LITE sq3lite,
658 enum Sq3DbStatusE op,
659 MK_BFL *val_out,
660 MK_BOOL resetFlg
661) {
662 assert(val_out != NULL);
663 SQ3_INSTANCE_RT_X(sq3lite);
664
666 MK_I32 pCur;
667 MK_I32 pHiwtr;
668 Sq3LiteDbStatus_E(sq3lite,op,&pCur,&pHiwtr,resetFlg);
669 MkBufferListAppendI32(bfl,pCur);
670 MkBufferListAppendI32(bfl,pHiwtr);
671 *val_out = bfl;
672 MkErrorReturnLabel(sq3lite);
673}
674
688 SQ3_LITE sq3lite,
689 MK_BFL azKeepBfl
691
692// this is the sqlite3_prepare_v2 but as "Sq3LiteC" method
705__parser__(class=Sq3LiteC,constructor)
708 SQ3_LITE db,
709 MkStringR zSql,
710 SQ3_STMT *ppStmt __parser__(out)
711) {
713 MkRtSetup_X(db);
714 MK_STRN pzTail = NULL;
715 MkErrorE_Check(Sq3StmtPrepareV2Hide(db,zSql.ptr,zSql.len,ppStmt,&pzTail));
716 (*ppStmt)->pzTail = pzTail;
717 MkErrorReturnLabel(db);
718}
719
720// ---------------------------------------------------------------------------------------------------
721
724
725#define Sq3Fupu_Sq3LiteExec_callback_call_check do { \
726 assert(callV1 != NULL); \
727} while (0)
728
729#define Sq3Fupu_Sq3LiteExecV2CB_callback_call_check do { \
730 assert(callV2 != NULL); \
731} while (0)
732
733// doc-key: Sq3LiteC,Sq3LiteC-Execution,om_
734#define Sq3LiteExecV2CB_ret enum MkErrorE
735#define Sq3LiteExecV2CB_args MK_RT_ARGS MK_CBP callV2, MK_BFL vals, MK_BFL cols
736
743typedef enum MkErrorE (*Sq3LiteExecV2CB) (MK_RT_ARGS MK_CBP callV2, MK_BFL vals, MK_BFL cols);
744
759__parser__(class=Sq3LiteC,doc-group=Execution,callback-name=LiteExecV2,callback-null,callback-once)
762 SQ3_LITE sq3lite,
763 MK_STRN sql,
764 Sq3LiteExecV2CB callback_call __parser__(callback-call),
765 MK_CBP callback __parser__(callback-data)
767
769// Sq3LiteC_Execution_C_API
770
tag: nhi1-release-250425
#define BEGIN_SQ3_C_DECLS
#define END_SQ3_C_DECLS
tag: nhi1-release-250425
#define MkBufferListAppendI32(...)
#define MkBufferListCreateTLS_T(name, num)
#define MkErrorStack_1X(...)
static MkBinaryR MkBinaryCreate(MK_SIZE size, MK_BINN data)
#define MK_PARSER_fmtobj
#define MK_DECL
#define mk_inline
static bool MK_NULL_STR_CHECK_1(char const *const __str)
MkErrorE
MK_ERROR
MK_OK
#define __parser__(...)
MK_PTRB * MK_PTR
const MK_STRB * MK_STRN
MK_PTRB * MK_CBP
MK_BINB * MK_BIN
signed long long MK_I64
bool MK_BOOL
long MK_SIZE
signed int MK_I32
int MK_DBG
#define MkObjectLog(...)
#define MK_ATTR_RT_INSTANCE
#define MK_ATTR_INSTANCE
#define MK_PARSER_RT
#define MkRtSetup_X(x)
#define MK_RT_ARGS
static SQ3_LITE Sq3LiteC_ObjCreate(sqlite3 *hdl)
return Programming-Language-Micro-Kernel (PLMK) instance from native hdl …
__thread MK_TYP Sq3LiteC_TT
class as MkTypeDefS-class-type …
static enum MkErrorE Sq3LiteBusyTimeout(SQ3_LITE sq3lite, MK_I32 ms)
Set A Busy Timeout …
static MK_PTR Sq3LiteUpdateHook(SQ3_LITE sq3lite, Sq3Fupu_Sq3LiteUpdateHook_arg1 arg1, MK_PTR arg2)
Data Change Notification Callbacks …
#define Sq3Fupu_Sq3LiteCommitHook_arg1_args
#define Sq3Fupu_Sq3LiteUpdateHook_arg1_ret
Sq3Fupu_Sq3LiteUpdateHook_arg1_ret(* Sq3Fupu_Sq3LiteUpdateHook_arg1)(Sq3Fupu_Sq3LiteUpdateHook_arg1_args)
static enum MkErrorE Sq3LiteBusyHandler(SQ3_LITE sq3lite, Sq3Fupu_Sq3LiteBusyHandler_arg1 arg1, MK_PTR arg2)
Register A Callback To Handle SQLITE_BUSY Errors …
Sq3Fupu_Sq3LiteBusyHandler_arg1_ret(* Sq3Fupu_Sq3LiteBusyHandler_arg1)(Sq3Fupu_Sq3LiteBusyHandler_arg1_args)
#define Sq3Fupu_Sq3LiteCommitHook_arg1_ret
static enum MkErrorE Sq3LiteLimit(SQ3_LITE sq3lite, enum Sq3LimitE id, MK_I32 newVal)
Run-time Limits …
Sq3Fupu_Sq3LiteCommitHook_arg1_ret(* Sq3Fupu_Sq3LiteCommitHook_arg1)(Sq3Fupu_Sq3LiteCommitHook_arg1_args)
static enum MkErrorE Sq3LiteDeclareVtab(SQ3_LITE sq3lite, MK_STRN zSQL)
Declare The Schema Of A Virtual Table …
static MK_PTR Sq3LiteRollbackHook(SQ3_LITE sq3lite, Sq3Fupu_Sq3LiteRollbackHook_arg1 arg1, MK_PTR arg2)
Commit And Rollback Notification Callbacks …
#define Sq3Fupu_Sq3LiteBusyHandler_arg1_args
static enum MkErrorE Sq3LiteExtendedResultCodes(SQ3_LITE sq3lite, MK_I32 onoff)
Enable Or Disable Extended Result Codes …
#define Sq3Fupu_Sq3LiteRollbackHook_arg1_args
static MK_PTR Sq3LiteCommitHook(SQ3_LITE sq3lite, Sq3Fupu_Sq3LiteCommitHook_arg1 arg1, MK_PTR arg2)
Commit And Rollback Notification Callbacks …
#define Sq3Fupu_Sq3LiteBusyHandler_arg1_ret
Sq3Fupu_Sq3LiteRollbackHook_arg1_ret(* Sq3Fupu_Sq3LiteRollbackHook_arg1)(Sq3Fupu_Sq3LiteRollbackHook_arg1_args)
#define Sq3Fupu_Sq3LiteUpdateHook_arg1_args
#define Sq3Fupu_Sq3LiteRollbackHook_arg1_ret
static enum MkErrorE Sq3LiteErrorOffset(SQ3_LITE db)
Error Codes And Messages …
static enum MkErrorE Sq3LiteSystemErrno(SQ3_LITE sq3lite)
Low-level system error code …
static enum Sq3ErrorE Sq3LiteErrCode(SQ3_LITE db)
Error Codes And Messages …
static MK_STRN Sq3LiteErrMsg(SQ3_LITE sq3lite)
Error Codes And Messages …
static MK_STRN Sq3LiteErrStr(MK_I32 arg0)
Error Codes And Messages …
static enum Sq3ExtendetResultCodesE Sq3LiteExtendetErrCode(SQ3_LITE db)
Error Codes And Messages …
static enum MkErrorE Sq3LiteSleep(MK_I32 arg0)
Suspend Execution For A Short Time …
enum MkErrorE Sq3LiteExecV2_RT(MK_RT mkrt, SQ3_LITE sq3lite, MK_STRN sql, Sq3LiteExecV2CB callback_call, MK_CBP callback)
The Sq3LiteExecV2() interface is a convenience wrapper around Sq3StmtPrepareV2(), Sq3StmtStep(),...
static enum MkErrorE Sq3LiteExec(SQ3_LITE sq3lite, MK_STRN sql, Sq3Fupu_Sq3LiteExec_callback_call callback_call, MK_CBP callback_data)
One-Step Query Execution Interface …
Sq3Fupu_Sq3LiteExec_callback_call_ret(* Sq3Fupu_Sq3LiteExec_callback_call)(Sq3Fupu_Sq3LiteExec_callback_call_args)
enum MkErrorE(* Sq3LiteExecV2CB)(MK_RT mkrt, MK_CBP callV2, MK_BFL vals, MK_BFL cols)
callback for Sq3LiteExecV2
#define Sq3Fupu_Sq3LiteExec_callback_call_args
#define Sq3Fupu_Sq3LiteExec_callback_call_ret
static enum MkErrorE Sq3LiteTxnState(SQ3_LITE sq3lite, MK_STRN zSchema)
Determine the transaction state of a database …
static MK_I32 Sq3LiteGetAutocommit(SQ3_LITE sq3lite)
Test For Auto-Commit Mode …
static enum MkErrorE Sq3LiteVtabOnConflict(SQ3_LITE sq3lite)
Determine The Virtual Table Conflict Policy …
static MK_I64 Sq3LiteLastInsertRowid(SQ3_LITE sq3lite)
Last Insert Rowid …
#define Sq3LiteDbStatus_E(...)
static enum MkErrorE Sq3LiteDbCacheflush(SQ3_LITE sq3lite)
Flush caches to disk mid-transaction …
static enum MkErrorE Sq3LiteTableColumnMetadata(SQ3_LITE db, MK_STRN zDbName, MK_STRN zTableName, MK_STRN zColumnName, MK_STRN *pzDataType, MK_STRN *pzCollSeq, MK_I32 *pNotNull, MK_I32 *pPrimaryKey, MK_I32 *pAutoinc)
Extract Metadata About A Column Of A Table …
static enum MkErrorE Sq3LiteDeserialize_RT(MK_RT mkrt, SQ3_LITE sq3lite, MK_STRN zSchema, MkBinaryR pData, enum Sq3DeSerializeEF mFlags)
Deserialize a database …
#define Sq3Fupu_Sq3LiteAutovacuumPages_arg1_args
#define Sq3Fupu_Sq3LiteAutovacuumPages_arg3_args
static MK_BIN Sq3LiteSerializeHide(SQ3_LITE db, MK_STRN zSchema, MK_I64 *piSize, enum Sq3SerializeE mFlags)
Serialize a database …
static enum MkErrorE Sq3LiteDbReleaseMemory(SQ3_LITE sq3lite)
Free Memory Used By A Database Connection …
static MK_STRN Sq3LiteDbName(SQ3_LITE db, MK_I32 N)
Return The Schema Name For A Database Connection …
#define Sq3Fupu_Sq3LiteAutovacuumPages_arg3_ret
static enum MkErrorE Sq3LiteDropModulesHide(SQ3_LITE db, MK_STRN *azKeep)
Remove Unnecessary Virtual Table Implementations …
Sq3Fupu_Sq3LiteAutovacuumPages_arg3_ret(* Sq3Fupu_Sq3LiteAutovacuumPages_arg3)(Sq3Fupu_Sq3LiteAutovacuumPages_arg3_args)
static enum MkErrorE Sq3LiteFileControl(SQ3_LITE sq3lite, MK_STRN zDbName, enum Sq3TestCtrlE op, MK_PTR arg3)
Low-Level Control Of Database Files …
enum MkErrorE Sq3LiteDropModules_RT(MK_RT mkrt, SQ3_LITE sq3lite, MK_BFL azKeepBfl)
Remove Unnecessary Virtual Table Implementations …
#define Sq3LiteDeserializeHide_E(...)
static enum MkErrorE Sq3LiteDeserializeHide(SQ3_LITE db, MK_STRN zSchema, MK_BIN pData, MK_I64 szDb, MK_I64 szBuf, enum Sq3DeSerializeEF mFlags)
Deserialize a database …
Sq3Fupu_Sq3LiteAutovacuumPages_arg1_ret(* Sq3Fupu_Sq3LiteAutovacuumPages_arg1)(Sq3Fupu_Sq3LiteAutovacuumPages_arg1_args)
static enum MkErrorE Sq3LiteDbStatus(SQ3_LITE sq3lite, enum Sq3DbStatusE op, MK_I32 *pCur, MK_I32 *pHiwtr, MK_BOOL resetFlg)
Database Connection Status …
static enum MkErrorE Sq3LiteAutovacuumPages(SQ3_LITE db, Sq3Fupu_Sq3LiteAutovacuumPages_arg1 arg1, MK_PTR arg2, Sq3Fupu_Sq3LiteAutovacuumPages_arg3 arg3)
Autovacuum Compaction Amount Callback …
#define Sq3LiteVtabConfig(sq3lite, op,...)
Virtual Table Interface Configuration …
static MkBinaryR Sq3LiteSerialize(SQ3_LITE sq3lite, MK_STRN zSchema, enum Sq3SerializeE mFlags)
Serialize a database …
static SQ3_FILENAME Sq3LiteDbFilename(SQ3_LITE db, MK_STRN zDbName)
Return The Filename For A Database Connection …
static enum MkErrorE Sq3LiteOverloadFunction(SQ3_LITE sq3lite, MK_STRN zFuncName, MK_I32 nArg)
Overload A Function For A Virtual Table …
void Sq3LiteLog_RT(MK_RT mkrt, SQ3_LITEN const lite, MK_OBJN fmtobj, MK_DBG const debug, MK_STRN const callfunc, MK_I32 const lvl)
log the lite …
#define Sq3Fupu_Sq3LiteCreateCollation_xCompare_ret
static enum MkErrorE Sq3LiteDbReadonly(SQ3_LITE db, MK_STRN zDbName)
Determine if a database is read-only …
#define Sq3Fupu_Sq3LiteAutovacuumPages_arg1_ret
Sq3Fupu_Sq3LiteCreateCollation_xCompare_ret(* Sq3Fupu_Sq3LiteCreateCollation_xCompare)(Sq3Fupu_Sq3LiteCreateCollation_xCompare_args)
static enum MkErrorE Sq3LiteDbStatusBFL_RT(MK_RT mkrt, SQ3_LITE sq3lite, enum Sq3DbStatusE op, MK_BFL *val_out, MK_BOOL resetFlg)
Database Connection Status …
static enum MkErrorE Sq3LiteCreateCollation(SQ3_LITE sq3lite, MK_STRN zName, MK_I32 eTextRep, MK_PTR pArg, Sq3Fupu_Sq3LiteCreateCollation_xCompare xCompare)
Define New Collating Sequences …
#define Sq3Fupu_Sq3LiteCreateCollation_xCompare_args
static enum MkErrorE Sq3LiteWalAutocheckpoint(SQ3_LITE db, MK_I32 N)
Configure an auto-checkpoint …
static enum MkErrorE Sq3LiteWalCheckpointV2(SQ3_LITE db, MK_STRN zDb, MK_I32 eMode, MK_I32 *pnLog, MK_I32 *pnCkpt)
Checkpoint a database …
static void Sq3LiteInterrupt(SQ3_LITE sq3lite)
Interrupt A Long-Running Query …
static MK_BOOL Sq3LiteIsInterrupted(SQ3_LITE sq3lite)
Interrupt A Long-Running Query …
static MK_I64 Sq3LiteChanges64(SQ3_LITE sq3lite)
Count The Number Of Rows Modified …
static MK_I64 Sq3LiteTotalChanges64(SQ3_LITE sq3lite)
Total Number Of Rows Modified …
static MK_I32 Sq3LiteChanges(SQ3_LITE sq3lite)
Count The Number Of Rows Modified …
static MK_I32 Sq3LiteTotalChanges(SQ3_LITE sq3lite)
Total Number Of Rows Modified …
static void Sq3LiteSetLastInsertRowid(SQ3_LITE sq3lite, MK_I64 arg1)
Set the Last Insert Rowid value …
static enum MkErrorE Sq3LiteCloseV2(SQ3_LITE sq3lite)
Closing A Database Connection …
static enum MkErrorE Sq3LiteOpenV2(MK_STRN filename, SQ3_LITE *ppDb, enum Sq3OpenEF flags, MK_STRN zVfs)
Opening A New Database Connection …
#define SQ3_EXTERN
static library
Sq3VtabE
Virtual Table Configuration Options.
Sq3OpenEF
Flags For File Open Operations.
Sq3LimitE
Run-Time Limit Categories.
Sq3SerializeE
Flags for sqlite3_serialize.
Sq3DeSerializeEF
Flags for sqlite3_deserialize()
Sq3ErrorE
Result Codes.
Sq3DbStatusE
Status Parameters for database connections.
Definition Sq3Enum_sq3.h:79
Sq3TestCtrlE
Testing Interface Operation Codes.
Sq3ExtendetResultCodesE
Extended Result Codes.
#define Sq3ErrorE_Check_Static(cls_hdl, PROC)
#define Sq3ErrorE_Check(sq3_hdl, PROC)
check on a jvsq3lite error and convert into a jvsq3lite error …
#define SQ3_INSTANCE_HDL(x)
#define SQ3_INSTANCE_RT_X(x)
static enum MkErrorE Sq3StmtPrepareV2Hide(SQ3_LITE db, MK_STRN zSql, MK_I32 nByte, SQ3_STMT *ppStmt, MK_STRN *pzTail)
Compiling An SQL Statement …
static enum MkErrorE Sq3LitePrepareV2(SQ3_LITE db, MkStringR zSql, SQ3_STMT *ppStmt)
Compiling An SQL Statement …
SQLITE_API int sqlite3_overload_function(sqlite3 *, const char *zFuncName, int nArg)
SQLITE_API int sqlite3_extended_result_codes(sqlite3 *, int onoff)
SQLITE_API int sqlite3_table_column_metadata(sqlite3 *db, const char *zDbName, const char *zTableName, const char *zColumnName, char const **pzDataType, char const **pzCollSeq, int *pNotNull, int *pPrimaryKey, int *pAutoinc)
SQLITE_API int sqlite3_wal_checkpoint_v2(sqlite3 *db, const char *zDb, int eMode, int *pnLog, int *pnCkpt)
SQLITE_API int sqlite3_limit(sqlite3 *, int id, int newVal)
struct sqlite3 sqlite3
SQLITE_API int sqlite3_open_v2(const char *filename, sqlite3 **ppDb, int flags, const char *zVfs)
SQLITE_API unsigned char * sqlite3_serialize(sqlite3 *db, const char *zSchema, sqlite3_int64 *piSize, unsigned int mFlags)
SQLITE_API int sqlite3_file_control(sqlite3 *, const char *zDbName, int op, void *)
SQLITE_API int sqlite3_error_offset(sqlite3 *db)
SQLITE_API int sqlite3_db_cacheflush(sqlite3 *)
SQLITE_API int sqlite3_is_interrupted(sqlite3 *)
SQLITE_API int sqlite3_txn_state(sqlite3 *, const char *zSchema)
SQLITE_API void sqlite3_set_last_insert_rowid(sqlite3 *, sqlite3_int64)
SQLITE_API void * sqlite3_commit_hook(sqlite3 *, int(*)(void *), void *)
SQLITE_API const char * sqlite3_errstr(int)
SQLITE_API int sqlite3_deserialize(sqlite3 *db, const char *zSchema, unsigned char *pData, sqlite3_int64 szDb, sqlite3_int64 szBuf, unsigned mFlags)
SQLITE_API int sqlite3_declare_vtab(sqlite3 *, const char *zSQL)
SQLITE_API sqlite3_int64 sqlite3_last_insert_rowid(sqlite3 *)
SQLITE_API const char * sqlite3_db_name(sqlite3 *db, int N)
SQLITE_API int sqlite3_extended_errcode(sqlite3 *db)
SQLITE_API int sqlite3_errcode(sqlite3 *db)
SQLITE_API int sqlite3_get_autocommit(sqlite3 *)
SQLITE_API int sqlite3_total_changes(sqlite3 *)
SQLITE_API int sqlite3_changes(sqlite3 *)
SQLITE_API int sqlite3_db_readonly(sqlite3 *db, const char *zDbName)
SQLITE_API int sqlite3_exec(sqlite3 *, const char *sql, int(*callback)(void *, int, char **, char **), void *, char **errmsg)
SQLITE_API void * sqlite3_update_hook(sqlite3 *, void(*)(void *, int, char const *, char const *, sqlite3_int64), void *)
SQLITE_API void * sqlite3_rollback_hook(sqlite3 *, void(*)(void *), void *)
SQLITE_API int sqlite3_vtab_on_conflict(sqlite3 *)
SQLITE_API sqlite3_filename sqlite3_db_filename(sqlite3 *db, const char *zDbName)
SQLITE_API int sqlite3_db_status(sqlite3 *, int op, int *pCur, int *pHiwtr, int resetFlg)
SQLITE_API void sqlite3_interrupt(sqlite3 *)
SQLITE_API int sqlite3_wal_autocheckpoint(sqlite3 *db, int N)
SQLITE_API int sqlite3_sleep(int)
SQLITE_API int sqlite3_close_v2(sqlite3 *)
SQLITE_API sqlite3_int64 sqlite3_changes64(sqlite3 *)
SQLITE_API const char * sqlite3_errmsg(sqlite3 *)
SQLITE_API int sqlite3_create_collation(sqlite3 *, const char *zName, int eTextRep, void *pArg, int(*xCompare)(void *, int, const void *, int, const void *))
SQLITE_API int sqlite3_busy_handler(sqlite3 *, int(*)(void *, int), void *)
SQLITE_API int sqlite3_autovacuum_pages(sqlite3 *db, unsigned int(*)(void *, const char *, unsigned int, unsigned int, unsigned int), void *, void(*)(void *))
SQLITE_API int sqlite3_drop_modules(sqlite3 *db, const char **azKeep)
SQLITE_API int sqlite3_db_release_memory(sqlite3 *)
SQLITE_API sqlite3_int64 sqlite3_total_changes64(sqlite3 *)
SQLITE_API int sqlite3_busy_timeout(sqlite3 *, int ms)
SQLITE_API int sqlite3_system_errno(sqlite3 *)
MK_SIZE size
MK_BINN data
MK_STRN ptr
MK_NUM len
Struct to represent the data of the Sq3LiteC …
sqlite3 * nat
internal - link between Sq3LiteS and native library
Struct to represent the data of the Sq3StmtC …