37 #if defined(_RPMSQL_INTERNAL)
39 #define F_ISSET(_sql, _FLAG) ((_sql)->flags & (RPMSQL_FLAGS_##_FLAG))
40 #define SQLDBG(_l) if (_rpmsql_debug) fprintf _l
46 RPMSQL_FLAGS_NONE = 0,
47 RPMSQL_FLAGS_INTERACTIVE = (1 << 0),
48 RPMSQL_FLAGS_BAIL = (1 << 1),
49 RPMSQL_FLAGS_NOLOAD = (1 << 2),
50 RPMSQL_FLAGS_CREATE = (1 << 3),
52 RPMSQL_FLAGS_ECHO = (1 << 16),
53 RPMSQL_FLAGS_SHOWHDR = (1 << 17),
54 RPMSQL_FLAGS_WRITABLE = (1 << 18),
56 RPMSQL_FLAGS_PROMPT = (1 << 24),
64 RPMSQL_MODE_COLUMN = 1,
68 RPMSQL_MODE_INSERT = 5,
71 RPMSQL_MODE_EXPLAIN = 8,
74 struct previous_mode {
90 const char * zInitFile;
92 const char * zDbFilename;
93 const char * zDestTable;
106 struct rusage sBegin;
109 struct previous_mode explainPrev;
112 int actualWidth[100];
114 const char * outfile;
118 const char * zInitrc;
119 const char * zHistory;
120 const char * zPrompt;
121 const char * zContinue;
130 #if defined(__LCLINT__)
137 #ifdef _RPMVT_INTERNAL
138 struct rpmvt_vtab_s {
139 const void * pModule;
144 struct rpmvt_vtab_s _base;
170 #if defined(__LCLINT__)
186 #ifdef _RPMVC_INTERNAL
187 struct rpmvc_cursor_s {
191 struct rpmvc_cursor_s _base;
201 #if defined(__LCLINT__)
233 #define rpmsqlUnlink(_sql) \
234 ((rpmsql)rpmioUnlinkPoolItem((rpmioItem)(_sql), __FUNCTION__, __FILE__, __LINE__))
244 #define rpmsqlLink(_sql) \
245 ((rpmsql)rpmioLinkPoolItem((rpmioItem)(_sql), __FUNCTION__, __FILE__, __LINE__))
256 #define rpmsqlFree(_sql) \
257 ((rpmsql)rpmioFreePoolItem((rpmioItem)(_sql), __FUNCTION__, __FILE__, __LINE__))
296 const char ** resultp)
300 #ifdef _RPMSQL_INTERNAL
301 typedef struct rpmsqlCF_s * rpmsqlCF;
318 int _rpmsqlLoadCFT(
rpmsql sql,
void * _CF)
321 typedef struct sqlite3_module * rpmsqlVM;
322 typedef struct rpmsqlVMT_s * rpmsqlVMT;
326 const rpmsqlVM module;
336 int _rpmsqlLoadVMT(
void * _db, rpmsqlVMT _VMT)
340 #ifdef _RPMVT_INTERNAL
349 #define rpmvtUnlink(_vt) \
350 ((rpmvt)(rpmioUnlinkPoolItem(((rpmioItem)(_vt))-1, __FUNCTION__, __FILE__, __LINE__)+1))
360 #define rpmvtLink(_vt) \
361 ((rpmvt)(rpmioLinkPoolItem(((rpmioItem)(_vt))-1, __FUNCTION__, __FILE__, __LINE__)+1))
372 #define rpmvtFree(_vt) \
373 ((rpmvt)rpmioFreePoolItem(((rpmioItem)(_vt))-1, __FUNCTION__, __FILE__, __LINE__))
390 int rpmvtCreate(
void * _db,
void * pAux,
391 int argc,
const char *
const * argv,
392 rpmvt * vtp,
char ** pzErr)
405 int rpmvtConnect(
void * _db,
void * pAux,
406 int argc,
const char *
const * argv,
407 rpmvt * vtp,
char ** pzErr)
416 int rpmvtBestIndex(
rpmvt vt,
void * _pInfo)
424 int rpmvtDisconnect(
rpmvt vt)
432 int rpmvtDestroy(
rpmvt vt)
443 int rpmvtUpdate(
rpmvt vt,
int argc,
rpmvArg * _argv, int64_t * pRowid)
451 int rpmvtBegin(
rpmvt vt)
459 int rpmvtSync(
rpmvt vt)
467 int rpmvtCommit(
rpmvt vt)
475 int rpmvtRollback(
rpmvt vt)
487 int rpmvtFindFunction(
rpmvt vt,
int nArg,
const char * zName,
488 void (**pxFunc)(
void *,
int,
rpmvArg *),
498 int rpmvtRename(
rpmvt vt,
const char * zNew)
502 #ifdef _RPMVC_INTERNAL
511 #define rpmvcUnlink(_vc) \
512 ((rpmvc)(rpmioUnlinkPoolItem(((rpmioItem)(_vc))-1, __FUNCTION__, __FILE__, __LINE__)+1))
522 #define rpmvcLink(_vc) \
523 ((rpmvc)(rpmioLinkPoolItem(((rpmioItem)(_vc))-1, __FUNCTION__, __FILE__, __LINE__)+1))
534 #define rpmvcFree(_vc) \
535 ((rpmvc)rpmioFreePoolItem(((rpmioItem)(_vc))-1, __FUNCTION__, __FILE__, __LINE__))
554 int rpmvcClose(
rpmvc vc)
566 int rpmvcFilter(
rpmvc vc,
int idxNum,
const char * idxStr,
575 int rpmvcNext(
rpmvc vc)
583 int rpmvcEof(
rpmvc vc)
593 int rpmvcColumn(
rpmvc vc,
void * _pContext,
int colx)
602 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)
const char const bson * data
const char const bson const bson * fields
The FD_t File Handle data structure.
const char const bson int mongo_write_concern int flags
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.