35 #if defined(_RPMSQL_INTERNAL)
37 #define F_ISSET(_sql, _FLAG) ((_sql)->flags & (RPMSQL_FLAGS_##_FLAG))
38 #define SQLDBG(_l) if (_rpmsql_debug) fprintf _l
44 RPMSQL_FLAGS_NONE = 0,
45 RPMSQL_FLAGS_INTERACTIVE = (1 << 0),
46 RPMSQL_FLAGS_BAIL = (1 << 1),
47 RPMSQL_FLAGS_NOLOAD = (1 << 2),
48 RPMSQL_FLAGS_CREATE = (1 << 3),
50 RPMSQL_FLAGS_ECHO = (1 << 16),
51 RPMSQL_FLAGS_SHOWHDR = (1 << 17),
52 RPMSQL_FLAGS_WRITABLE = (1 << 18),
54 RPMSQL_FLAGS_PROMPT = (1 << 24),
62 RPMSQL_MODE_COLUMN = 1,
66 RPMSQL_MODE_INSERT = 5,
69 RPMSQL_MODE_EXPLAIN = 8,
72 struct previous_mode {
88 const char * zInitFile;
90 const char * zDbFilename;
91 const char * zDestTable;
104 struct rusage sBegin;
107 struct previous_mode explainPrev;
110 int actualWidth[100];
112 const char * outfile;
116 const char * zInitrc;
117 const char * zHistory;
118 const char * zPrompt;
119 const char * zContinue;
128 #if defined(__LCLINT__)
135 #ifdef _RPMVT_INTERNAL
136 struct rpmvt_vtab_s {
137 const void * pModule;
142 struct rpmvt_vtab_s _base;
149 const char ** fields;
168 #if defined(__LCLINT__)
184 #ifdef _RPMVC_INTERNAL
185 struct rpmvc_cursor_s {
189 struct rpmvc_cursor_s _base;
199 #if defined(__LCLINT__)
231 #define rpmsqlUnlink(_sql) \
232 ((rpmsql)rpmioUnlinkPoolItem((rpmioItem)(_sql), __FUNCTION__, __FILE__, __LINE__))
242 #define rpmsqlLink(_sql) \
243 ((rpmsql)rpmioLinkPoolItem((rpmioItem)(_sql), __FUNCTION__, __FILE__, __LINE__))
254 #define rpmsqlFree(_sql) \
255 ((rpmsql)rpmioFreePoolItem((rpmioItem)(_sql), __FUNCTION__, __FILE__, __LINE__))
294 const char ** resultp)
298 #ifdef _RPMSQL_INTERNAL
299 typedef struct rpmsqlCF_s * rpmsqlCF;
316 int _rpmsqlLoadCFT(
rpmsql sql,
void * _CF)
319 typedef struct sqlite3_module * rpmsqlVM;
320 typedef struct rpmsqlVMT_s * rpmsqlVMT;
324 const rpmsqlVM module;
334 int _rpmsqlLoadVMT(
void * _db, rpmsqlVMT _VMT)
338 #ifdef _RPMVT_INTERNAL
347 #define rpmvtUnlink(_vt) \
348 ((rpmvt)(rpmioUnlinkPoolItem(((rpmioItem)(_vt))-1, __FUNCTION__, __FILE__, __LINE__)+1))
358 #define rpmvtLink(_vt) \
359 ((rpmvt)(rpmioLinkPoolItem(((rpmioItem)(_vt))-1, __FUNCTION__, __FILE__, __LINE__)+1))
370 #define rpmvtFree(_vt) \
371 ((rpmvt)rpmioFreePoolItem(((rpmioItem)(_vt))-1, __FUNCTION__, __FILE__, __LINE__))
388 int rpmvtCreate(
void * _db,
void * pAux,
389 int argc,
const char *
const * argv,
390 rpmvt * vtp,
char ** pzErr)
403 int rpmvtConnect(
void * _db,
void * pAux,
404 int argc,
const char *
const * argv,
405 rpmvt * vtp,
char ** pzErr)
414 int rpmvtBestIndex(
rpmvt vt,
void * _pInfo)
422 int rpmvtDisconnect(
rpmvt vt)
430 int rpmvtDestroy(
rpmvt vt)
441 int rpmvtUpdate(
rpmvt vt,
int argc,
rpmvArg * _argv, int64_t * pRowid)
449 int rpmvtBegin(
rpmvt vt)
457 int rpmvtSync(
rpmvt vt)
465 int rpmvtCommit(
rpmvt vt)
473 int rpmvtRollback(
rpmvt vt)
485 int rpmvtFindFunction(
rpmvt vt,
int nArg,
const char * zName,
486 void (**pxFunc)(
void *,
int,
rpmvArg *),
496 int rpmvtRename(
rpmvt vt,
const char * zNew)
500 #ifdef _RPMVC_INTERNAL
509 #define rpmvcUnlink(_vc) \
510 ((rpmvc)(rpmioUnlinkPoolItem(((rpmioItem)(_vc))-1, __FUNCTION__, __FILE__, __LINE__)+1))
520 #define rpmvcLink(_vc) \
521 ((rpmvc)(rpmioLinkPoolItem(((rpmioItem)(_vc))-1, __FUNCTION__, __FILE__, __LINE__)+1))
532 #define rpmvcFree(_vc) \
533 ((rpmvc)rpmioFreePoolItem(((rpmioItem)(_vc))-1, __FUNCTION__, __FILE__, __LINE__))
552 int rpmvcClose(
rpmvc vc)
564 int rpmvcFilter(
rpmvc vc,
int idxNum,
const char * idxStr,
573 int rpmvcNext(
rpmvc vc)
581 int rpmvcEof(
rpmvc vc)
591 int rpmvcColumn(
rpmvc vc,
void * _pContext,
int colx)
600 int rpmvcRowid(
rpmvc vc, int64_t * pRowid)