theSq3Lite 10.0
Loading...
Searching...
No Matches
Sq3LiteC_rb.c
Go to the documentation of this file.
1
9/* LABEL-START */
10#define META_FILE_NAME "Sq3LiteC_rb.c"
11
13
14#define OT_CLASS NS(Sq3LiteC)
15#define OT_CLASS_NAME "Sq3LiteC"
16
17#define OT_LNG2META(O) Sq3Lite(VAL2MNG(O))
18
20
21// new Class type object
22static MK_TYP Sq3LiteCTT = NULL;
24
25// GS marker in "Data_Wrap_Struct"
26static void NS(sMark) (MK_PTR);
27
28// ruby datatype of the wrapped struct
29static rb_data_type_t NS(Sq3LiteC_T) = {
30 "Sq3LiteC",
31 {
32 NS(sMark),
33 MK(AtomDeleteSoft),
34 0, /* dsize */
35 0, /* reserved[1] */
36 },
37 NULL, /* parent */
38 NULL, /* data */
39 RUBY_TYPED_FREE_IMMEDIATELY
40};
41
42// >>THIS<< is a Phase-1-CONSTRUCTOR: a constructor which create the SELF object
43// A Phase-2-CONSTRUCTOR is a constructor which configure an already existing object
44// DO: create a new SELF and link this SELF with the MQ-Object "mng"
45// clazz is the toplevel "subclass" or "Sq3LiteC"
46mk_inline OT_OBJ_T NS(LNG_CONSTR) (OT_CLS_T clazz, MK_MNG mng, int objc, VALUE* objv) {
47 return MK(AtomObjCrt)(clazz,&NS(Sq3LiteC_T),mng,objc,objv);
48}
49// MQ: ObjNew feature: called to return a new or an already existing RUBY-SELF-Object
50// -> moved to: msgque_rb.h
51// OT_OBJ_T NS(Sq3LiteC_ObjNew) (MK_LITE hdl) {
52// return MK(AtomObjNew) (Sq3LiteC_X2obj(hdl));
53// }
54// MQ: ObjNew feature: selfCreate will be called from "ObjNew->MkSelfNew" if MkObj need a SELF pointer
55static MK_PTR NS(Sq3LiteC_selfCreate) (MK_RT_ARGS MK_OBJ obj, MK_PTR envP) {
56 OT_OBJ_T self = NS(LNG_CONSTR) (OT_CLASS, obj, 0, NULL);
57 return VAL2PTR(self);
58}
59// MQ: called on instance-destruction for a "selfCreate" instance → goal: destroy the SELF
60static void NS(Sq3LiteC_selfDelete) (MK_RT_ARGS MK_PTR ptr, MK_PTR envP) {
62}
63// MQ: called to destroy link from SELF to META
64static void NS(Sq3LiteC_selfUnlink) (MK_RT_ARGS MK_PTR ptr, MK_PTR envP) {
65 OT_OBJ_T self = PTR2VAL(ptr);
66 RDATA(self)->data = NULL;
67}
68// initialize the RUBY and MO class specific object
69#define S_INIT NS(sInit)(MK_RT_CALL_ONLY)
70static void NS(sInit)(MK_RT_ARGS_ONLY) {
71
72 // add "selfCreate" and "selfDelete" feature to the MQ-Sq3LiteC-Type
73 Sq3LiteCTT->selfCreate = NS(Sq3LiteC_selfCreate);
74 Sq3LiteCTT->selfDelete = NS(Sq3LiteC_selfDelete);
75 Sq3LiteCTT->selfUnlink = NS(Sq3LiteC_selfUnlink);
76
77 // create the RUBY class
78 OT_CLASS = rb_define_class_under(OT_PKG, "Sq3LiteC", MK_BASE_CLASS);
79 rb_undef_alloc_func(OT_CLASS);
80
81 /* define the "NULL" object */
82 VALUE nullO = TypedData_Wrap_Struct (OT_CLASS, &NS(Sq3LiteC_T), MK_NULL);
83 NS(Sq3LiteC_MK_NULL) = nullO;
85}
86
87#define OT_SETUP_hdl OT_SETUP_hdl_tmpl(Sq3LiteC);
88#define OT_SETUP_hdl__null_allow OT_SETUP_hdl_tmpl__null_allow(Sq3LiteC);
89#define OT_SETUP_hdl_constr AllRtSetup_NULL; \
90 OT_OBJ_T clazz = self; \
91 Sq3LiteC_type hdl = (Sq3LiteC_type) &MkERROR;
92#define OT_SETUP_hdl_destr OT_SETUP_hdl_tmpl__null_allow(Sq3LiteC);
93#define OT_SETUP_hdl_static AllRtSetup_NULL; \
94 __attribute__((unused)) MK_TYP hdl = Sq3LiteC##_TT;
95#define OT_SETUP_hdl_static_constr OT_SETUP_hdl_static
96
97#if !defined(SetupRtFromObj_X)
98 #define SetupRtFromObj_X(hdl) AllRtSetup_X(hdl)
99 #define SetupRtFromObj_XN(hdl) AllRtSetup_XN(hdl)
100#endif
101
102/* LABEL-END */
103
104// BEGIN-DOC - created by 'rb_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
105
106// doc-key: Sq3LiteC,Sq3Lite,sCo,func
107#define OpenV2_doc "Sq3LiteC Sq3LiteC.OpenV2(filename:string, ?flags:Sq3OpenEF=SQ3_OPEN_READWRITE|SQ3_OPEN_CREATE?, ?zVfs:string=\"nil\"?)"
108#define new_doc "Sq3LiteC Sq3LiteC.new(filename:string, ?flags:Sq3OpenEF=SQ3_OPEN_READWRITE|SQ3_OPEN_CREATE?, ?zVfs:string=\"nil\"?)"
109
110// doc-key: Sq3LiteC,Sq3Lite,sc_,func
111#define GetNull_doc "Sq3LiteC Sq3LiteC.GetNull()"
112#define HandleResolve_doc "Sq3LiteC Sq3LiteC.HandleResolve(netHdl:MK_HDL)"
113#define Instances_doc "Sq3LiteC Sq3LiteC.Instances()"
114
115// doc-key: Sq3LiteC,Sq3Lite,sm_,func
116#define ErrStr_doc "string Sq3LiteC.ErrStr(arg0:int32)"
117#define Sleep_doc "Sq3LiteC.Sleep(arg0:int32)"
118
119// doc-key: Sq3LiteC,Sq3Lite,oc_,func
120#define Next_doc "Sq3LiteC lite.Next()"
121#define Prev_doc "Sq3LiteC lite.Prev()"
122
123// doc-key: Sq3LiteC,Sq3Lite,oco,func
124#define DbStatusBFL_doc "MkBufferListC sq3lite.DbStatusBFL(op:Sq3DbStatusE, resetFlg:bool)"
125#define PrepareV2_doc "Sq3StmtC db.PrepareV2(zSql:string)"
126
127// doc-key: Sq3LiteC,Sq3Lite,om_,func
128#define BusyTimeout_doc "sq3lite.BusyTimeout(ms:int32)"
129#define Changes_doc "int32 sq3lite.Changes()"
130#define Changes64_doc "int64 sq3lite.Changes64()"
131#define CloseV2_doc "sq3lite.CloseV2()"
132#define DbCacheflush_doc "sq3lite.DbCacheflush()"
133#define DbFilename_doc "string db.DbFilename(zDbName:string)"
134#define DbName_doc "string db.DbName(N:int32)"
135#define DbReadonly_doc "db.DbReadonly(zDbName:string)"
136#define DbReleaseMemory_doc "sq3lite.DbReleaseMemory()"
137#define DeclareVtab_doc "sq3lite.DeclareVtab(zSQL:string)"
138#define Deserialize_doc "sq3lite.Deserialize(zSchema:string, pData:binary, mFlags:Sq3DeSerializeEF)"
139#define DropModules_doc "sq3lite.DropModules(azKeepBfl:MkBufferListC)"
140#define ErrCode_doc "Sq3ErrorE db.ErrCode()"
141#define ErrMsg_doc "string sq3lite.ErrMsg()"
142#define ErrorOffset_doc "db.ErrorOffset()"
143#define Exec_doc "sq3lite.Exec(sql:string, ?callback_data:callable=nil?)"
144#define ExecV2_doc "sq3lite.ExecV2(sql:string, ?callback:callable=nil?)"
145#define ExtendedResultCodes_doc "sq3lite.ExtendedResultCodes(onoff:int32)"
146#define ExtendetErrCode_doc "Sq3ExtendetResultCodesE db.ExtendetErrCode()"
147#define GetAutocommit_doc "int32 sq3lite.GetAutocommit()"
148// skip class-overload: HandleGet → MkObjectHandleGet
149#define Interrupt_doc "sq3lite.Interrupt()"
150#define IsInterrupted_doc "bool sq3lite.IsInterrupted()"
151#define LastInsertRowid_doc "int64 sq3lite.LastInsertRowid()"
152#define Limit_doc "sq3lite.Limit(id:Sq3LimitE, newVal:int32)"
153// skip class-overload: Log → MkObjectLog
154#define OverloadFunction_doc "sq3lite.OverloadFunction(zFuncName:string, nArg:int32)"
155#define Serialize_doc "binary sq3lite.Serialize(zSchema:string, mFlags:Sq3SerializeE)"
156#define SetLastInsertRowid_doc "sq3lite.SetLastInsertRowid(arg1:int64)"
157#define SystemErrno_doc "sq3lite.SystemErrno()"
158#define TotalChanges_doc "int32 sq3lite.TotalChanges()"
159#define TotalChanges64_doc "int64 sq3lite.TotalChanges64()"
160#define TxnState_doc "sq3lite.TxnState(zSchema:string)"
161#define VtabOnConflict_doc "sq3lite.VtabOnConflict()"
162#define WalAutocheckpoint_doc "db.WalAutocheckpoint(N:int32)"
163
164// doc-key: Sq3LiteC,Sq3Lite,omo,func
165#define DbStatus_doc "{pCur:int32 pHiwtr:int32} sq3lite.DbStatus(op:Sq3DbStatusE, resetFlg:bool)"
166#define TableColumnMetadata_doc "{pzDataType:string pzCollSeq:string pNotNull:int32 pPrimaryKey:int32 pAutoinc:int32} db.TableColumnMetadata(zDbName:string, zTableName:string, zColumnName:string)"
167#define WalCheckpointV2_doc "{pnLog:int32 pnCkpt:int32} db.WalCheckpointV2(zDb:string, eMode:int32)"
168
169// END-DOC - created by 'rb_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
170
171/*****************************************************************************/
172/* */
173/* O B J E C T */
174/* */
175/*****************************************************************************/
176
177// BEGIN-Sq3LiteC - created by 'rb_MqC.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
178
182
183// doc-key: Sq3LiteC,Sq3LiteC-Class-Export,sc_
184
186static OT_ProcRet NS(Sq3LiteC_HandleResolve) (OtClass_ARGS) {
189 MK_HDL netHdl = 0;
192 SQ3_LITE retVal = Sq3LiteHandleResolve (netHdl);
193 OT_retObj_SET_LITE(retVal);
194 end: MK_UNUSED /* LONG JUMP on error */
196}
197
198// doc-key: Sq3LiteC,Sq3LiteC-Class-Export,om_
199
200// skip on class-overload: Sq3LiteHandleGet → MkObjectHandleGet
202static OT_ProcRet NS(Sq3LiteC_HandleGet) (Sq3LiteC_ARGS) {OT_ERROR_LNG_RETURN;}
203
205// Sq3LiteC_Class_RB_API
206
210
211// doc-key: Sq3LiteC,Sq3LiteC-Class-Introspection,oc_
212
214static OT_ProcRet NS(Sq3LiteC_Next) (Sq3LiteC_ARGS) {
218 SQ3_LITE retVal = Sq3LiteNext (hdl);
219 OT_retObj_SET_LITE(retVal);
220 end: MK_UNUSED /* LONG JUMP on error */
222}
223
225static OT_ProcRet NS(Sq3LiteC_Prev) (Sq3LiteC_ARGS) {
229 SQ3_LITE retVal = Sq3LitePrev (hdl);
230 OT_retObj_SET_LITE(retVal);
231 end: MK_UNUSED /* LONG JUMP on error */
233}
234
235// doc-key: Sq3LiteC,Sq3LiteC-Class-Introspection,sc_
236
238static OT_ProcRet NS(Sq3LiteC_Instances) (OtClass_ARGS) {
242 SQ3_LITE retVal = Sq3LiteInstances ();
243 OT_retObj_SET_LITE(retVal);
244 end: MK_UNUSED /* LONG JUMP on error */
246}
247
249// Sq3LiteC_Class_RB_API
250
254
255// doc-key: Sq3LiteC,Sq3LiteC-Class-Misc,sc_
256
258static OT_ProcRet NS(Sq3LiteC_GetNull) (OtClass_ARGS) {
262 SQ3_LITE retVal = Sq3LiteGetNull ();
263 OT_retObj_SET_LITE(retVal);
264 end: MK_UNUSED /* LONG JUMP on error */
266}
267
269// Sq3LiteC_Class_RB_API
270
274
275// doc-key: Sq3LiteC,Sq3LiteC-Config,om_
276
278static OT_ProcRet NS(Sq3LiteC_BusyTimeout) (Sq3LiteC_ARGS) {
281 MK_I32 ms = 0;
284 MkErrorC_Check(hdl,Sq3LiteBusyTimeout (hdl, ms));
286 end: MK_UNUSED /* LONG JUMP on error */
288}
289
291static OT_ProcRet NS(Sq3LiteC_DeclareVtab) (Sq3LiteC_ARGS) {
294 MK_STRN zSQL = 0;
297 MkErrorC_Check(hdl,Sq3LiteDeclareVtab (hdl, zSQL));
299 end: MK_UNUSED /* LONG JUMP on error */
301}
302
304static OT_ProcRet NS(Sq3LiteC_ExtendedResultCodes) (Sq3LiteC_ARGS) {
307 MK_I32 onoff = 0;
312 end: MK_UNUSED /* LONG JUMP on error */
314}
315
317static OT_ProcRet NS(Sq3LiteC_Limit) (Sq3LiteC_ARGS) {
320 enum Sq3LimitE id = 0;
322 MK_I32 newVal = 0;
325 MkErrorC_Check(hdl,Sq3LiteLimit (hdl, id, newVal));
327 end: MK_UNUSED /* LONG JUMP on error */
329}
330
332// Sq3LiteC_Config_RB_API
333
337
338// doc-key: Sq3LiteC,Sq3LiteC-Error,om_
339
341static OT_ProcRet NS(Sq3LiteC_ErrCode) (Sq3LiteC_ARGS) {
346 end: MK_UNUSED /* LONG JUMP on error */
348}
349
351static OT_ProcRet NS(Sq3LiteC_ErrMsg) (Sq3LiteC_ARGS) {
356 end: MK_UNUSED /* LONG JUMP on error */
358}
359
361static OT_ProcRet NS(Sq3LiteC_ErrorOffset) (Sq3LiteC_ARGS) {
367 end: MK_UNUSED /* LONG JUMP on error */
369}
370
372static OT_ProcRet NS(Sq3LiteC_ExtendetErrCode) (Sq3LiteC_ARGS) {
376 OT_retObj_SET(OT_NEW_Sq3_enum_OBJ(ExtendetResultCodesE,Sq3LiteExtendetErrCode (hdl)));
377 end: MK_UNUSED /* LONG JUMP on error */
379}
380
382static OT_ProcRet NS(Sq3LiteC_SystemErrno) (Sq3LiteC_ARGS) {
388 end: MK_UNUSED /* LONG JUMP on error */
390}
391
392// doc-key: Sq3LiteC,Sq3LiteC-Error,sm_
393
395static OT_ProcRet NS(Sq3LiteC_ErrStr) (OtClass_ARGS) {
398 MK_I32 arg0 = 0;
402 end: MK_UNUSED /* LONG JUMP on error */
404}
405
407// Sq3LiteC_Error_RB_API
408
412
413// doc-key: Sq3LiteC,Sq3LiteC-Execution,om_
414
416static OT_ProcRet NS(Sq3LiteC_Exec) (Sq3LiteC_ARGS) {
419 MK_STRN sql = 0;
421 OT_SETUP_CALLABLE_ONCE(callback_data)
424 Sq3Fupu_Sq3LiteExec_callback_call callback_call = (callback_data == NULL ? NULL : NS(LiteExecCall));
425 MkErrorC_Check(hdl,Sq3LiteExec (hdl, sql, callback_call, callback_data));
427 end: MK_UNUSED /* LONG JUMP on error */
428 OT_CLEANUP_CALLABLE_ONCE(callback_data)
430}
431
433static OT_ProcRet NS(Sq3LiteC_ExecV2) (Sq3LiteC_ARGS) {
436 MK_STRN sql = 0;
438 OT_SETUP_CALLABLE_ONCE(callback)
441 Sq3LiteExecV2CB callback_call = (callback == NULL ? NULL : NS(LiteExecV2Call));
442 MkErrorC_Check(hdl,Sq3LiteExecV2 (hdl, sql, callback_call, callback));
444 end: MK_UNUSED /* LONG JUMP on error */
447}
448
449// doc-key: Sq3LiteC,Sq3LiteC-Execution,sm_
450
452static OT_ProcRet NS(Sq3LiteC_Sleep) (OtClass_ARGS) {
455 MK_I32 arg0 = 0;
460 end: MK_UNUSED /* LONG JUMP on error */
462}
463
465// Sq3LiteC_Execution_RB_API
466
470
471// doc-key: Sq3LiteC,Sq3LiteC-Info,om_
472
474static OT_ProcRet NS(Sq3LiteC_GetAutocommit) (Sq3LiteC_ARGS) {
479 end: MK_UNUSED /* LONG JUMP on error */
481}
482
484static OT_ProcRet NS(Sq3LiteC_LastInsertRowid) (Sq3LiteC_ARGS) {
489 end: MK_UNUSED /* LONG JUMP on error */
491}
492
494static OT_ProcRet NS(Sq3LiteC_TxnState) (Sq3LiteC_ARGS) {
497 MK_STRN zSchema = 0;
500 MkErrorC_Check(hdl,Sq3LiteTxnState (hdl, zSchema));
502 end: MK_UNUSED /* LONG JUMP on error */
504}
505
507static OT_ProcRet NS(Sq3LiteC_VtabOnConflict) (Sq3LiteC_ARGS) {
513 end: MK_UNUSED /* LONG JUMP on error */
515}
516
518// Sq3LiteC_Info_RB_API
519
523
524// doc-key: Sq3LiteC,Sq3LiteC-Misc,oco
525
527static OT_ProcRet NS(Sq3LiteC_DbStatusBFL) (Sq3LiteC_ARGS) {
530 enum Sq3DbStatusE op = 0;
532 MK_BOOL resetFlg = 0;
535 MK_BFL val_out;
536 MkErrorC_Check(hdl,Sq3LiteDbStatusBFL (hdl, op, &val_out, resetFlg));
537 OT_retObj_SET_BFL(val_out);
538 end: MK_UNUSED /* LONG JUMP on error */
540}
541
542// doc-key: Sq3LiteC,Sq3LiteC-Misc,om_
543
545static OT_ProcRet NS(Sq3LiteC_DbCacheflush) (Sq3LiteC_ARGS) {
551 end: MK_UNUSED /* LONG JUMP on error */
553}
554
556static OT_ProcRet NS(Sq3LiteC_DbFilename) (Sq3LiteC_ARGS) {
559 MK_STRN zDbName = 0;
562 OT_retObj_SET_STR(Sq3LiteDbFilename (hdl, zDbName));
563 end: MK_UNUSED /* LONG JUMP on error */
565}
566
568static OT_ProcRet NS(Sq3LiteC_DbName) (Sq3LiteC_ARGS) {
571 MK_I32 N = 0;
575 end: MK_UNUSED /* LONG JUMP on error */
577}
578
580static OT_ProcRet NS(Sq3LiteC_DbReadonly) (Sq3LiteC_ARGS) {
583 MK_STRN zDbName = 0;
586 MkErrorC_Check(hdl,Sq3LiteDbReadonly (hdl, zDbName));
588 end: MK_UNUSED /* LONG JUMP on error */
590}
591
593static OT_ProcRet NS(Sq3LiteC_DbReleaseMemory) (Sq3LiteC_ARGS) {
599 end: MK_UNUSED /* LONG JUMP on error */
601}
602
604static OT_ProcRet NS(Sq3LiteC_Deserialize) (Sq3LiteC_ARGS) {
607 MK_STRN zSchema = 0;
609 MkBinaryR pData = {0};
611 enum Sq3DeSerializeEF mFlags = 0;
614 MkErrorC_Check(hdl,Sq3LiteDeserialize (hdl, zSchema, pData, mFlags));
616 end: MK_UNUSED /* LONG JUMP on error */
618}
619
621static OT_ProcRet NS(Sq3LiteC_DropModules) (Sq3LiteC_ARGS) {
624 MkBufferListCreateTLS_T(azKeepBfl,10);
627 MkErrorC_Check(hdl,Sq3LiteDropModules (hdl, azKeepBfl));
629 end: MK_UNUSED /* LONG JUMP on error */
631}
632
633// skip on class-overload: Sq3LiteLog → MkObjectLog
636
638static OT_ProcRet NS(Sq3LiteC_OverloadFunction) (Sq3LiteC_ARGS) {
641 MK_STRN zFuncName = 0;
643 MK_I32 nArg = 0;
646 MkErrorC_Check(hdl,Sq3LiteOverloadFunction (hdl, zFuncName, nArg));
648 end: MK_UNUSED /* LONG JUMP on error */
650}
651
653static OT_ProcRet NS(Sq3LiteC_Serialize) (Sq3LiteC_ARGS) {
656 MK_STRN zSchema = 0;
658 enum Sq3SerializeE mFlags = 0;
661 MkBinaryR retVal = Sq3LiteSerialize (hdl, zSchema, mFlags);
663 end: MK_UNUSED /* LONG JUMP on error */
665}
666
667// doc-key: Sq3LiteC,Sq3LiteC-Misc,omo
668
670static OT_ProcRet NS(Sq3LiteC_DbStatus) (Sq3LiteC_ARGS) {
673 enum Sq3DbStatusE op = 0;
675 MK_BOOL resetFlg = 0;
678 MK_I32 pCur;
679 MK_I32 pHiwtr;
680 MkErrorC_Check(hdl,Sq3LiteDbStatus (hdl, op, &pCur, &pHiwtr, resetFlg));
684 end: MK_UNUSED /* LONG JUMP on error */
686}
687
689static OT_ProcRet NS(Sq3LiteC_TableColumnMetadata) (Sq3LiteC_ARGS) {
692 MK_STRN zDbName = 0;
694 MK_STRN zTableName = 0;
695 OT_CHECK_REQUIRED(OT_CHECK_STRN (zTableName))
696 MK_STRN zColumnName = 0;
697 OT_CHECK_REQUIRED(OT_CHECK_STRN (zColumnName))
699 MK_STRN pzDataType;
700 MK_STRN pzCollSeq;
701 MK_I32 pNotNull;
702 MK_I32 pPrimaryKey;
703 MK_I32 pAutoinc;
704 MkErrorC_Check(hdl,Sq3LiteTableColumnMetadata (hdl, zDbName, zTableName, zColumnName, &pzDataType, &pzCollSeq, &pNotNull, &pPrimaryKey, &pAutoinc));
706 OT_retObj_APPEND(OT_TMP_STR_OBJ(pzDataType));
709 OT_retObj_APPEND(OT_TMP_I32_OBJ(pPrimaryKey));
711 end: MK_UNUSED /* LONG JUMP on error */
713}
714
716// Sq3LiteC_Misc_RB_API
717
721
722// doc-key: Sq3LiteC,Sq3LiteC-Modify-Wal,om_
723
725static OT_ProcRet NS(Sq3LiteC_WalAutocheckpoint) (Sq3LiteC_ARGS) {
728 MK_I32 N = 0;
733 end: MK_UNUSED /* LONG JUMP on error */
735}
736
737// doc-key: Sq3LiteC,Sq3LiteC-Modify-Wal,omo
738
740static OT_ProcRet NS(Sq3LiteC_WalCheckpointV2) (Sq3LiteC_ARGS) {
743 MK_STRN zDb = 0;
745 MK_I32 eMode = 0;
748 MK_I32 pnLog;
749 MK_I32 pnCkpt;
750 MkErrorC_Check(hdl,Sq3LiteWalCheckpointV2 (hdl, zDb, eMode, &pnLog, &pnCkpt));
754 end: MK_UNUSED /* LONG JUMP on error */
756}
757
759// Sq3LiteC_Modify_Wal_RB_API
760
764
765// doc-key: Sq3LiteC,Sq3LiteC-Query,om_
766
768static OT_ProcRet NS(Sq3LiteC_Interrupt) (Sq3LiteC_ARGS) {
772 Sq3LiteInterrupt (hdl);
774 end: MK_UNUSED /* LONG JUMP on error */
776}
777
779static OT_ProcRet NS(Sq3LiteC_IsInterrupted) (Sq3LiteC_ARGS) {
784 end: MK_UNUSED /* LONG JUMP on error */
786}
787
789// Sq3LiteC_Query_RB_API
790
794
795// doc-key: Sq3LiteC,Sq3LiteC-Row,om_
796
798static OT_ProcRet NS(Sq3LiteC_Changes) (Sq3LiteC_ARGS) {
803 end: MK_UNUSED /* LONG JUMP on error */
805}
806
808static OT_ProcRet NS(Sq3LiteC_Changes64) (Sq3LiteC_ARGS) {
813 end: MK_UNUSED /* LONG JUMP on error */
815}
816
818static OT_ProcRet NS(Sq3LiteC_SetLastInsertRowid) (Sq3LiteC_ARGS) {
821 MK_I64 arg1 = 0;
824 Sq3LiteSetLastInsertRowid (hdl, arg1);
826 end: MK_UNUSED /* LONG JUMP on error */
828}
829
831static OT_ProcRet NS(Sq3LiteC_TotalChanges) (Sq3LiteC_ARGS) {
836 end: MK_UNUSED /* LONG JUMP on error */
838}
839
841static OT_ProcRet NS(Sq3LiteC_TotalChanges64) (Sq3LiteC_ARGS) {
846 end: MK_UNUSED /* LONG JUMP on error */
848}
849
851// Sq3LiteC_Row_RB_API
852
856
857// doc-key: Sq3LiteC,Sq3LiteC-TOR,sCo
858
860static OT_ProcRet NS(Sq3LiteC_OpenV2) (OtClass_ARGS) {
863 MK_STRN filename = 0;
867 MK_STRN zVfs = NULL;
870 SQ3_LITE ppDb;
871 MkErrorC_Check(MK_ERROR_FORMAT,Sq3LiteOpenV2 (filename, &ppDb, flags, zVfs));
873 OT_retObj_SET_LITE(ppDb);
874 end: MK_UNUSED /* LONG JUMP on error */
876}
877
879static OT_ProcRet NS(Sq3LiteC_new) (CONSTR_ARGS) {
882 MK_STRN filename = 0;
886 MK_STRN zVfs = NULL;
888 SQ3_LITE ppDb;
889 MkErrorC_Check(MK_ERROR_FORMAT,Sq3LiteOpenV2 (filename, &ppDb, flags, zVfs));
891 OT_retObj_CONSTR(ppDb);
892 end: MK_UNUSED /* LONG JUMP on error */
894}
895
896// doc-key: Sq3LiteC,Sq3LiteC-TOR,oco
897
899static OT_ProcRet NS(Sq3LiteC_PrepareV2) (Sq3LiteC_ARGS) {
902 MkStringR zSql = {0};
905 SQ3_STMT ppStmt;
906 MkErrorC_Check(hdl,Sq3LitePrepareV2 (hdl, zSql, &ppStmt));
907 OT_retObj_SET_STMT(ppStmt);
908 end: MK_UNUSED /* LONG JUMP on error */
910}
911
912// doc-key: Sq3LiteC,Sq3LiteC-TOR,om_
913
915static OT_ProcRet NS(Sq3LiteC_CloseV2) (Sq3LiteC_ARGS) {
921 end: MK_UNUSED /* LONG JUMP on error */
923}
924
926// Sq3LiteC_TOR_RB_API
927
928// END-Sq3LiteC - created by 'rb_MqC.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
929
930/*****************************************************************************/
931/* */
932/* public */
933/* */
934/*****************************************************************************/
935
936void NS(sMark) (MK_PTR ptr) {
937}
938
939void NS(Sq3LiteC_Init) (MK_RT_ARGS_ONLY) {
940
941 // init type
943 S_INIT;
944
945 // BEGIN-CLASS - created by 'rb_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
946
947 // doc-key: Sq3LiteC,Sq3Lite,sCo
948 OT_METH_S ( Sq3LiteC, OpenV2, Sq3LiteC_OpenV2 )
949 OT_METH_C ( Sq3LiteC, new, Sq3LiteC_new )
950
951 // doc-key: Sq3LiteC,Sq3Lite,sc_
952 OT_METH_O ( Sq3LiteC, GetNull, Sq3LiteC_GetNull )
953 OT_METH_S ( Sq3LiteC, GetNull, Sq3LiteC_GetNull )
954 OT_METH_O ( Sq3LiteC, HandleResolve, Sq3LiteC_HandleResolve )
955 OT_METH_S ( Sq3LiteC, HandleResolve, Sq3LiteC_HandleResolve )
956 OT_METH_O ( Sq3LiteC, Instances, Sq3LiteC_Instances )
957 OT_METH_S ( Sq3LiteC, Instances, Sq3LiteC_Instances )
958
959 // doc-key: Sq3LiteC,Sq3Lite,sm_
960 OT_METH_O ( Sq3LiteC, ErrStr, Sq3LiteC_ErrStr )
961 OT_METH_S ( Sq3LiteC, ErrStr, Sq3LiteC_ErrStr )
962 OT_METH_O ( Sq3LiteC, Sleep, Sq3LiteC_Sleep )
963 OT_METH_S ( Sq3LiteC, Sleep, Sq3LiteC_Sleep )
964
965 // END-CLASS - created by 'rb_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
966
967 // BEGIN-OBJ - created by 'rb_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
968
969 // doc-key: Sq3LiteC,Sq3Lite,oc_
970 OT_METH_O ( Sq3LiteC, Next, Sq3LiteC_Next )
971 OT_METH_O ( Sq3LiteC, Prev, Sq3LiteC_Prev )
972
973 // doc-key: Sq3LiteC,Sq3Lite,oco
974 OT_METH_O ( Sq3LiteC, DbStatusBFL, Sq3LiteC_DbStatusBFL )
975 OT_METH_O ( Sq3LiteC, PrepareV2, Sq3LiteC_PrepareV2 )
976
977 // doc-key: Sq3LiteC,Sq3Lite,om_
978 OT_METH_O ( Sq3LiteC, BusyTimeout, Sq3LiteC_BusyTimeout )
979 OT_METH_O ( Sq3LiteC, Changes, Sq3LiteC_Changes )
980 OT_METH_O ( Sq3LiteC, Changes64, Sq3LiteC_Changes64 )
981 OT_METH_O ( Sq3LiteC, CloseV2, Sq3LiteC_CloseV2 )
982 OT_METH_O ( Sq3LiteC, DbCacheflush, Sq3LiteC_DbCacheflush )
983 OT_METH_O ( Sq3LiteC, DbFilename, Sq3LiteC_DbFilename )
984 OT_METH_O ( Sq3LiteC, DbName, Sq3LiteC_DbName )
985 OT_METH_O ( Sq3LiteC, DbReadonly, Sq3LiteC_DbReadonly )
986 OT_METH_O ( Sq3LiteC, DbReleaseMemory, Sq3LiteC_DbReleaseMemory )
987 OT_METH_O ( Sq3LiteC, DeclareVtab, Sq3LiteC_DeclareVtab )
988 OT_METH_O ( Sq3LiteC, Deserialize, Sq3LiteC_Deserialize )
989 OT_METH_O ( Sq3LiteC, DropModules, Sq3LiteC_DropModules )
990 OT_METH_O ( Sq3LiteC, ErrCode, Sq3LiteC_ErrCode )
991 OT_METH_O ( Sq3LiteC, ErrMsg, Sq3LiteC_ErrMsg )
992 OT_METH_O ( Sq3LiteC, ErrorOffset, Sq3LiteC_ErrorOffset )
993 OT_METH_O ( Sq3LiteC, Exec, Sq3LiteC_Exec )
994 OT_METH_O ( Sq3LiteC, ExecV2, Sq3LiteC_ExecV2 )
995 OT_METH_O ( Sq3LiteC, ExtendedResultCodes, Sq3LiteC_ExtendedResultCodes )
996 OT_METH_O ( Sq3LiteC, ExtendetErrCode, Sq3LiteC_ExtendetErrCode )
997 OT_METH_O ( Sq3LiteC, GetAutocommit, Sq3LiteC_GetAutocommit )
998 // skip class-overload: Sq3LiteHandleGet → HandleGet, Sq3LiteC_HandleGet
999 OT_METH_O ( Sq3LiteC, Interrupt, Sq3LiteC_Interrupt )
1000 OT_METH_O ( Sq3LiteC, IsInterrupted, Sq3LiteC_IsInterrupted )
1001 OT_METH_O ( Sq3LiteC, LastInsertRowid, Sq3LiteC_LastInsertRowid )
1002 OT_METH_O ( Sq3LiteC, Limit, Sq3LiteC_Limit )
1003 // skip class-overload: Sq3LiteLog → Log, Sq3LiteC_Log
1004 OT_METH_O ( Sq3LiteC, OverloadFunction, Sq3LiteC_OverloadFunction )
1005 OT_METH_O ( Sq3LiteC, Serialize, Sq3LiteC_Serialize )
1006 OT_METH_O ( Sq3LiteC, SetLastInsertRowid, Sq3LiteC_SetLastInsertRowid )
1007 OT_METH_O ( Sq3LiteC, SystemErrno, Sq3LiteC_SystemErrno )
1008 OT_METH_O ( Sq3LiteC, TotalChanges, Sq3LiteC_TotalChanges )
1009 OT_METH_O ( Sq3LiteC, TotalChanges64, Sq3LiteC_TotalChanges64 )
1010 OT_METH_O ( Sq3LiteC, TxnState, Sq3LiteC_TxnState )
1011 OT_METH_O ( Sq3LiteC, VtabOnConflict, Sq3LiteC_VtabOnConflict )
1012 OT_METH_O ( Sq3LiteC, WalAutocheckpoint, Sq3LiteC_WalAutocheckpoint )
1013
1014 // doc-key: Sq3LiteC,Sq3Lite,omo
1015 OT_METH_O ( Sq3LiteC, DbStatus, Sq3LiteC_DbStatus )
1016 OT_METH_O ( Sq3LiteC, TableColumnMetadata, Sq3LiteC_TableColumnMetadata )
1017 OT_METH_O ( Sq3LiteC, WalCheckpointV2, Sq3LiteC_WalCheckpointV2 )
1018
1019 // END-OBJ - created by 'rb_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
1020
1021}
#define OT_CHECK_bool(val)
#define MK(n)
#define OT_SETUP_VARARGS(min, max, d)
#define OT_retObj_SET_BOL(nat)
#define OT_SETUP_NOARG(d)
#define OT_SETUP_ONEARG(d)
#define OT_ERROR_LNG_RETURN
#define PTR2VAL(nat)
#define OT_CHECK_NI4(val)
#define OT_CHECK_NI8(val)
#define OT_CONSTRUCTOR_POST(x)
#define OT_METH_S(c, s, f)
#define MK_BASE_CLASS
#define OT_CLS_T
#define OT_retObj_SET_I64(nat)
#define OT_retObj_SET_List
#define OT_retObj_CONSTR(mng)
#define OT_CHECK_REQUIRED(val)
#define OT_retObj_SET_None
#define OT_retObj_SET_I32(nat)
#define OT_METH_O(c, s, f)
#define OT_SETUP_CONSTRUCTOR_ARGS(min, max, d)
#define INCR_REF(valP)
#define OT_OBJ_T
#define OT_retObj_SET_BFL(nat)
#define OT_TMP_I32_OBJ(val)
#define OT_GET__ME_REF_MkBinaryR(b)
#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_OBJECT_DELETE_HARD(obj)
#define OT_retObj_SET_STR(nat)
#define OT_CHECK_OPTIONAL(val)
#define OT_TMP_STR_OBJ(val)
#define OT_retObj_SET(val)
#define VAL2PTR(val)
#define OT_CHECK_NOARGS
#define MkErrorC_Check(mng, PROC)
#define OT_ProcRet
#define OT_METH_C(c, s, f)
#define CONSTR_ARGS
#define OtClass_ARGS
#define OT_CHECK_STRN(val)
tag: nhi1-release-250425
#define SQ3(n)
#define OT_PKG
#define OT_retObj_SET_LITE(nat)
#define NS(n)
#define OT_retObj_SET_STMT(nat)
#define OT_NEW_Sq3_enum_OBJ(typ, i)
#define Sq3LiteC_ARGS
#define Sq3LiteC_MK_NULL
#define Instances_doc
#define TxnState_doc
#define BusyTimeout_doc
static MK_TYP Sq3LiteCTT
Definition Sq3LiteC_rb.c:22
#define Deserialize_doc
#define DbStatusBFL_doc
#define OT_SETUP_hdl_static_constr
Definition Sq3LiteC_rb.c:95
#define Interrupt_doc
#define ExtendedResultCodes_doc
#define DbReleaseMemory_doc
#define DropModules_doc
#define SystemErrno_doc
#define OT_SETUP_hdl
Definition Sq3LiteC_rb.c:87
#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
Definition Sq3LiteC_rb.c:92
#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
Definition Sq3LiteC_rb.c:14
#define OT_SETUP_hdl_static
Definition Sq3LiteC_rb.c:93
#define OT_SETUP_hdl_constr
Definition Sq3LiteC_rb.c:89
#define PrepareV2_doc
#define Changes_doc
#define Sleep_doc
#define new_doc
#define Limit_doc
#define Serialize_doc
#define TableColumnMetadata_doc
#define WalCheckpointV2_doc
#define GetAutocommit_doc
#define ErrorOffset_doc
#define S_INIT
Definition Sq3LiteC_rb.c:69
#define ExecV2_doc
#define DbCacheflush_doc
#define IsInterrupted_doc
#define DbReadonly_doc
#define VtabOnConflict_doc
#define MkBufferListCreateTLS_T(name, num)
#define MK_ERROR_FORMAT
#define mk_inline
#define MK_NULL_NO
#define MK_UNUSED
#define MK_NULL
#define MK_DEPRECATED
MK_PTRB * MK_PTR
const MK_STRB * MK_STRN
MK_PTRB * MK_MNG
signed long long MK_I64
bool MK_BOOL
int32_t MK_HDL
signed int MK_I32
#define MK_RT_ARGS
#define MK_RT_ARGS_ONLY
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(...)
__thread MK_TYP Sq3LiteC_TT
class as MkTypeDefS-class-type …
#define Sq3LiteC_T
class as MkTypeDefS-class-type (cast from Sq3LiteC_TT into MkTypeS) …
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_NIH(val)
#define OT_CHECK_CALLABLE(val)
#define OT_CHECK_ENUM(ename, val)
#define OT_SETUP_CALLABLE_ONCE(val)
#define OT_CLEANUP_CALLABLE_ONCE(val)
#define OT_CHECK_BFL(val, nullB)
MkSelfUnlinkF selfUnlink
MkSelfDeleteF selfDelete
MkSelfCreateF selfCreate
Struct to represent the data of the Sq3LiteC …
Struct to represent the data of the Sq3StmtC …