theSq3Lite 10.0 NHI1 - theKernel - theLink - theConfig - theSq3Lite - theCompiler - theBrain - theGuard - theLib - theATL
c - tcl - atl - cs - py - rb - jv - cc
Loading...
Searching...
No Matches
Sq3LiteC_sq3.h
Go to the documentation of this file.
1
12/* LABEL-START */
13#pragma once
14
15#include "LibSq3Lite_sq3.h"
16/* LABEL-END */
17
18#include "Sq3LiteC_def_sq3.h"
19
21
22/* MARK_C ################################################################ */
23
33__parser__(const,class-overload=MkObjectLog)
36 SQ3_LITEN const lite ,
38 MK_DBG const debug __parser__(default=0),
39 MK_STRN const callfunc __parser__(default=F#FUNC),
40 MK_I32 const lvl __parser__(default=0)
42
43/*****************************************************************************/
44/* */
45/* inline functions */
46/* */
47/*****************************************************************************/
48
49// =========================================================================
50// BEGIN-Sq3LiteC-fupu - created by 'c_Native.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
51
52#ifndef PARSE_C_HEADER_TO_META
53
54 // doc-key: Sq3LiteC,Sq3LiteC-Config,om_
55
58 #define Sq3Fupu_Sq3LiteBusyHandler_arg1_ret MK_I32
59 #define Sq3Fupu_Sq3LiteBusyHandler_arg1_args MK_PTR arg0, MK_I32 arg1
62
65 #define Sq3Fupu_Sq3LiteCommitHook_arg1_ret MK_I32
66 #define Sq3Fupu_Sq3LiteCommitHook_arg1_args MK_PTR arg0
69
72 #define Sq3Fupu_Sq3LiteRollbackHook_arg1_ret void
73 #define Sq3Fupu_Sq3LiteRollbackHook_arg1_args MK_PTR arg0
76
79 #define Sq3Fupu_Sq3LiteUpdateHook_arg1_ret void
80 #define Sq3Fupu_Sq3LiteUpdateHook_arg1_args MK_PTR arg0, MK_I32 arg1, MK_STRN arg2, MK_STRN arg3, sqlite3_int64 arg4
83#endif
84
85#ifndef PARSE_C_HEADER_TO_META
86
87 // doc-key: Sq3LiteC,Sq3LiteC-Execution,om_
88
91 #define Sq3Fupu_Sq3LiteExec_callback_call_ret MK_I32
92 #define Sq3Fupu_Sq3LiteExec_callback_call_args MK_CBP callV1, MK_I32 num, MK_STR *vals, MK_STR *cols
95#endif
96
97#ifndef PARSE_C_HEADER_TO_META
98
99 // doc-key: Sq3LiteC,Sq3LiteC-Misc,om_
100
103 #define Sq3Fupu_Sq3LiteAutovacuumPages_arg1_ret MK_U32
104 #define Sq3Fupu_Sq3LiteAutovacuumPages_arg1_args MK_PTR arg0, MK_STRN arg1, MK_U32 arg2, MK_U32 arg3, MK_U32 arg4
107
110 #define Sq3Fupu_Sq3LiteAutovacuumPages_arg3_ret void
111 #define Sq3Fupu_Sq3LiteAutovacuumPages_arg3_args MK_PTR arg0
114
117 #define Sq3Fupu_Sq3LiteCreateCollation_xCompare_ret MK_I32
118 #define Sq3Fupu_Sq3LiteCreateCollation_xCompare_args MK_PTR arg0, MK_I32 arg1, MK_PTRN arg2, MK_I32 arg3, MK_PTRN arg4
121#endif
122
123// END-Sq3LiteC-fupu - created by 'c_Native.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
124
125// =========================================================================
126// BEGIN-Sq3LiteC-inline - created by 'c_Native.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
127
128#ifndef PARSE_C_HEADER_TO_META
129
130 // doc-key: Sq3LiteC,Sq3LiteC-Config,om_
131
134 SQ3_INSTANCE_HDL(sq3lite);
135 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_busy_handler(sq3lite->nat, arg1, (MK_PTR)(arg2));
136 Sq3ErrorE_Check(sq3lite, errVal);
137 return MK_OK;
138 error:
139 return MK_ERROR;
140 }
141
144 SQ3_INSTANCE_HDL(sq3lite);
145 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_busy_timeout(sq3lite->nat, ms);
146 Sq3ErrorE_Check(sq3lite, errVal);
147 return MK_OK;
148 error:
149 return MK_ERROR;
150 }
151
154 SQ3_INSTANCE_HDL(sq3lite);
155 return (MK_PTR)sqlite3_commit_hook(sq3lite->nat, arg1, (MK_PTR)(arg2));
156 }
157
160 SQ3_INSTANCE_HDL(sq3lite);
161 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_declare_vtab(sq3lite->nat, zSQL);
162 Sq3ErrorE_Check(sq3lite, errVal);
163 return MK_OK;
164 error:
165 return MK_ERROR;
166 }
167
170 SQ3_INSTANCE_HDL(sq3lite);
171 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_extended_result_codes(sq3lite->nat, onoff);
172 Sq3ErrorE_Check(sq3lite, errVal);
173 return MK_OK;
174 error:
175 return MK_ERROR;
176 }
177
179 mk_inline enum MkErrorE Sq3LiteLimit (SQ3_LITE sq3lite, enum Sq3LimitE id, MK_I32 newVal) {
180 SQ3_INSTANCE_HDL(sq3lite);
181 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_limit(sq3lite->nat, id, newVal);
182 Sq3ErrorE_Check(sq3lite, errVal);
183 return MK_OK;
184 error:
185 return MK_ERROR;
186 }
187
190 SQ3_INSTANCE_HDL(sq3lite);
191 return (MK_PTR)sqlite3_rollback_hook(sq3lite->nat, arg1, (MK_PTR)(arg2));
192 }
193
196 SQ3_INSTANCE_HDL(sq3lite);
197 return (MK_PTR)sqlite3_update_hook(sq3lite->nat, arg1, (MK_PTR)(arg2));
198 }
199#endif
200
201#ifndef PARSE_C_HEADER_TO_META
202
203 // doc-key: Sq3LiteC,Sq3LiteC-Error,om_
204
208 return (enum Sq3ErrorE)sqlite3_errcode(db->nat);
209 }
210
213 SQ3_INSTANCE_HDL(sq3lite);
214 MK_STRN __retVal__L = sqlite3_errmsg(sq3lite->nat);
215 return __retVal__L;
216 }
217
221 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_error_offset(db->nat);
222 Sq3ErrorE_Check(db, errVal);
223 return MK_OK;
224 error:
225 return MK_ERROR;
226 }
227
233
236 SQ3_INSTANCE_HDL(sq3lite);
237 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_system_errno(sq3lite->nat);
238 Sq3ErrorE_Check(sq3lite, errVal);
239 return MK_OK;
240 error:
241 return MK_ERROR;
242 }
243
244 // doc-key: Sq3LiteC,Sq3LiteC-Error,sm_
245
248 MK_STRN __retVal__L = sqlite3_errstr(arg0);
249 return __retVal__L;
250 }
251#endif
252
253#ifndef PARSE_C_HEADER_TO_META
254
255 // doc-key: Sq3LiteC,Sq3LiteC-Execution,om_
256
258 mk_inline enum MkErrorE Sq3LiteExec (SQ3_LITE sq3lite, MK_STRN sql, Sq3Fupu_Sq3LiteExec_callback_call callback_call, MK_CBP callback_data) {
259 SQ3_INSTANCE_HDL(sq3lite);
260 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_exec(sq3lite->nat, sql, callback_call, callback_data, NULL);
261 Sq3ErrorE_Check(sq3lite, errVal);
262 return MK_OK;
263 error:
264 return MK_ERROR;
265 }
266
267 // doc-key: Sq3LiteC,Sq3LiteC-Execution,sm_
268
271 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_sleep(arg0);
273 return MK_OK;
274 error:
275 return MK_ERROR;
276 }
277#endif
278
279#ifndef PARSE_C_HEADER_TO_META
280
281 // doc-key: Sq3LiteC,Sq3LiteC-Info,om_
282
285 SQ3_INSTANCE_HDL(sq3lite);
286 return sqlite3_get_autocommit(sq3lite->nat);
287 }
288
291 SQ3_INSTANCE_HDL(sq3lite);
292 return sqlite3_last_insert_rowid(sq3lite->nat);
293 }
294
297 SQ3_INSTANCE_HDL(sq3lite);
298 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_txn_state(sq3lite->nat, zSchema);
299 Sq3ErrorE_Check(sq3lite, errVal);
300 return MK_OK;
301 error:
302 return MK_ERROR;
303 }
304
307 SQ3_INSTANCE_HDL(sq3lite);
308 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_vtab_on_conflict(sq3lite->nat);
309 Sq3ErrorE_Check(sq3lite, errVal);
310 return MK_OK;
311 error:
312 return MK_ERROR;
313 }
314#endif
315
316#ifndef PARSE_C_HEADER_TO_META
317
318 // doc-key: Sq3LiteC,Sq3LiteC-Misc,om_
319
323 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_autovacuum_pages(db->nat, arg1, (MK_PTR)(arg2), arg3);
324 Sq3ErrorE_Check(db, errVal);
325 return MK_OK;
326 error:
327 return MK_ERROR;
328 }
329
332 SQ3_INSTANCE_HDL(sq3lite);
333 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_create_collation(sq3lite->nat, zName, eTextRep, (MK_PTR)(pArg), xCompare);
334 Sq3ErrorE_Check(sq3lite, errVal);
335 return MK_OK;
336 error:
337 return MK_ERROR;
338 }
339
342 SQ3_INSTANCE_HDL(sq3lite);
343 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_db_cacheflush(sq3lite->nat);
344 Sq3ErrorE_Check(sq3lite, errVal);
345 return MK_OK;
346 error:
347 return MK_ERROR;
348 }
349
351 mk_inline SQ3_FILENAME Sq3LiteDbFilename (SQ3_LITE db, MK_STRN zDbName) {
353 SQ3_FILENAME __retVal__L = sqlite3_db_filename(db->nat, zDbName);
354 return __retVal__L;
355 }
356
360 MK_STRN __retVal__L = sqlite3_db_name(db->nat, N);
361 return __retVal__L;
362 }
363
367 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_db_readonly(db->nat, zDbName);
368 Sq3ErrorE_Check(db, errVal);
369 return MK_OK;
370 error:
371 return MK_ERROR;
372 }
373
376 SQ3_INSTANCE_HDL(sq3lite);
377 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_db_release_memory(sq3lite->nat);
378 Sq3ErrorE_Check(sq3lite, errVal);
379 return MK_OK;
380 error:
381 return MK_ERROR;
382 }
383
385 mk_inline enum MkErrorE Sq3LiteDeserializeHide (SQ3_LITE db, MK_STRN zSchema, MK_BIN pData, MK_I64 szDb, MK_I64 szBuf, enum Sq3DeSerializeEF mFlags) {
387 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_deserialize(db->nat, zSchema, pData, szDb, szBuf, mFlags);
388 Sq3ErrorE_Check(db, errVal);
389 return MK_OK;
390 error:
391 return MK_ERROR;
392 }
393
397 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_drop_modules(db->nat, azKeep);
398 Sq3ErrorE_Check(db, errVal);
399 return MK_OK;
400 error:
401 return MK_ERROR;
402 }
403
405 mk_inline enum MkErrorE Sq3LiteFileControl (SQ3_LITE sq3lite, MK_STRN zDbName, enum Sq3TestCtrlE op, MK_PTR arg3) {
406 SQ3_INSTANCE_HDL(sq3lite);
407 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_file_control(sq3lite->nat, zDbName, op, (MK_PTR)(arg3));
408 Sq3ErrorE_Check(sq3lite, errVal);
409 return MK_OK;
410 error:
411 return MK_ERROR;
412 }
413
416 SQ3_INSTANCE_HDL(sq3lite);
417 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_overload_function(sq3lite->nat, zFuncName, nArg);
418 Sq3ErrorE_Check(sq3lite, errVal);
419 return MK_OK;
420 error:
421 return MK_ERROR;
422 }
423
424 // doc-key: Sq3LiteC,Sq3LiteC-Misc,omo
425
427 mk_inline enum MkErrorE Sq3LiteDbStatus (SQ3_LITE sq3lite, enum Sq3DbStatusE op, MK_I32 *pCur, MK_I32 *pHiwtr, MK_BOOL resetFlg) {
428 SQ3_INSTANCE_HDL(sq3lite);
429 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_db_status(sq3lite->nat, op, pCur, pHiwtr, resetFlg);
430 Sq3ErrorE_Check(sq3lite, errVal);
431 return MK_OK;
432 error:
433 return MK_ERROR;
434 }
435
439 return sqlite3_serialize(db->nat, zSchema, piSize, mFlags);
440 }
441
443 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) {
445 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_table_column_metadata(db->nat, zDbName, zTableName, zColumnName, pzDataType, pzCollSeq, pNotNull, pPrimaryKey, pAutoinc);
446 Sq3ErrorE_Check(db, errVal);
447 return MK_OK;
448 error:
449 return MK_ERROR;
450 }
451#endif
452
453#ifndef PARSE_C_HEADER_TO_META
454
455 // doc-key: Sq3LiteC,Sq3LiteC-Modify-Wal,om_
456
460 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_wal_autocheckpoint(db->nat, N);
461 Sq3ErrorE_Check(db, errVal);
462 return MK_OK;
463 error:
464 return MK_ERROR;
465 }
466
467 // doc-key: Sq3LiteC,Sq3LiteC-Modify-Wal,omo
468
472 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_wal_checkpoint_v2(db->nat, zDb, eMode, pnLog, pnCkpt);
473 Sq3ErrorE_Check(db, errVal);
474 return MK_OK;
475 error:
476 return MK_ERROR;
477 }
478#endif
479
480#ifndef PARSE_C_HEADER_TO_META
481
482 // doc-key: Sq3LiteC,Sq3LiteC-Query,om_
483
486 SQ3_INSTANCE_HDL(sq3lite);
487 sqlite3_interrupt(sq3lite->nat);
488 }
489
492 SQ3_INSTANCE_HDL(sq3lite);
493 return (MK_BOOL)sqlite3_is_interrupted(sq3lite->nat);
494 }
495#endif
496
497#ifndef PARSE_C_HEADER_TO_META
498
499 // doc-key: Sq3LiteC,Sq3LiteC-Row,om_
500
503 SQ3_INSTANCE_HDL(sq3lite);
504 return sqlite3_changes(sq3lite->nat);
505 }
506
509 SQ3_INSTANCE_HDL(sq3lite);
510 return sqlite3_changes64(sq3lite->nat);
511 }
512
515 SQ3_INSTANCE_HDL(sq3lite);
516 sqlite3_set_last_insert_rowid(sq3lite->nat, arg1);
517 }
518
521 SQ3_INSTANCE_HDL(sq3lite);
522 return sqlite3_total_changes(sq3lite->nat);
523 }
524
527 SQ3_INSTANCE_HDL(sq3lite);
528 return sqlite3_total_changes64(sq3lite->nat);
529 }
530#endif
531
532#ifndef PARSE_C_HEADER_TO_META
533
534 // doc-key: Sq3LiteC,Sq3LiteC-TOR,sCo
535
537 mk_inline enum MkErrorE Sq3LiteOpenV2 (MK_STRN filename, SQ3_LITE *ppDb, enum Sq3OpenEF flags, MK_STRN zVfs) {
538 *ppDb = NULL;
539 sqlite3* ppDb_val = NULL;
540 if (MK_NULL_STR_CHECK_1(zVfs)) zVfs = NULL;
541 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_open_v2(filename, &ppDb_val, flags, zVfs);
542 *ppDb = Sq3LiteC_ObjCreate(ppDb_val);
544 return MK_OK;
545 error:
546 return MK_ERROR;
547 }
548
549 // doc-key: Sq3LiteC,Sq3LiteC-TOR,om_
550
553 enum Sq3ErrorE errVal = (enum Sq3ErrorE)sqlite3_close_v2(sq3lite->nat);
554 Sq3ErrorE_Check(sq3lite, errVal);
555 return MK_OK;
556 error:
557 return MK_ERROR;
558 }
559#endif
560
561// END-Sq3LiteC-inline - created by 'c_Native.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
562
563// =============================================================================================
564// OVERLOAD
565//
566
580 SQ3_INSTANCE_HDL(sq3lite);
581
582 MK_I64 piSize_val = 0;
583 MK_BIN __retVal__L = Sq3LiteSerializeHide(sq3lite, zSchema, &piSize_val, mFlags);
584 return MkBinaryCreate((MK_SIZE)piSize_val,__retVal__L);
585}
586
603 SQ3_LITE sq3lite,
604 MK_STRN zSchema,
605 MkBinaryR pData,
606 enum Sq3DeSerializeEF mFlags
607) {
608 SQ3_INSTANCE_RT_X(sq3lite);
609
610 Sq3LiteDeserializeHide_E(sq3lite, zSchema, (MK_BIN)pData.data, (MK_I64)pData.size, (MK_I64)pData.size, mFlags);
611 return MK_OK;
612error:
613 return MkErrorStack_1X(sq3lite);
614}
615
635#define Sq3LiteVtabConfig(sq3lite, op, ...) ({ \
636 Sq3ErrorE errVal = sqlite3_vtab_config(sq3lite->nat, op, __VA_ARGS__); \
637 Sq3ErrorE_Check_Macro(sq3lite,errVal); \
638 if (unlikely(Sq3ErrorCheckI(errVal))) { \
639 Sq3LiteErrorToMQ(MkOBJ(sq3lite), __func__,__FILE__,__LINE__); \
640 MK_ERROR; \
641 } else { \
642 MK_OK; \
643 } \
644})
645
660 SQ3_LITE sq3lite,
661 enum Sq3DbStatusE op,
662 MK_BFL *val_out,
663 MK_BOOL resetFlg
664) {
665 assert(val_out != NULL);
666 SQ3_INSTANCE_RT_X(sq3lite);
667
669 MK_I32 pCur;
670 MK_I32 pHiwtr;
671 Sq3LiteDbStatus_E(sq3lite,op,&pCur,&pHiwtr,resetFlg);
672 MkBufferListAppendI32(bfl,pCur);
673 MkBufferListAppendI32(bfl,pHiwtr);
674 *val_out = bfl;
675 MkErrorReturnLabel(sq3lite);
676}
677
691 SQ3_LITE sq3lite,
692 MK_BFL azKeepBfl
694
695// this is the sqlite3_prepare_v2 but as "Sq3LiteC" method
708__parser__(class=Sq3LiteC,constructor)
711 SQ3_LITE db,
712 MkStringR zSql,
713 SQ3_STMT *ppStmt __parser__(out)
714) {
716 MkRtSetup_X(db);
717 MK_STRN pzTail = NULL;
718 MkErrorE_Check(Sq3StmtPrepareV2Hide(db,zSql.ptr,zSql.len,ppStmt,&pzTail));
719 (*ppStmt)->pzTail = pzTail;
720 MkErrorReturnLabel(db);
721}
722
723// ---------------------------------------------------------------------------------------------------
724
727
728#define Sq3Fupu_Sq3LiteExec_callback_call_check do { \
729 assert(callV1 != NULL); \
730} while (0)
731
732#define Sq3Fupu_Sq3LiteExecV2CB_callback_call_check do { \
733 assert(callV2 != NULL); \
734} while (0)
735
736// doc-key: Sq3LiteC,Sq3LiteC-Execution,om_
737#define Sq3LiteExecV2CB_ret enum MkErrorE
738#define Sq3LiteExecV2CB_args MK_RT_ARGS MK_CBP callV2, MK_BFL vals, MK_BFL cols
739
746typedef enum MkErrorE (*Sq3LiteExecV2CB) (MK_RT_ARGS MK_CBP callV2, MK_BFL vals, MK_BFL cols);
747
762__parser__(class=Sq3LiteC,doc-group=Execution,callback-name=LiteExecV2,callback-null,callback-once)
765 SQ3_LITE sq3lite,
766 MK_STRN sql,
767 Sq3LiteExecV2CB callback_call __parser__(callback-call),
768 MK_CBP callback __parser__(callback-data)
770
772// Sq3LiteC_Execution_C_API
773
LibSq3Lite_sq3.h - 10 Apr 2025 - aotto1968.
#define BEGIN_SQ3_C_DECLS
#define END_SQ3_C_DECLS
Sq3LiteC_def_sq3.h - 10 Apr 2025 - aotto1968.
#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:82
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 tclsq3lite error and convert into a tclsq3lite 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 …