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)
volatile int _rpmsqlSeenInterrupt
#define rpmsqlUnlink(_sql)
int rpmsqlCmd(rpmsql sql, const char *msg, void *_db, int rc)
Check sqlite3 return code, displaying error messages.
rpmvt rpmvtNew(void *db, void *pModule, const char *const *argv, rpmvd vd)
The FD_t File Handle data structure.
rpmRC rpmsqlRun(rpmsql sql, const char *str, const char **resultp)
Execute sql from STRING | FILE | STDIN | INTERACTIVE.
enum rpmRC_e rpmRC
RPM return codes.
static const char * prefix[]
Tables for prefixing and suffixing patterns, according to the -w, -x, and -F options.
rpmvc rpmvcNew(rpmvt vt, int nrows)
rpmsql rpmsqlNew(char **av, uint32_t flags)
Create and load a sql interpreter.
const char ** rpmsqlArgv(rpmsql sql, int *argcp)
Return arguments from a sql interpreter.