theSq3Lite 10.0
Loading...
Searching...
No Matches
Sq3LiteC_tcl.c
Go to the documentation of this file.
1
9/* LABEL-START */
10
11#define META_FILE_NAME "Sq3LiteC_tcl.c"
12
14
15#define OT_CLASS NS(Sq3LiteC)
16#define OT_CLASS_NAME "Sq3LiteC"
17
18#define OBJECT2LITE(O) MkAssertCastM(Sq3LiteC,(Tcl_ObjectGetMetadata(O, &MK(AtomMeta))))
19
20// TCL class
22
23// META class
25MkThreadLocal OT_OBJ_T SQ3(Sq3LiteC_MK_NULL) = NULL;
26
27// META: ObjNew feature: selfCreate will be called from "ObjNew->MkSelfNew" if MkObj need a SELF pointer
28static MK_PTR NS(Sq3LiteC_selfCreate) (MK_RT_ARGS MK_OBJ const obj, MK_PTR const env) {
29 OT_ENV_T interp = env;
30 return MK(AtomCreate) (MK_RT_CALL interp,obj,OT_CLASS,NULL,NULL);
31}
32// META: is called when the META object is destroyed and SELF does NOT belongs to the META.
33static void NS(Sq3LiteC_selfDelete) (MK_RT_ARGS MK_PTR selfP, MK_PTR const env) {
34 OT_SELF_T selfO = selfP;
35 OT_ENV_T interp = env;
36 MK(AtomDeleteHard) (MK_RT_CALL interp, selfO);
37}
38// META: is called when the META object is destroyed and SELF does NOT belong to the META.
39static void NS(Sq3LiteC_selfUnlink) (MK_RT_ARGS MK_PTR selfP, MK_PTR const env) {
40 OT_SELF_T selfO = selfP;
41 OT_ENV_T interp = env;
42 MK(AtomUnlink) (MK_RT_CALL interp, selfO);
43}
44
45// ATTENTION: TCL has no "Unlink" because the "Tcl_ObjectSetMetadata(selfO,&MK(AtomMeta),NULL);" call
46// also the destructor
47
48#define OT_SETUP_hdl_static_constr_pre
49#define OT_SETUP_hdl_static_constr \
50 OT_SETUP_hdl_static_constr_pre; \
51 OT_SETUP_hdl_static
52
53#define OT_SETUP_hdl_static \
54 int __skip=Tcl_ObjectContextSkippedArgs(objCtx); \
55 AllRtSetup_NULL; \
56 __attribute__((unused)) OT_SELF_T selfO = Tcl_ObjectContextObject(objCtx); \
57 __attribute__((unused)) MK_TYP hdl = Sq3LiteC##_TT;
58
59#define OT_SETUP_hdl SetupHdlFromMetaData_2(LITE,SQ3_LITE);
60#define OT_SETUP_hdl__null_allow SetupHdlFromMetaData__null_allow_2(LITE,SQ3_LITE);
61#define OT_SETUP_hdl_destr SetupHdlFromMetaData__null_allow_2(LITE,SQ3_LITE);
62
63#define OT_SETUP_hdl_constr_pre
64#define OT_SETUP_hdl_constr \
65 OT_SETUP_hdl_constr_pre; \
66 int __skip=Tcl_ObjectContextSkippedArgs(objCtx); \
67 AllRtSetup_NULL; \
68 MK_RT_UNUSED OT_SELF_T selfO = Tcl_ObjectContextObject(objCtx); \
69 SQ3_LITE hdl = (SQ3_LITE) &MkERROR;
70
71#if !defined(SetupRtFromHdl_XN)
72 #define SetupRtFromHdl_XN(hdl) AllRtSetup_XN(hdl)
73 #define SetupRtFromHdl_X(hdl) AllRtSetup_X(hdl)
74#endif
75
76// initialize the TCL and MO class specific object
77#define ClassInit \
78 /* if not already done, initialize NEW MQ type */ \
79 if (Sq3LiteCTT == NULL) Sq3LiteCTT = Sq3LiteSTT; \
80 \
81 /* protect against double call */ \
82 if (Sq3LiteCTT->selfCreate == NS(Sq3LiteC_selfCreate)) return MK_OK; \
83 \
84 /* add "selfCreate" and "selfDelete" feature to the MQ-Class */ \
85 Sq3LiteCTT->selfCreate = NS(Sq3LiteC_selfCreate); \
86 Sq3LiteCTT->selfDelete = NS(Sq3LiteC_selfDelete); \
87 Sq3LiteCTT->selfUnlink = NS(Sq3LiteC_selfUnlink); \
88 \
89 /* create the TCL-class */ \
90 OT_SELF_T classO = MK(ClassDef)(interp,ns,Sq3LiteCTT); \
91 check_NULL(classO) goto error; \
92 OT_CLASS = Tcl_GetObjectAsClass(classO); \
93 \
94 /* create the TCL static Methods */ \
95 static MkThreadLocal OtUnknownS NS(sClassUnknown) = {OT_UNKNOWN_CLASS}; \
96 check_LNG(MK(UnknownSetup) (interp,classO,NS(sOtClassDef),&NS(sClassUnknown))) goto error; \
97 \
98 /* create the TCL instance Methods */ \
99 static MkThreadLocal OtUnknownS NS(sInstanceUnknown) = {OT_UNKNOWN_INSTANCE}; \
100 check_LNG(MK(UnknownSetup) (interp,classO,NS(sInstanceDef),&NS(sInstanceUnknown))) goto error; \
101 \
102 /* define the "NULL" object */ \
103 SQ3(Sq3LiteC_MK_NULL) = Tcl_GetObjectName(interp, \
104 MK(AtomCreate) (MK_RT_CALL interp, NULL /*obj*/, OT_CLASS, "MK_NULL" /*name*/, "::tclsq3lite::Sq3LiteC" /*ns*/) \
105 ); \
106 Tcl_IncrRefCount(SQ3(Sq3LiteC_MK_NULL));
107
108#define VER TCL_OO_METHOD_VERSION_CURRENT
109
110/* LABEL-END */
111
112// BEGIN-DOC - created by 'tcl_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
113
114// doc-key: Sq3LiteC,Sq3Lite,sCo,func
115#define CTOR_doc "Sq3LiteC [Sq3LiteC CTOR filename:string ?flags:Sq3OpenEF={SQ3_OPEN_READWRITE SQ3_OPEN_CREATE}? ?zVfs:string=\"MK_NULL\"?]"
116#define OpenV2_doc "Sq3LiteC [Sq3LiteC OpenV2 filename:string ?flags:Sq3OpenEF={SQ3_OPEN_READWRITE SQ3_OPEN_CREATE}? ?zVfs:string=\"MK_NULL\"?]"
117
118// doc-key: Sq3LiteC,Sq3Lite,sc_,func
119#define GetNull_doc "Sq3LiteC [Sq3LiteC GetNull]"
120#define HandleResolve_doc "Sq3LiteC [Sq3LiteC HandleResolve netHdl:MK_HDL]"
121#define Instances_doc "Sq3LiteC [Sq3LiteC Instances]"
122
123// doc-key: Sq3LiteC,Sq3Lite,sm_,func
124#define ErrStr_doc "string [Sq3LiteC ErrStr arg0:int32]"
125#define Sleep_doc "Sq3LiteC Sleep arg0:int32"
126
127// doc-key: Sq3LiteC,Sq3Lite,oc_,func
128#define Next_doc "Sq3LiteC [$lite Next]"
129#define Prev_doc "Sq3LiteC [$lite Prev]"
130
131// doc-key: Sq3LiteC,Sq3Lite,oco,func
132#define DbStatusBFL_doc "MkBufferListC [$sq3lite DbStatusBFL op:Sq3DbStatusE resetFlg:bool]"
133#define PrepareV2_doc "Sq3StmtC [$db PrepareV2 zSql:string]"
134
135// doc-key: Sq3LiteC,Sq3Lite,om_,func
136#define BusyTimeout_doc "$sq3lite BusyTimeout ms:int32"
137#define Changes_doc "int32 [$sq3lite Changes]"
138#define Changes64_doc "int64 [$sq3lite Changes64]"
139#define CloseV2_doc "$sq3lite CloseV2"
140#define DbCacheflush_doc "$sq3lite DbCacheflush"
141#define DbFilename_doc "string [$db DbFilename zDbName:string]"
142#define DbName_doc "string [$db DbName N:int32]"
143#define DbReadonly_doc "$db DbReadonly zDbName:string"
144#define DbReleaseMemory_doc "$sq3lite DbReleaseMemory"
145#define DeclareVtab_doc "$sq3lite DeclareVtab zSQL:string"
146#define Deserialize_doc "$sq3lite Deserialize zSchema:string pData:binary mFlags:Sq3DeSerializeEF"
147#define DropModules_doc "$sq3lite DropModules azKeepBfl:MkBufferListC"
148#define ErrCode_doc "Sq3ErrorE [$db ErrCode]"
149#define ErrMsg_doc "string [$sq3lite ErrMsg]"
150#define ErrorOffset_doc "$db ErrorOffset"
151#define Exec_doc "$sq3lite Exec sql:string ?callback_data:callable=\"MK_NULL\"?"
152#define ExecV2_doc "$sq3lite ExecV2 sql:string ?callback:callable=\"MK_NULL\"?"
153#define ExtendedResultCodes_doc "$sq3lite ExtendedResultCodes onoff:int32"
154#define ExtendetErrCode_doc "Sq3ExtendetResultCodesE [$db ExtendetErrCode]"
155#define GetAutocommit_doc "int32 [$sq3lite GetAutocommit]"
156// skip class-overload: HandleGet → MkObjectHandleGet
157#define Interrupt_doc "$sq3lite Interrupt"
158#define IsInterrupted_doc "bool [$sq3lite IsInterrupted]"
159#define LastInsertRowid_doc "int64 [$sq3lite LastInsertRowid]"
160#define Limit_doc "$sq3lite Limit id:Sq3LimitE newVal:int32"
161// skip class-overload: Log → MkObjectLog
162#define OverloadFunction_doc "$sq3lite OverloadFunction zFuncName:string nArg:int32"
163#define Serialize_doc "binary [$sq3lite Serialize zSchema:string mFlags:Sq3SerializeE]"
164#define SetLastInsertRowid_doc "$sq3lite SetLastInsertRowid arg1:int64"
165#define SystemErrno_doc "$sq3lite SystemErrno"
166#define TotalChanges_doc "int32 [$sq3lite TotalChanges]"
167#define TotalChanges64_doc "int64 [$sq3lite TotalChanges64]"
168#define TxnState_doc "$sq3lite TxnState zSchema:string"
169#define VtabOnConflict_doc "$sq3lite VtabOnConflict"
170#define WalAutocheckpoint_doc "$db WalAutocheckpoint N:int32"
171
172// doc-key: Sq3LiteC,Sq3Lite,omo,func
173#define DbStatus_doc "{pCur:int32 pHiwtr:int32} [$sq3lite DbStatus op:Sq3DbStatusE resetFlg:bool]"
174#define TableColumnMetadata_doc "{pzDataType:string pzCollSeq:string pNotNull:int32 pPrimaryKey:int32 pAutoinc:int32} [$db TableColumnMetadata zDbName:string zTableName:string zColumnName:string]"
175#define WalCheckpointV2_doc "{pnLog:int32 pnCkpt:int32} [$db WalCheckpointV2 zDb:string eMode:int32]"
176
177// END-DOC - created by 'tcl_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
178
179/*****************************************************************************/
180/* */
181/* O B J E C T */
182/* */
183/*****************************************************************************/
184
185// BEGIN-Sq3LiteC - created by 'tcl_MqC.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
186
190
191// doc-key: Sq3LiteC,Sq3LiteC-Class-Export,sc_
192
194static OT_ProcRet NS(Sq3LiteC_HandleResolve) (OtClass_ARGS) {
197 MK_HDL netHdl = 0;
200 SQ3_LITE retVal = Sq3LiteHandleResolve (netHdl);
201 OT_retObj_SET_LITE(retVal);
202 goto end;
203 error:
205 end:
207}
208
209// doc-key: Sq3LiteC,Sq3LiteC-Class-Export,om_
210
211// skip on class-overload: Sq3LiteHandleGet → MkObjectHandleGet
213static OT_ProcRet NS(Sq3LiteC_HandleGet) (Sq3LiteC_ARGS) {OT_ERROR_LNG_RETURN;}
214
216// Sq3LiteC_Class_TCL_API
217
221
222// doc-key: Sq3LiteC,Sq3LiteC-Class-Introspection,oc_
223
225static OT_ProcRet NS(Sq3LiteC_Next) (Sq3LiteC_ARGS) {
229 SQ3_LITE retVal = Sq3LiteNext (hdl);
230 OT_retObj_SET_LITE(retVal);
231 goto end;
232 error:
234 end:
236}
237
239static OT_ProcRet NS(Sq3LiteC_Prev) (Sq3LiteC_ARGS) {
243 SQ3_LITE retVal = Sq3LitePrev (hdl);
244 OT_retObj_SET_LITE(retVal);
245 goto end;
246 error:
248 end:
250}
251
252// doc-key: Sq3LiteC,Sq3LiteC-Class-Introspection,sc_
253
255static OT_ProcRet NS(Sq3LiteC_Instances) (OtClass_ARGS) {
259 SQ3_LITE retVal = Sq3LiteInstances ();
260 OT_retObj_SET_LITE(retVal);
261 goto end;
262 error:
264 end:
266}
267
269// Sq3LiteC_Class_TCL_API
270
274
275// doc-key: Sq3LiteC,Sq3LiteC-Class-Misc,sc_
276
278static OT_ProcRet NS(Sq3LiteC_GetNull) (OtClass_ARGS) {
282 SQ3_LITE retVal = Sq3LiteGetNull ();
283 OT_retObj_SET_LITE(retVal);
284 goto end;
285 error:
287 end:
289}
290
292// Sq3LiteC_Class_TCL_API
293
297
298// doc-key: Sq3LiteC,Sq3LiteC-Config,om_
299
301static OT_ProcRet NS(Sq3LiteC_BusyTimeout) (Sq3LiteC_ARGS) {
304 MK_I32 ms = 0;
307 MkErrorC_Check(hdl,Sq3LiteBusyTimeout (hdl, ms));
309 goto end;
310 error:
312 end:
314}
315
317static OT_ProcRet NS(Sq3LiteC_DeclareVtab) (Sq3LiteC_ARGS) {
320 MK_STRN zSQL = 0;
323 MkErrorC_Check(hdl,Sq3LiteDeclareVtab (hdl, zSQL));
325 goto end;
326 error:
328 end:
330}
331
333static OT_ProcRet NS(Sq3LiteC_ExtendedResultCodes) (Sq3LiteC_ARGS) {
336 MK_I32 onoff = 0;
341 goto end;
342 error:
344 end:
346}
347
349static OT_ProcRet NS(Sq3LiteC_Limit) (Sq3LiteC_ARGS) {
352 enum Sq3LimitE id = 0;
354 MK_I32 newVal = 0;
357 MkErrorC_Check(hdl,Sq3LiteLimit (hdl, id, newVal));
359 goto end;
360 error:
362 end:
364}
365
367// Sq3LiteC_Config_TCL_API
368
372
373// doc-key: Sq3LiteC,Sq3LiteC-Error,om_
374
376static OT_ProcRet NS(Sq3LiteC_ErrCode) (Sq3LiteC_ARGS) {
381 goto end;
382 error:
384 end:
386}
387
389static OT_ProcRet NS(Sq3LiteC_ErrMsg) (Sq3LiteC_ARGS) {
394 goto end;
395 error:
397 end:
399}
400
402static OT_ProcRet NS(Sq3LiteC_ErrorOffset) (Sq3LiteC_ARGS) {
408 goto end;
409 error:
411 end:
413}
414
416static OT_ProcRet NS(Sq3LiteC_ExtendetErrCode) (Sq3LiteC_ARGS) {
420 OT_retObj_SET(OT_NEW_Sq3_enum_OBJ(ExtendetResultCodesE,Sq3LiteExtendetErrCode (hdl)));
421 goto end;
422 error:
424 end:
426}
427
429static OT_ProcRet NS(Sq3LiteC_SystemErrno) (Sq3LiteC_ARGS) {
435 goto end;
436 error:
438 end:
440}
441
442// doc-key: Sq3LiteC,Sq3LiteC-Error,sm_
443
445static OT_ProcRet NS(Sq3LiteC_ErrStr) (OtClass_ARGS) {
448 MK_I32 arg0 = 0;
452 goto end;
453 error:
455 end:
457}
458
460// Sq3LiteC_Error_TCL_API
461
465
466// doc-key: Sq3LiteC,Sq3LiteC-Execution,om_
467
469static OT_ProcRet NS(Sq3LiteC_Exec) (Sq3LiteC_ARGS) {
472 MK_STRN sql = 0;
474 OT_SETUP_CALLABLE_ONCE(callback_data)
477 Sq3Fupu_Sq3LiteExec_callback_call callback_call = (callback_data == NULL ? NULL : NS(LiteExecCall));
478 MkErrorC_Check(hdl,Sq3LiteExec (hdl, sql, callback_call, callback_data));
480 goto end;
481 error:
483 end:
484 OT_CLEANUP_CALLABLE_ONCE(callback_data)
486}
487
489static OT_ProcRet NS(Sq3LiteC_ExecV2) (Sq3LiteC_ARGS) {
492 MK_STRN sql = 0;
494 OT_SETUP_CALLABLE_ONCE(callback)
497 Sq3LiteExecV2CB callback_call = (callback == NULL ? NULL : NS(LiteExecV2Call));
498 MkErrorC_Check(hdl,Sq3LiteExecV2 (hdl, sql, callback_call, callback));
500 goto end;
501 error:
503 end:
506}
507
508// doc-key: Sq3LiteC,Sq3LiteC-Execution,sm_
509
511static OT_ProcRet NS(Sq3LiteC_Sleep) (OtClass_ARGS) {
514 MK_I32 arg0 = 0;
519 goto end;
520 error:
522 end:
524}
525
527// Sq3LiteC_Execution_TCL_API
528
532
533// doc-key: Sq3LiteC,Sq3LiteC-Info,om_
534
536static OT_ProcRet NS(Sq3LiteC_GetAutocommit) (Sq3LiteC_ARGS) {
541 goto end;
542 error:
544 end:
546}
547
549static OT_ProcRet NS(Sq3LiteC_LastInsertRowid) (Sq3LiteC_ARGS) {
554 goto end;
555 error:
557 end:
559}
560
562static OT_ProcRet NS(Sq3LiteC_TxnState) (Sq3LiteC_ARGS) {
565 MK_STRN zSchema = 0;
568 MkErrorC_Check(hdl,Sq3LiteTxnState (hdl, zSchema));
570 goto end;
571 error:
573 end:
575}
576
578static OT_ProcRet NS(Sq3LiteC_VtabOnConflict) (Sq3LiteC_ARGS) {
584 goto end;
585 error:
587 end:
589}
590
592// Sq3LiteC_Info_TCL_API
593
597
598// doc-key: Sq3LiteC,Sq3LiteC-Misc,oco
599
601static OT_ProcRet NS(Sq3LiteC_DbStatusBFL) (Sq3LiteC_ARGS) {
604 enum Sq3DbStatusE op = 0;
606 MK_BOOL resetFlg = 0;
609 MK_BFL val_out;
610 MkErrorC_Check(hdl,Sq3LiteDbStatusBFL (hdl, op, &val_out, resetFlg));
611 OT_retObj_SET_BFL(val_out);
612 goto end;
613 error:
615 end:
617}
618
619// doc-key: Sq3LiteC,Sq3LiteC-Misc,om_
620
622static OT_ProcRet NS(Sq3LiteC_DbCacheflush) (Sq3LiteC_ARGS) {
628 goto end;
629 error:
631 end:
633}
634
636static OT_ProcRet NS(Sq3LiteC_DbFilename) (Sq3LiteC_ARGS) {
639 MK_STRN zDbName = 0;
642 OT_retObj_SET_STR(Sq3LiteDbFilename (hdl, zDbName));
643 goto end;
644 error:
646 end:
648}
649
651static OT_ProcRet NS(Sq3LiteC_DbName) (Sq3LiteC_ARGS) {
654 MK_I32 N = 0;
658 goto end;
659 error:
661 end:
663}
664
666static OT_ProcRet NS(Sq3LiteC_DbReadonly) (Sq3LiteC_ARGS) {
669 MK_STRN zDbName = 0;
672 MkErrorC_Check(hdl,Sq3LiteDbReadonly (hdl, zDbName));
674 goto end;
675 error:
677 end:
679}
680
682static OT_ProcRet NS(Sq3LiteC_DbReleaseMemory) (Sq3LiteC_ARGS) {
688 goto end;
689 error:
691 end:
693}
694
696static OT_ProcRet NS(Sq3LiteC_Deserialize) (Sq3LiteC_ARGS) {
699 MK_STRN zSchema = 0;
701 MkBinaryR pData = {0};
703 enum Sq3DeSerializeEF mFlags = 0;
706 MkErrorC_Check(hdl,Sq3LiteDeserialize (hdl, zSchema, pData, mFlags));
708 goto end;
709 error:
711 end:
713}
714
716static OT_ProcRet NS(Sq3LiteC_DropModules) (Sq3LiteC_ARGS) {
719 MkBufferListCreateTLS_T(azKeepBfl,10);
722 MkErrorC_Check(hdl,Sq3LiteDropModules (hdl, azKeepBfl));
724 goto end;
725 error:
727 end:
729}
730
731// skip on class-overload: Sq3LiteLog → MkObjectLog
734
736static OT_ProcRet NS(Sq3LiteC_OverloadFunction) (Sq3LiteC_ARGS) {
739 MK_STRN zFuncName = 0;
741 MK_I32 nArg = 0;
744 MkErrorC_Check(hdl,Sq3LiteOverloadFunction (hdl, zFuncName, nArg));
746 goto end;
747 error:
749 end:
751}
752
754static OT_ProcRet NS(Sq3LiteC_Serialize) (Sq3LiteC_ARGS) {
757 MK_STRN zSchema = 0;
759 enum Sq3SerializeE mFlags = 0;
762 MkBinaryR retVal = Sq3LiteSerialize (hdl, zSchema, mFlags);
764 goto end;
765 error:
767 end:
769}
770
771// doc-key: Sq3LiteC,Sq3LiteC-Misc,omo
772
774static OT_ProcRet NS(Sq3LiteC_DbStatus) (Sq3LiteC_ARGS) {
777 enum Sq3DbStatusE op = 0;
779 MK_BOOL resetFlg = 0;
782 MK_I32 pCur;
783 MK_I32 pHiwtr;
784 MkErrorC_Check(hdl,Sq3LiteDbStatus (hdl, op, &pCur, &pHiwtr, resetFlg));
788 goto end;
789 error:
791 end:
793}
794
796static OT_ProcRet NS(Sq3LiteC_TableColumnMetadata) (Sq3LiteC_ARGS) {
799 MK_STRN zDbName = 0;
801 MK_STRN zTableName = 0;
802 OT_CHECK_REQUIRED(OT_CHECK_STRN (zTableName))
803 MK_STRN zColumnName = 0;
804 OT_CHECK_REQUIRED(OT_CHECK_STRN (zColumnName))
806 MK_STRN pzDataType;
807 MK_STRN pzCollSeq;
808 MK_I32 pNotNull;
809 MK_I32 pPrimaryKey;
810 MK_I32 pAutoinc;
811 MkErrorC_Check(hdl,Sq3LiteTableColumnMetadata (hdl, zDbName, zTableName, zColumnName, &pzDataType, &pzCollSeq, &pNotNull, &pPrimaryKey, &pAutoinc));
813 OT_retObj_APPEND(OT_TMP_STR_OBJ(pzDataType));
816 OT_retObj_APPEND(OT_TMP_I32_OBJ(pPrimaryKey));
818 goto end;
819 error:
821 end:
823}
824
826// Sq3LiteC_Misc_TCL_API
827
831
832// doc-key: Sq3LiteC,Sq3LiteC-Modify-Wal,om_
833
835static OT_ProcRet NS(Sq3LiteC_WalAutocheckpoint) (Sq3LiteC_ARGS) {
838 MK_I32 N = 0;
843 goto end;
844 error:
846 end:
848}
849
850// doc-key: Sq3LiteC,Sq3LiteC-Modify-Wal,omo
851
853static OT_ProcRet NS(Sq3LiteC_WalCheckpointV2) (Sq3LiteC_ARGS) {
856 MK_STRN zDb = 0;
858 MK_I32 eMode = 0;
861 MK_I32 pnLog;
862 MK_I32 pnCkpt;
863 MkErrorC_Check(hdl,Sq3LiteWalCheckpointV2 (hdl, zDb, eMode, &pnLog, &pnCkpt));
867 goto end;
868 error:
870 end:
872}
873
875// Sq3LiteC_Modify_Wal_TCL_API
876
880
881// doc-key: Sq3LiteC,Sq3LiteC-Query,om_
882
884static OT_ProcRet NS(Sq3LiteC_Interrupt) (Sq3LiteC_ARGS) {
888 Sq3LiteInterrupt (hdl);
890 goto end;
891 error:
893 end:
895}
896
898static OT_ProcRet NS(Sq3LiteC_IsInterrupted) (Sq3LiteC_ARGS) {
903 goto end;
904 error:
906 end:
908}
909
911// Sq3LiteC_Query_TCL_API
912
916
917// doc-key: Sq3LiteC,Sq3LiteC-Row,om_
918
920static OT_ProcRet NS(Sq3LiteC_Changes) (Sq3LiteC_ARGS) {
925 goto end;
926 error:
928 end:
930}
931
933static OT_ProcRet NS(Sq3LiteC_Changes64) (Sq3LiteC_ARGS) {
938 goto end;
939 error:
941 end:
943}
944
946static OT_ProcRet NS(Sq3LiteC_SetLastInsertRowid) (Sq3LiteC_ARGS) {
949 MK_I64 arg1 = 0;
952 Sq3LiteSetLastInsertRowid (hdl, arg1);
954 goto end;
955 error:
957 end:
959}
960
962static OT_ProcRet NS(Sq3LiteC_TotalChanges) (Sq3LiteC_ARGS) {
967 goto end;
968 error:
970 end:
972}
973
975static OT_ProcRet NS(Sq3LiteC_TotalChanges64) (Sq3LiteC_ARGS) {
980 goto end;
981 error:
983 end:
985}
986
988// Sq3LiteC_Row_TCL_API
989
993
994// doc-key: Sq3LiteC,Sq3LiteC-TOR,sCo
995
997static OT_ProcRet NS(Sq3LiteC_CTOR) (CONSTR_ARGS) {
1000 MK_STRN filename = 0;
1004 MK_STRN zVfs = NULL;
1006 SQ3_LITE ppDb;
1007 MkErrorC_Check(MK_ERROR_FORMAT,Sq3LiteOpenV2 (filename, &ppDb, flags, zVfs));
1009 OT_retObj_CONSTR(ppDb);
1010 goto end;
1011 error:
1013 end:
1015}
1016
1018static OT_ProcRet NS(Sq3LiteC_OpenV2) (OtClass_ARGS) {
1021 MK_STRN filename = 0;
1025 MK_STRN zVfs = NULL;
1028 SQ3_LITE ppDb;
1029 MkErrorC_Check(MK_ERROR_FORMAT,Sq3LiteOpenV2 (filename, &ppDb, flags, zVfs));
1031 OT_retObj_SET_LITE(ppDb);
1032 goto end;
1033 error:
1035 end:
1037}
1038
1039// doc-key: Sq3LiteC,Sq3LiteC-TOR,oco
1040
1042static OT_ProcRet NS(Sq3LiteC_PrepareV2) (Sq3LiteC_ARGS) {
1045 MkStringR zSql = {0};
1048 SQ3_STMT ppStmt;
1049 MkErrorC_Check(hdl,Sq3LitePrepareV2 (hdl, zSql, &ppStmt));
1050 OT_retObj_SET_STMT(ppStmt);
1051 goto end;
1052 error:
1054 end:
1056}
1057
1058// doc-key: Sq3LiteC,Sq3LiteC-TOR,om_
1059
1061static OT_ProcRet NS(Sq3LiteC_CloseV2) (Sq3LiteC_ARGS) {
1065 MkErrorC_Check(hdl,Sq3LiteCloseV2 (hdl));
1067 goto end;
1068 error:
1070 end:
1072}
1073
1075// Sq3LiteC_TOR_TCL_API
1076
1077// END-Sq3LiteC - created by 'tcl_MqC.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
1078
1079static Tcl_MethodType NS(sOtClassDef)[] = {
1080// BEGIN-CLASS - created by 'tcl_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
1081
1082// doc-key: Sq3LiteC,Sq3Lite,sCo
1083 {VER, "OpenV2" , NS(Sq3LiteC_OpenV2) , NULL, NULL},
1084
1085// doc-key: Sq3LiteC,Sq3Lite,sc_
1086 {VER, "GetNull" , NS(Sq3LiteC_GetNull) , NULL, NULL},
1087 {VER, "HandleResolve" , NS(Sq3LiteC_HandleResolve) , NULL, NULL},
1088 {VER, "Instances" , NS(Sq3LiteC_Instances) , NULL, NULL},
1089
1090// doc-key: Sq3LiteC,Sq3Lite,sm_
1091 {VER, "ErrStr" , NS(Sq3LiteC_ErrStr) , NULL, NULL},
1092 {VER, "Sleep" , NS(Sq3LiteC_Sleep) , NULL, NULL},
1093
1094// END-CLASS - created by 'tcl_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
1095 {0, NULL, NULL, NULL}
1096};
1097
1098// ---------------------------------------------------------------------------------------
1099
1100static Tcl_MethodType NS(sInstanceDef)[] = {
1101// BEGIN-OBJ - created by 'tcl_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
1102
1103// doc-key: Sq3LiteC,Sq3Lite,oC_
1104 {VER, "<constructor>" , NS(Sq3LiteC_CTOR) , NULL, NULL},
1105
1106// doc-key: Sq3LiteC,Sq3Lite,oc_
1107 {VER, "Next" , NS(Sq3LiteC_Next) , NULL, NULL},
1108 {VER, "Prev" , NS(Sq3LiteC_Prev) , NULL, NULL},
1109
1110// doc-key: Sq3LiteC,Sq3Lite,oco
1111 {VER, "DbStatusBFL" , NS(Sq3LiteC_DbStatusBFL) , NULL, NULL},
1112 {VER, "PrepareV2" , NS(Sq3LiteC_PrepareV2) , NULL, NULL},
1113
1114// doc-key: Sq3LiteC,Sq3Lite,om_
1115 {VER, "BusyTimeout" , NS(Sq3LiteC_BusyTimeout) , NULL, NULL},
1116 {VER, "Changes" , NS(Sq3LiteC_Changes) , NULL, NULL},
1117 {VER, "Changes64" , NS(Sq3LiteC_Changes64) , NULL, NULL},
1118 {VER, "CloseV2" , NS(Sq3LiteC_CloseV2) , NULL, NULL},
1119 {VER, "DbCacheflush" , NS(Sq3LiteC_DbCacheflush) , NULL, NULL},
1120 {VER, "DbFilename" , NS(Sq3LiteC_DbFilename) , NULL, NULL},
1121 {VER, "DbName" , NS(Sq3LiteC_DbName) , NULL, NULL},
1122 {VER, "DbReadonly" , NS(Sq3LiteC_DbReadonly) , NULL, NULL},
1123 {VER, "DbReleaseMemory" , NS(Sq3LiteC_DbReleaseMemory) , NULL, NULL},
1124 {VER, "DeclareVtab" , NS(Sq3LiteC_DeclareVtab) , NULL, NULL},
1125 {VER, "Deserialize" , NS(Sq3LiteC_Deserialize) , NULL, NULL},
1126 {VER, "DropModules" , NS(Sq3LiteC_DropModules) , NULL, NULL},
1127 {VER, "ErrCode" , NS(Sq3LiteC_ErrCode) , NULL, NULL},
1128 {VER, "ErrMsg" , NS(Sq3LiteC_ErrMsg) , NULL, NULL},
1129 {VER, "ErrorOffset" , NS(Sq3LiteC_ErrorOffset) , NULL, NULL},
1130 {VER, "Exec" , NS(Sq3LiteC_Exec) , NULL, NULL},
1131 {VER, "ExecV2" , NS(Sq3LiteC_ExecV2) , NULL, NULL},
1132 {VER, "ExtendedResultCodes" , NS(Sq3LiteC_ExtendedResultCodes) , NULL, NULL},
1133 {VER, "ExtendetErrCode" , NS(Sq3LiteC_ExtendetErrCode) , NULL, NULL},
1134 {VER, "GetAutocommit" , NS(Sq3LiteC_GetAutocommit) , NULL, NULL},
1135 // skip class-overload: Sq3LiteHandleGet → HandleGet, NS(Sq3LiteC_HandleGet)
1136 {VER, "Interrupt" , NS(Sq3LiteC_Interrupt) , NULL, NULL},
1137 {VER, "IsInterrupted" , NS(Sq3LiteC_IsInterrupted) , NULL, NULL},
1138 {VER, "LastInsertRowid" , NS(Sq3LiteC_LastInsertRowid) , NULL, NULL},
1139 {VER, "Limit" , NS(Sq3LiteC_Limit) , NULL, NULL},
1140 // skip class-overload: Sq3LiteLog → Log, NS(Sq3LiteC_Log)
1141 {VER, "OverloadFunction" , NS(Sq3LiteC_OverloadFunction) , NULL, NULL},
1142 {VER, "Serialize" , NS(Sq3LiteC_Serialize) , NULL, NULL},
1143 {VER, "SetLastInsertRowid" , NS(Sq3LiteC_SetLastInsertRowid) , NULL, NULL},
1144 {VER, "SystemErrno" , NS(Sq3LiteC_SystemErrno) , NULL, NULL},
1145 {VER, "TotalChanges" , NS(Sq3LiteC_TotalChanges) , NULL, NULL},
1146 {VER, "TotalChanges64" , NS(Sq3LiteC_TotalChanges64) , NULL, NULL},
1147 {VER, "TxnState" , NS(Sq3LiteC_TxnState) , NULL, NULL},
1148 {VER, "VtabOnConflict" , NS(Sq3LiteC_VtabOnConflict) , NULL, NULL},
1149 {VER, "WalAutocheckpoint" , NS(Sq3LiteC_WalAutocheckpoint) , NULL, NULL},
1150
1151// doc-key: Sq3LiteC,Sq3Lite,omo
1152 {VER, "DbStatus" , NS(Sq3LiteC_DbStatus) , NULL, NULL},
1153 {VER, "TableColumnMetadata" , NS(Sq3LiteC_TableColumnMetadata) , NULL, NULL},
1154 {VER, "WalCheckpointV2" , NS(Sq3LiteC_WalCheckpointV2) , NULL, NULL},
1155
1156// END-OBJ - created by 'tcl_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
1157 {0, NULL, NULL, NULL, NULL}
1158};
1159
1165
1166int NS(pSq3LiteC_Init) ( MK_RT_ARGS Tcl_Interp *interp, Tcl_Namespace *ns)
1167{
1168 ClassInit
1169
1170 return TCL_OK;
1171error:
1172 return TCL_ERROR;
1173}
1174
1175// =============================================================================
1176// OVERLOAD
#define OT_CHECK_bool(val)
#define MK(n)
#define OT_SETUP_VARARGS(min, max, d)
#define OT_CHECK_NIH(val)
#define OT_retObj_SET_BOL(nat)
#define OT_SETUP_NOARG(d)
#define OT_SETUP_ONEARG(d)
Tcl_Class OT_CLS_T
#define OT_ERROR_LNG_RETURN
#define OT_CHECK_NI4(val)
#define OT_CHECK_NI8(val)
#define OT_retObj_SET_Error
#define OT_CONSTRUCTOR_POST(x)
#define OT_retObj_SET_I64(nat)
#define OT_retObj_SET_List
#define OT_CHECK_REQUIRED(val)
#define OT_retObj_SET_None
#define OT_retObj_SET_I32(nat)
#define OT_retObj_SET_BFL(nat)
#define OT_TMP_I32_OBJ(val)
#define OT_GET__ME_REF_MkBinaryR(b)
#define OT_SETUP_CONSTRUCTOR_ARGS(...)
#define OT_CHECK_ENUM(ename, val)
#define OT_retObj_RETURN
#define OT_retObj_APPEND(var)
#define OT_CHECK__ME_REF_MkStringR(val)
#define OT_CHECK__ME_REF_MkBinaryR(val)
#define OT_retObj_SET_STR(nat)
Tcl_Object OT_SELF_T
#define OT_CHECK_OPTIONAL(val)
#define OT_TMP_STR_OBJ(val)
#define OT_retObj_SET(val)
#define OT_retObj_CONSTR(x)
#define OT_CHECK_NOARGS
#define MkErrorC_Check(mng, PROC)
#define OT_ProcRet
Tcl_Interp * OT_ENV_T
#define CONSTR_ARGS
Tcl_Obj * OT_OBJ_T
#define OT_CHECK_STRN(val)
tag: nhi1-release-250425
#define OtClass_ARGS
#define SQ3(n)
#define OT_NEW_Sq3_enum_OBJ(typ, val)
#define OT_retObj_SET_LITE(nat)
#define NS(n)
#define OT_retObj_SET_STMT(nat)
#define Sq3LiteC_ARGS
#define Instances_doc
#define TxnState_doc
#define BusyTimeout_doc
#define Deserialize_doc
#define DbStatusBFL_doc
#define OT_SETUP_hdl_static_constr
#define Interrupt_doc
#define ExtendedResultCodes_doc
#define DbReleaseMemory_doc
#define DropModules_doc
#define SystemErrno_doc
#define OT_SETUP_hdl
#define WalAutocheckpoint_doc
#define CloseV2_doc
#define ExtendetErrCode_doc
#define Exec_doc
#define OverloadFunction_doc
#define SetLastInsertRowid_doc
#define TotalChanges_doc
#define OT_SETUP_hdl_destr
#define ErrCode_doc
#define OpenV2_doc
#define ErrStr_doc
#define LastInsertRowid_doc
#define GetNull_doc
#define Next_doc
#define ErrMsg_doc
#define TotalChanges64_doc
#define HandleResolve_doc
#define Prev_doc
#define DbStatus_doc
#define VER
#define DeclareVtab_doc
#define DbFilename_doc
#define Changes64_doc
#define DbName_doc
#define OT_CLASS
#define OT_SETUP_hdl_static
#define OT_SETUP_hdl_constr
#define PrepareV2_doc
#define Changes_doc
#define Sleep_doc
#define Limit_doc
#define Serialize_doc
#define TableColumnMetadata_doc
#define WalCheckpointV2_doc
#define GetAutocommit_doc
#define ErrorOffset_doc
#define ExecV2_doc
#define DbCacheflush_doc
#define IsInterrupted_doc
static __thread MK_TYP Sq3LiteCTT
#define CTOR_doc
#define ClassInit
#define DbReadonly_doc
#define VtabOnConflict_doc
#define MkBufferListCreateTLS_T(name, num)
#define MK_ERROR_FORMAT
#define MK_NULL_NO
#define MK_UNUSED
#define MK_DEPRECATED
MK_PTRB * MK_PTR
const MK_STRB * MK_STRN
signed long long MK_I64
bool MK_BOOL
int32_t MK_HDL
signed int MK_I32
#define MkThreadLocal
#define MK_RT_CALL
#define MK_RT_ARGS
static SQ3_LITE Sq3LiteNext(SQ3_LITE const lite)
get next instance from linked-list of Sq3LiteS type
#define Sq3LiteInstances()
static SQ3_LITE Sq3LiteGetNull(void)
Null-Slot - return a Sq3LiteC typed NULL instance …
static SQ3_LITE Sq3LitePrev(SQ3_LITE const lite)
get previous instance from linked-list of Sq3LiteS type
#define Sq3LiteHandleResolve(...)
static enum MkErrorE Sq3LiteBusyTimeout(SQ3_LITE sq3lite, MK_I32 ms)
Set A Busy Timeout …
static enum MkErrorE Sq3LiteLimit(SQ3_LITE sq3lite, enum Sq3LimitE id, MK_I32 newVal)
Run-time Limits …
static enum MkErrorE Sq3LiteDeclareVtab(SQ3_LITE sq3lite, MK_STRN zSQL)
Declare The Schema Of A Virtual Table …
static enum MkErrorE Sq3LiteExtendedResultCodes(SQ3_LITE sq3lite, MK_I32 onoff)
Enable Or Disable Extended Result Codes …
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 …
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 …
#define Sq3LiteExecV2(...)
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
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 …
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 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 Sq3LiteDbStatusBFL(...)
#define Sq3LiteDropModules(...)
static enum MkErrorE Sq3LiteDbStatus(SQ3_LITE sq3lite, enum Sq3DbStatusE op, MK_I32 *pCur, MK_I32 *pHiwtr, MK_BOOL resetFlg)
Database Connection Status …
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 …
#define Sq3LiteDeserialize(...)
static enum MkErrorE Sq3LiteDbReadonly(SQ3_LITE db, MK_STRN zDbName)
Determine if a database is read-only …
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 …
Sq3OpenEF
Flags For File Open Operations.
Sq3LimitE
Run-Time Limit Categories.
Sq3SerializeE
Flags for sqlite3_serialize.
Sq3DeSerializeEF
Flags for sqlite3_deserialize()
Sq3DbStatusE
Status Parameters for database connections.
Definition Sq3Enum_sq3.h:79
@ SQ3_OPEN_CREATE
@ SQ3_OPEN_READWRITE
static enum MkErrorE Sq3LitePrepareV2(SQ3_LITE db, MkStringR zSql, SQ3_STMT *ppStmt)
Compiling An SQL Statement …
#define OT_CHECK_CALLABLE(val)
#define OT_SETUP_CALLABLE_ONCE(val)
#define OT_CLEANUP_CALLABLE_ONCE(val)
#define OT_CHECK_BFL(val, nullB)
Struct to represent the data of the Sq3LiteC …
Struct to represent the data of the Sq3StmtC …