theSq3Lite 10.0
Loading...
Searching...
No Matches
Sq3LiteC_atl.c
Go to the documentation of this file.
1
9/* LABEL-START */
10
11#define META_FILE_NAME "Sq3LiteC_atl.c"
12
14
15#define OT_CLASS asq3rt->AtlSq3LiteC
16#define OT_NULL asq3rt->AtlSq3LiteC_MK_NULL
17#define OT_CLASS_NAME "Sq3LiteC"
18
19#define SELF2HDL(O) Sq3Lite(VAL2MNG(O))
20
21// LNG: class
22// -> moved to LibSq3Lite_atl.h → OT_SQ3_RT_S → AtlSq3LiteCTT;
23
24// META: ObjNew feature: called to return a new or an already existing ATL-SELF-Object
25// -> moved to LibSq3Lite_atl.h → Sq3LiteC_ObjNew
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 SETUP_asq3rt(env);
30 return AtomMake(obj,OT_CLASS,NULL,NULL,env);
31}
32
33// META: called if MkObj must be destroyed and if the SELF is still alive → goal: destroy the SELF
34static void NS(Sq3LiteC_selfDelete) (MK_RT_ARGS MK_PTR selfP, MK_PTR const env) {
35 OT_SELF_T selfO = selfP;
36 SETUP_asq3rt(env);
37 MK(AtomDeleteHard) (OT_MK_CALL selfO);
38}
39
40// META: called to destroy link from SELF to META
41static void NS(Sq3LiteC_selfUnlink) (MK_RT_ARGS MK_PTR selfP, MK_PTR const env) {
42 OT_SELF_T selfO = selfP;
43 SETUP_asq3rt(env);
44 return MK(AtomUnlink) (OT_MK_CALL selfO);
45}
46
47#define OT_SETUP_hdl SetupHdlFromMetaData_2(SQ3_LITE)
48#define OT_SETUP_hdl__null_allow SetupHdlFromMetaData__null_allow_2(SQ3_LITE)
49#define OT_SETUP_hdl_destr SetupHdlFromMetaData__null_allow_2(SQ3_LITE)
50#define OT_SETUP_hdl_constr SetupHdlConstr(Sq3LiteC)
51#define OT_SETUP_hdl_static_constr OT_SETUP_hdl_static
52#define OT_SETUP_hdl_static SetupHdlStatic(Sq3LiteC)
53
54#define OT_retObj_CONSTR(x) OT_retObj_SET(AtomInit(OT_SELF,Sq3LiteC_X2obj(x),asq3rt))
55
56// initialize the ATL and META class specific object
57#define ClassInit \
58 /* if not already done, initialize NEW META type */ \
59 if (Sq3LiteCTT == NULL) Sq3LiteCTT = Sq3LiteSTT; \
60 \
61 /* protect against double call */ \
62 if (Sq3LiteCTT->selfCreate == NS(Sq3LiteC_selfCreate)) return MK_OK; \
63 \
64 /* add "selfCreate" and "selfDelete" feature to the META-Class */ \
65 Sq3LiteCTT->selfCreate = NS(Sq3LiteC_selfCreate); \
66 Sq3LiteCTT->selfDelete = NS(Sq3LiteC_selfDelete); \
67 Sq3LiteCTT->selfUnlink = NS(Sq3LiteC_selfUnlink); \
68 \
69 /* create the ATL-class */ \
70 OT_CLASS = AltClassDef(Sq3LiteCTT,&asq3rt->AtlSq3LiteC_NS); \
71 if (OT_CLASS == NULL) goto error; \
72 OT_REF_INCR(OT_CLASS); \
73 \
74 /* create the ATL static Methods */ \
75 check_LNG(AtlUnknownSetup (NS(sOtClassDef),asq3rt)) goto error; \
76 \
77 /* create the ATL instance Methods */ \
78 check_LNG(AtlUnknownSetup (NS(sInstanceDef),asq3rt)) goto error; \
79 \
80 /* after class was modified, recompile the class */ \
81 RL_init(2, recompile, RL_T(0,RecompileN)); RL_O(1,OT_CLASS) ; \
82 int retI = RL_EvalEx(0); \
83 if (retI != TCL_OK) return retI; \
84 \
85 /* define the "NULL" object */ \
86 OT_NULL = AtomCreateNULL(OT_CLASS, "::Sq3LiteC::MK_NULL", (MK_PTR)asq3rt); \
87 if (OT_NULL == NULL) goto error; \
88 OT_REF_INCR(OT_NULL);
89/* LABEL-END */
90
91// BEGIN-DOC - created by 'atl_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
92
93// doc-key: Sq3LiteC,Sq3Lite,sCo,func
94#define CTOR_doc "Sq3LiteC [Sq3LiteC::CTOR filename:string ?flags:Sq3OpenEF={SQ3_OPEN_READWRITE SQ3_OPEN_CREATE}? ?zVfs:string=\"NULL\"?]"
95#define OpenV2_doc "Sq3LiteC [Sq3LiteC::OpenV2 filename:string ?flags:Sq3OpenEF={SQ3_OPEN_READWRITE SQ3_OPEN_CREATE}? ?zVfs:string=\"NULL\"?]"
96
97// doc-key: Sq3LiteC,Sq3Lite,sc_,func
98#define GetNull_doc "Sq3LiteC [Sq3LiteC::GetNull]"
99#define HandleResolve_doc "Sq3LiteC [Sq3LiteC::HandleResolve netHdl:MK_HDL]"
100#define Instances_doc "Sq3LiteC [Sq3LiteC::Instances]"
101
102// doc-key: Sq3LiteC,Sq3Lite,sm_,func
103#define ErrStr_doc "string [Sq3LiteC::ErrStr arg0:int32]"
104#define Sleep_doc "Sq3LiteC::Sleep arg0:int32"
105
106// doc-key: Sq3LiteC,Sq3Lite,oc_,func
107#define Next_doc "Sq3LiteC [Sq3LiteC::Next $lite]"
108#define Prev_doc "Sq3LiteC [Sq3LiteC::Prev $lite]"
109
110// doc-key: Sq3LiteC,Sq3Lite,oco,func
111#define DbStatusBFL_doc "MkBufferListC [Sq3LiteC::DbStatusBFL $sq3lite op:Sq3DbStatusE resetFlg:bool]"
112#define PrepareV2_doc "Sq3StmtC [Sq3LiteC::PrepareV2 $db zSql:string]"
113
114// doc-key: Sq3LiteC,Sq3Lite,om_,func
115#define BusyTimeout_doc "Sq3LiteC::BusyTimeout $sq3lite ms:int32"
116#define Changes_doc "int32 [Sq3LiteC::Changes $sq3lite]"
117#define Changes64_doc "int64 [Sq3LiteC::Changes64 $sq3lite]"
118#define CloseV2_doc "Sq3LiteC::CloseV2 $sq3lite"
119#define DbCacheflush_doc "Sq3LiteC::DbCacheflush $sq3lite"
120#define DbFilename_doc "string [Sq3LiteC::DbFilename $db zDbName:string]"
121#define DbName_doc "string [Sq3LiteC::DbName $db N:int32]"
122#define DbReadonly_doc "Sq3LiteC::DbReadonly $db zDbName:string"
123#define DbReleaseMemory_doc "Sq3LiteC::DbReleaseMemory $sq3lite"
124#define DeclareVtab_doc "Sq3LiteC::DeclareVtab $sq3lite zSQL:string"
125#define Deserialize_doc "Sq3LiteC::Deserialize $sq3lite zSchema:string pData:binary mFlags:Sq3DeSerializeEF"
126#define DropModules_doc "Sq3LiteC::DropModules $sq3lite azKeepBfl:MkBufferListC"
127#define ErrCode_doc "Sq3ErrorE [Sq3LiteC::ErrCode $db]"
128#define ErrMsg_doc "string [Sq3LiteC::ErrMsg $sq3lite]"
129#define ErrorOffset_doc "Sq3LiteC::ErrorOffset $db"
130#define Exec_doc "Sq3LiteC::Exec $sq3lite sql:string ?callback_data:callable=NULL?"
131#define ExecV2_doc "Sq3LiteC::ExecV2 $sq3lite sql:string ?callback:callable=NULL?"
132#define ExtendedResultCodes_doc "Sq3LiteC::ExtendedResultCodes $sq3lite onoff:int32"
133#define ExtendetErrCode_doc "Sq3ExtendetResultCodesE [Sq3LiteC::ExtendetErrCode $db]"
134#define GetAutocommit_doc "int32 [Sq3LiteC::GetAutocommit $sq3lite]"
135// skip class-overload: HandleGet → MkObjectHandleGet
136#define Interrupt_doc "Sq3LiteC::Interrupt $sq3lite"
137#define IsInterrupted_doc "bool [Sq3LiteC::IsInterrupted $sq3lite]"
138#define LastInsertRowid_doc "int64 [Sq3LiteC::LastInsertRowid $sq3lite]"
139#define Limit_doc "Sq3LiteC::Limit $sq3lite id:Sq3LimitE newVal:int32"
140// skip class-overload: Log → MkObjectLog
141#define OverloadFunction_doc "Sq3LiteC::OverloadFunction $sq3lite zFuncName:string nArg:int32"
142#define Serialize_doc "binary [Sq3LiteC::Serialize $sq3lite zSchema:string mFlags:Sq3SerializeE]"
143#define SetLastInsertRowid_doc "Sq3LiteC::SetLastInsertRowid $sq3lite arg1:int64"
144#define SystemErrno_doc "Sq3LiteC::SystemErrno $sq3lite"
145#define TotalChanges_doc "int32 [Sq3LiteC::TotalChanges $sq3lite]"
146#define TotalChanges64_doc "int64 [Sq3LiteC::TotalChanges64 $sq3lite]"
147#define TxnState_doc "Sq3LiteC::TxnState $sq3lite zSchema:string"
148#define VtabOnConflict_doc "Sq3LiteC::VtabOnConflict $sq3lite"
149#define WalAutocheckpoint_doc "Sq3LiteC::WalAutocheckpoint $db N:int32"
150
151// doc-key: Sq3LiteC,Sq3Lite,omo,func
152#define DbStatus_doc "{pCur:int32 pHiwtr:int32} [Sq3LiteC::DbStatus $sq3lite op:Sq3DbStatusE resetFlg:bool]"
153#define TableColumnMetadata_doc "{pzDataType:string pzCollSeq:string pNotNull:int32 pPrimaryKey:int32 pAutoinc:int32} [Sq3LiteC::TableColumnMetadata $db zDbName:string zTableName:string zColumnName:string]"
154#define WalCheckpointV2_doc "{pnLog:int32 pnCkpt:int32} [Sq3LiteC::WalCheckpointV2 $db zDb:string eMode:int32]"
155
156// END-DOC - created by 'atl_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
157
158/*****************************************************************************/
159/* */
160/* O B J E C T */
161/* */
162/*****************************************************************************/
163
164// BEGIN-Sq3LiteC - created by 'atl_MqC.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
165
169
170// doc-key: Sq3LiteC,Sq3LiteC-Class-Export,sc_
171
173static OT_ProcRet NS(Sq3LiteC_HandleResolve) (OtClass_ARGS) {
176 MK_HDL netHdl = 0;
179 SQ3_LITE retVal = Sq3LiteHandleResolve (netHdl);
180 OT_retObj_SET_LITE(retVal);
181 goto end;
182 error:
184 end:
186}
187
188// doc-key: Sq3LiteC,Sq3LiteC-Class-Export,om_
189
190// skip on class-overload: Sq3LiteHandleGet → MkObjectHandleGet
192static OT_ProcRet NS(Sq3LiteC_HandleGet) (Sq3LiteC_ARGS) {OT_ERROR_LNG_RETURN;}
193
195// Sq3LiteC_Class_ATL_API
196
200
201// doc-key: Sq3LiteC,Sq3LiteC-Class-Introspection,oc_
202
204static OT_ProcRet NS(Sq3LiteC_Next) (Sq3LiteC_ARGS) {
208 SQ3_LITE retVal = Sq3LiteNext (hdl);
209 OT_retObj_SET_LITE(retVal);
210 goto end;
211 error:
213 end:
215}
216
218static OT_ProcRet NS(Sq3LiteC_Prev) (Sq3LiteC_ARGS) {
222 SQ3_LITE retVal = Sq3LitePrev (hdl);
223 OT_retObj_SET_LITE(retVal);
224 goto end;
225 error:
227 end:
229}
230
231// doc-key: Sq3LiteC,Sq3LiteC-Class-Introspection,sc_
232
234static OT_ProcRet NS(Sq3LiteC_Instances) (OtClass_ARGS) {
238 SQ3_LITE retVal = Sq3LiteInstances ();
239 OT_retObj_SET_LITE(retVal);
240 goto end;
241 error:
243 end:
245}
246
248// Sq3LiteC_Class_ATL_API
249
253
254// doc-key: Sq3LiteC,Sq3LiteC-Class-Misc,sc_
255
257static OT_ProcRet NS(Sq3LiteC_GetNull) (OtClass_ARGS) {
261 SQ3_LITE retVal = Sq3LiteGetNull ();
262 OT_retObj_SET_LITE(retVal);
263 goto end;
264 error:
266 end:
268}
269
271// Sq3LiteC_Class_ATL_API
272
276
277// doc-key: Sq3LiteC,Sq3LiteC-Config,om_
278
280static OT_ProcRet NS(Sq3LiteC_BusyTimeout) (Sq3LiteC_ARGS) {
283 MK_I32 ms = 0;
286 MkErrorC_Check(hdl,Sq3LiteBusyTimeout (hdl, ms));
288 goto end;
289 error:
291 end:
293}
294
296static OT_ProcRet NS(Sq3LiteC_DeclareVtab) (Sq3LiteC_ARGS) {
299 MK_STRN zSQL = 0;
302 MkErrorC_Check(hdl,Sq3LiteDeclareVtab (hdl, zSQL));
304 goto end;
305 error:
307 end:
309}
310
312static OT_ProcRet NS(Sq3LiteC_ExtendedResultCodes) (Sq3LiteC_ARGS) {
315 MK_I32 onoff = 0;
320 goto end;
321 error:
323 end:
325}
326
328static OT_ProcRet NS(Sq3LiteC_Limit) (Sq3LiteC_ARGS) {
331 enum Sq3LimitE id = 0;
333 MK_I32 newVal = 0;
336 MkErrorC_Check(hdl,Sq3LiteLimit (hdl, id, newVal));
338 goto end;
339 error:
341 end:
343}
344
346// Sq3LiteC_Config_ATL_API
347
351
352// doc-key: Sq3LiteC,Sq3LiteC-Error,om_
353
355static OT_ProcRet NS(Sq3LiteC_ErrCode) (Sq3LiteC_ARGS) {
360 goto end;
361 error:
363 end:
365}
366
368static OT_ProcRet NS(Sq3LiteC_ErrMsg) (Sq3LiteC_ARGS) {
373 goto end;
374 error:
376 end:
378}
379
381static OT_ProcRet NS(Sq3LiteC_ErrorOffset) (Sq3LiteC_ARGS) {
387 goto end;
388 error:
390 end:
392}
393
395static OT_ProcRet NS(Sq3LiteC_ExtendetErrCode) (Sq3LiteC_ARGS) {
399 OT_retObj_SET(OT_NEW_Sq3_enum_OBJ(ExtendetResultCodesE,Sq3LiteExtendetErrCode (hdl)));
400 goto end;
401 error:
403 end:
405}
406
408static OT_ProcRet NS(Sq3LiteC_SystemErrno) (Sq3LiteC_ARGS) {
414 goto end;
415 error:
417 end:
419}
420
421// doc-key: Sq3LiteC,Sq3LiteC-Error,sm_
422
424static OT_ProcRet NS(Sq3LiteC_ErrStr) (OtClass_ARGS) {
427 MK_I32 arg0 = 0;
431 goto end;
432 error:
434 end:
436}
437
439// Sq3LiteC_Error_ATL_API
440
444
445// doc-key: Sq3LiteC,Sq3LiteC-Execution,om_
446
448static OT_ProcRet NS(Sq3LiteC_Exec) (Sq3LiteC_ARGS) {
451 MK_STRN sql = 0;
453 OT_SETUP_CALLABLE_ONCE(callback_data)
456 Sq3Fupu_Sq3LiteExec_callback_call callback_call = (callback_data == NULL ? NULL : NS(LiteExecCall));
457 MkErrorC_Check(hdl,Sq3LiteExec (hdl, sql, callback_call, callback_data));
459 goto end;
460 error:
462 end:
463 OT_CLEANUP_CALLABLE_ONCE(callback_data)
465}
466
468static OT_ProcRet NS(Sq3LiteC_ExecV2) (Sq3LiteC_ARGS) {
471 MK_STRN sql = 0;
473 OT_SETUP_CALLABLE_ONCE(callback)
476 Sq3LiteExecV2CB callback_call = (callback == NULL ? NULL : NS(LiteExecV2Call));
477 MkErrorC_Check(hdl,Sq3LiteExecV2 (hdl, sql, callback_call, callback));
479 goto end;
480 error:
482 end:
485}
486
487// doc-key: Sq3LiteC,Sq3LiteC-Execution,sm_
488
490static OT_ProcRet NS(Sq3LiteC_Sleep) (OtClass_ARGS) {
493 MK_I32 arg0 = 0;
498 goto end;
499 error:
501 end:
503}
504
506// Sq3LiteC_Execution_ATL_API
507
511
512// doc-key: Sq3LiteC,Sq3LiteC-Info,om_
513
515static OT_ProcRet NS(Sq3LiteC_GetAutocommit) (Sq3LiteC_ARGS) {
520 goto end;
521 error:
523 end:
525}
526
528static OT_ProcRet NS(Sq3LiteC_LastInsertRowid) (Sq3LiteC_ARGS) {
533 goto end;
534 error:
536 end:
538}
539
541static OT_ProcRet NS(Sq3LiteC_TxnState) (Sq3LiteC_ARGS) {
544 MK_STRN zSchema = 0;
547 MkErrorC_Check(hdl,Sq3LiteTxnState (hdl, zSchema));
549 goto end;
550 error:
552 end:
554}
555
557static OT_ProcRet NS(Sq3LiteC_VtabOnConflict) (Sq3LiteC_ARGS) {
563 goto end;
564 error:
566 end:
568}
569
571// Sq3LiteC_Info_ATL_API
572
576
577// doc-key: Sq3LiteC,Sq3LiteC-Misc,oco
578
580static OT_ProcRet NS(Sq3LiteC_DbStatusBFL) (Sq3LiteC_ARGS) {
583 enum Sq3DbStatusE op = 0;
585 MK_BOOL resetFlg = 0;
588 MK_BFL val_out;
589 MkErrorC_Check(hdl,Sq3LiteDbStatusBFL (hdl, op, &val_out, resetFlg));
590 OT_retObj_SET_BFL(val_out);
591 goto end;
592 error:
594 end:
596}
597
598// doc-key: Sq3LiteC,Sq3LiteC-Misc,om_
599
601static OT_ProcRet NS(Sq3LiteC_DbCacheflush) (Sq3LiteC_ARGS) {
607 goto end;
608 error:
610 end:
612}
613
615static OT_ProcRet NS(Sq3LiteC_DbFilename) (Sq3LiteC_ARGS) {
618 MK_STRN zDbName = 0;
621 OT_retObj_SET_STR(Sq3LiteDbFilename (hdl, zDbName));
622 goto end;
623 error:
625 end:
627}
628
630static OT_ProcRet NS(Sq3LiteC_DbName) (Sq3LiteC_ARGS) {
633 MK_I32 N = 0;
637 goto end;
638 error:
640 end:
642}
643
645static OT_ProcRet NS(Sq3LiteC_DbReadonly) (Sq3LiteC_ARGS) {
648 MK_STRN zDbName = 0;
651 MkErrorC_Check(hdl,Sq3LiteDbReadonly (hdl, zDbName));
653 goto end;
654 error:
656 end:
658}
659
661static OT_ProcRet NS(Sq3LiteC_DbReleaseMemory) (Sq3LiteC_ARGS) {
667 goto end;
668 error:
670 end:
672}
673
675static OT_ProcRet NS(Sq3LiteC_Deserialize) (Sq3LiteC_ARGS) {
678 MK_STRN zSchema = 0;
680 MkBinaryR pData = {0};
682 enum Sq3DeSerializeEF mFlags = 0;
685 MkErrorC_Check(hdl,Sq3LiteDeserialize (hdl, zSchema, pData, mFlags));
687 goto end;
688 error:
690 end:
692}
693
695static OT_ProcRet NS(Sq3LiteC_DropModules) (Sq3LiteC_ARGS) {
698 MkBufferListCreateTLS_T(azKeepBfl,10);
701 MkErrorC_Check(hdl,Sq3LiteDropModules (hdl, azKeepBfl));
703 goto end;
704 error:
706 end:
708}
709
710// skip on class-overload: Sq3LiteLog → MkObjectLog
713
715static OT_ProcRet NS(Sq3LiteC_OverloadFunction) (Sq3LiteC_ARGS) {
718 MK_STRN zFuncName = 0;
720 MK_I32 nArg = 0;
723 MkErrorC_Check(hdl,Sq3LiteOverloadFunction (hdl, zFuncName, nArg));
725 goto end;
726 error:
728 end:
730}
731
733static OT_ProcRet NS(Sq3LiteC_Serialize) (Sq3LiteC_ARGS) {
736 MK_STRN zSchema = 0;
738 enum Sq3SerializeE mFlags = 0;
741 MkBinaryR retVal = Sq3LiteSerialize (hdl, zSchema, mFlags);
743 goto end;
744 error:
746 end:
748}
749
750// doc-key: Sq3LiteC,Sq3LiteC-Misc,omo
751
753static OT_ProcRet NS(Sq3LiteC_DbStatus) (Sq3LiteC_ARGS) {
756 enum Sq3DbStatusE op = 0;
758 MK_BOOL resetFlg = 0;
761 MK_I32 pCur;
762 MK_I32 pHiwtr;
763 MkErrorC_Check(hdl,Sq3LiteDbStatus (hdl, op, &pCur, &pHiwtr, resetFlg));
767 goto end;
768 error:
770 end:
772}
773
775static OT_ProcRet NS(Sq3LiteC_TableColumnMetadata) (Sq3LiteC_ARGS) {
778 MK_STRN zDbName = 0;
780 MK_STRN zTableName = 0;
781 OT_CHECK_REQUIRED(OT_CHECK_STRN (zTableName))
782 MK_STRN zColumnName = 0;
783 OT_CHECK_REQUIRED(OT_CHECK_STRN (zColumnName))
785 MK_STRN pzDataType;
786 MK_STRN pzCollSeq;
787 MK_I32 pNotNull;
788 MK_I32 pPrimaryKey;
789 MK_I32 pAutoinc;
790 MkErrorC_Check(hdl,Sq3LiteTableColumnMetadata (hdl, zDbName, zTableName, zColumnName, &pzDataType, &pzCollSeq, &pNotNull, &pPrimaryKey, &pAutoinc));
792 OT_retObj_APPEND(OT_TMP_STR_OBJ(pzDataType));
795 OT_retObj_APPEND(OT_TMP_I32_OBJ(pPrimaryKey));
797 goto end;
798 error:
800 end:
802}
803
805// Sq3LiteC_Misc_ATL_API
806
810
811// doc-key: Sq3LiteC,Sq3LiteC-Modify-Wal,om_
812
814static OT_ProcRet NS(Sq3LiteC_WalAutocheckpoint) (Sq3LiteC_ARGS) {
817 MK_I32 N = 0;
822 goto end;
823 error:
825 end:
827}
828
829// doc-key: Sq3LiteC,Sq3LiteC-Modify-Wal,omo
830
832static OT_ProcRet NS(Sq3LiteC_WalCheckpointV2) (Sq3LiteC_ARGS) {
835 MK_STRN zDb = 0;
837 MK_I32 eMode = 0;
840 MK_I32 pnLog;
841 MK_I32 pnCkpt;
842 MkErrorC_Check(hdl,Sq3LiteWalCheckpointV2 (hdl, zDb, eMode, &pnLog, &pnCkpt));
846 goto end;
847 error:
849 end:
851}
852
854// Sq3LiteC_Modify_Wal_ATL_API
855
859
860// doc-key: Sq3LiteC,Sq3LiteC-Query,om_
861
863static OT_ProcRet NS(Sq3LiteC_Interrupt) (Sq3LiteC_ARGS) {
867 Sq3LiteInterrupt (hdl);
869 goto end;
870 error:
872 end:
874}
875
877static OT_ProcRet NS(Sq3LiteC_IsInterrupted) (Sq3LiteC_ARGS) {
882 goto end;
883 error:
885 end:
887}
888
890// Sq3LiteC_Query_ATL_API
891
895
896// doc-key: Sq3LiteC,Sq3LiteC-Row,om_
897
899static OT_ProcRet NS(Sq3LiteC_Changes) (Sq3LiteC_ARGS) {
904 goto end;
905 error:
907 end:
909}
910
912static OT_ProcRet NS(Sq3LiteC_Changes64) (Sq3LiteC_ARGS) {
917 goto end;
918 error:
920 end:
922}
923
925static OT_ProcRet NS(Sq3LiteC_SetLastInsertRowid) (Sq3LiteC_ARGS) {
928 MK_I64 arg1 = 0;
931 Sq3LiteSetLastInsertRowid (hdl, arg1);
933 goto end;
934 error:
936 end:
938}
939
941static OT_ProcRet NS(Sq3LiteC_TotalChanges) (Sq3LiteC_ARGS) {
946 goto end;
947 error:
949 end:
951}
952
954static OT_ProcRet NS(Sq3LiteC_TotalChanges64) (Sq3LiteC_ARGS) {
959 goto end;
960 error:
962 end:
964}
965
967// Sq3LiteC_Row_ATL_API
968
972
973// doc-key: Sq3LiteC,Sq3LiteC-TOR,sCo
974
976static OT_ProcRet NS(Sq3LiteC_CTOR) (CONSTR_ARGS) {
979 MK_STRN filename = 0;
983 MK_STRN zVfs = NULL;
985 SQ3_LITE ppDb;
986 MkErrorC_Check(MK_ERROR_FORMAT,Sq3LiteOpenV2 (filename, &ppDb, flags, zVfs));
988 OT_retObj_CONSTR(ppDb);
989 goto end;
990 error:
992 end:
994}
995
997static OT_ProcRet NS(Sq3LiteC_OpenV2) (OtClass_ARGS) {
1000 MK_STRN filename = 0;
1004 MK_STRN zVfs = NULL;
1007 SQ3_LITE ppDb;
1008 MkErrorC_Check(MK_ERROR_FORMAT,Sq3LiteOpenV2 (filename, &ppDb, flags, zVfs));
1010 OT_retObj_SET_LITE(ppDb);
1011 goto end;
1012 error:
1014 end:
1016}
1017
1018// doc-key: Sq3LiteC,Sq3LiteC-TOR,oco
1019
1021static OT_ProcRet NS(Sq3LiteC_PrepareV2) (Sq3LiteC_ARGS) {
1024 MkStringR zSql = {0};
1027 SQ3_STMT ppStmt;
1028 MkErrorC_Check(hdl,Sq3LitePrepareV2 (hdl, zSql, &ppStmt));
1029 OT_retObj_SET_STMT(ppStmt);
1030 goto end;
1031 error:
1033 end:
1035}
1036
1037// doc-key: Sq3LiteC,Sq3LiteC-TOR,om_
1038
1040static OT_ProcRet NS(Sq3LiteC_CloseV2) (Sq3LiteC_ARGS) {
1044 MkErrorC_Check(hdl,Sq3LiteCloseV2 (hdl));
1046 goto end;
1047 error:
1049 end:
1051}
1052
1054// Sq3LiteC_TOR_ATL_API
1055
1056// END-Sq3LiteC - created by 'atl_MqC.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
1057
1058static const OtObjProcDefS NS(sOtClassDef)[] = {
1059 // BEGIN-CLASS - created by 'atl_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
1060
1061 // doc-key: Sq3LiteC,Sq3Lite,sCo
1062 { "::Sq3LiteC::OpenV2" , NS(Sq3LiteC_OpenV2) },
1063
1064 // doc-key: Sq3LiteC,Sq3Lite,sc_
1065 { "::Sq3LiteC::GetNull" , NS(Sq3LiteC_GetNull) },
1066 { "::Sq3LiteC::HandleResolve" , NS(Sq3LiteC_HandleResolve) },
1067 { "::Sq3LiteC::Instances" , NS(Sq3LiteC_Instances) },
1068
1069 // doc-key: Sq3LiteC,Sq3Lite,sm_
1070 { "::Sq3LiteC::ErrStr" , NS(Sq3LiteC_ErrStr) },
1071 { "::Sq3LiteC::Sleep" , NS(Sq3LiteC_Sleep) },
1072
1073 // END-CLASS - created by 'atl_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
1074 { NULL }
1075};
1076
1077// ---------------------------------------------------------------------------------------
1078
1079static const OtObjProcDefS NS(sInstanceDef)[] = {
1080 // BEGIN-OBJ - created by 'atl_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
1081
1082 // doc-key: Sq3LiteC,Sq3Lite,oC_
1083 { "::Sq3LiteC::Sq3LiteC" , NS(Sq3LiteC_CTOR) },
1084
1085 // doc-key: Sq3LiteC,Sq3Lite,oc_
1086 { "::Sq3LiteC::Next" , NS(Sq3LiteC_Next) },
1087 { "::Sq3LiteC::Prev" , NS(Sq3LiteC_Prev) },
1088
1089 // doc-key: Sq3LiteC,Sq3Lite,oco
1090 { "::Sq3LiteC::DbStatusBFL" , NS(Sq3LiteC_DbStatusBFL) },
1091 { "::Sq3LiteC::PrepareV2" , NS(Sq3LiteC_PrepareV2) },
1092
1093 // doc-key: Sq3LiteC,Sq3Lite,om_
1094 { "::Sq3LiteC::BusyTimeout" , NS(Sq3LiteC_BusyTimeout) },
1095 { "::Sq3LiteC::Changes" , NS(Sq3LiteC_Changes) },
1096 { "::Sq3LiteC::Changes64" , NS(Sq3LiteC_Changes64) },
1097 { "::Sq3LiteC::CloseV2" , NS(Sq3LiteC_CloseV2) },
1098 { "::Sq3LiteC::DbCacheflush" , NS(Sq3LiteC_DbCacheflush) },
1099 { "::Sq3LiteC::DbFilename" , NS(Sq3LiteC_DbFilename) },
1100 { "::Sq3LiteC::DbName" , NS(Sq3LiteC_DbName) },
1101 { "::Sq3LiteC::DbReadonly" , NS(Sq3LiteC_DbReadonly) },
1102 { "::Sq3LiteC::DbReleaseMemory" , NS(Sq3LiteC_DbReleaseMemory) },
1103 { "::Sq3LiteC::DeclareVtab" , NS(Sq3LiteC_DeclareVtab) },
1104 { "::Sq3LiteC::Deserialize" , NS(Sq3LiteC_Deserialize) },
1105 { "::Sq3LiteC::DropModules" , NS(Sq3LiteC_DropModules) },
1106 { "::Sq3LiteC::ErrCode" , NS(Sq3LiteC_ErrCode) },
1107 { "::Sq3LiteC::ErrMsg" , NS(Sq3LiteC_ErrMsg) },
1108 { "::Sq3LiteC::ErrorOffset" , NS(Sq3LiteC_ErrorOffset) },
1109 { "::Sq3LiteC::Exec" , NS(Sq3LiteC_Exec) },
1110 { "::Sq3LiteC::ExecV2" , NS(Sq3LiteC_ExecV2) },
1111 { "::Sq3LiteC::ExtendedResultCodes" , NS(Sq3LiteC_ExtendedResultCodes) },
1112 { "::Sq3LiteC::ExtendetErrCode" , NS(Sq3LiteC_ExtendetErrCode) },
1113 { "::Sq3LiteC::GetAutocommit" , NS(Sq3LiteC_GetAutocommit) },
1114 // skip class-overload: HandleGet → MkObjectHandleGet
1115 { "::Sq3LiteC::Interrupt" , NS(Sq3LiteC_Interrupt) },
1116 { "::Sq3LiteC::IsInterrupted" , NS(Sq3LiteC_IsInterrupted) },
1117 { "::Sq3LiteC::LastInsertRowid" , NS(Sq3LiteC_LastInsertRowid) },
1118 { "::Sq3LiteC::Limit" , NS(Sq3LiteC_Limit) },
1119 // skip class-overload: Log → MkObjectLog
1120 { "::Sq3LiteC::OverloadFunction" , NS(Sq3LiteC_OverloadFunction) },
1121 { "::Sq3LiteC::Serialize" , NS(Sq3LiteC_Serialize) },
1122 { "::Sq3LiteC::SetLastInsertRowid" , NS(Sq3LiteC_SetLastInsertRowid) },
1123 { "::Sq3LiteC::SystemErrno" , NS(Sq3LiteC_SystemErrno) },
1124 { "::Sq3LiteC::TotalChanges" , NS(Sq3LiteC_TotalChanges) },
1125 { "::Sq3LiteC::TotalChanges64" , NS(Sq3LiteC_TotalChanges64) },
1126 { "::Sq3LiteC::TxnState" , NS(Sq3LiteC_TxnState) },
1127 { "::Sq3LiteC::VtabOnConflict" , NS(Sq3LiteC_VtabOnConflict) },
1128 { "::Sq3LiteC::WalAutocheckpoint" , NS(Sq3LiteC_WalAutocheckpoint) },
1129
1130 // doc-key: Sq3LiteC,Sq3Lite,omo
1131 { "::Sq3LiteC::DbStatus" , NS(Sq3LiteC_DbStatus) },
1132 { "::Sq3LiteC::TableColumnMetadata" , NS(Sq3LiteC_TableColumnMetadata) },
1133 { "::Sq3LiteC::WalCheckpointV2" , NS(Sq3LiteC_WalCheckpointV2) },
1134
1135 // END-OBJ - created by 'atl_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
1136 { NULL }
1137};
1138
1144
1145int NS(pSq3LiteC_Init) ( OT_SQ3_ARGS OT_NS_T ns )
1146{
1147 ClassInit
1148
1149 return TCL_OK;
1150error:
1151 return TCL_ERROR;
1152}
1153
1154// =============================================================================
1155// OVERLOAD
#define OT_CHECK_bool(val)
#define MK(n)
#define AtomMake(...)
#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)
#define OT_ERROR_LNG_RETURN
#define OT_CHECK_NI4(val)
#define OT_CHECK_NI8(val)
MOX_NS_T OT_NS_T
#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)
MOX_OBJ_T OT_SELF_T
#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_MK_CALL
#define OT_retObj_SET_STR(nat)
#define OT_CHECK_OPTIONAL(val)
#define OT_TMP_STR_OBJ(val)
#define OT_retObj_SET(val)
#define OT_CHECK_NOARGS
#define MkErrorC_Check(mng, PROC)
#define OT_ProcRet
#define CONSTR_ARGS
#define OT_CHECK_STRN(val)
#define OtClass_ARGS
#define OT_SQ3_ARGS
#define OT_NEW_Sq3_enum_OBJ(typ, val)
#define OT_retObj_SET_LITE(nat)
#define NS(n)
#define OT_retObj_SET_STMT(nat)
#define SETUP_asq3rt(r)
#define Sq3LiteC_ARGS
tag: nhi1-release-250425
#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 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 OT_retObj_CONSTR(x)
#define GetAutocommit_doc
#define ErrorOffset_doc
#define ExecV2_doc
#define DbCacheflush_doc
#define IsInterrupted_doc
#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 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 …