25 irowupdate (
const int ihandle,
char *pcrow, off_t trownumber)
29 struct keydesc *pskeyptr;
31 int ikeynumber, iresult;
32 unsigned char ckeyvalue[VB_MAX_KEYLEN];
40 for (ikeynumber = 0; ikeynumber < psvbptr->
inkeys; ikeynumber++) {
41 pskeyptr = psvbptr->
pskeydesc[ikeynumber];
42 if (pskeyptr->k_nparts == 0) {
45 if (pskeyptr->k_flags & ISDUPS) {
49 iresult =
ivbkeysearch (ihandle, ISGTEQ, ikeynumber, 0, ckeyvalue, (off_t)0);
64 for (ikeynumber = 0; ikeynumber < psvbptr->
inkeys; ikeynumber++) {
65 pskeyptr = psvbptr->
pskeydesc[ikeynumber];
66 if (pskeyptr->k_nparts == 0) {
80 for (ikeynumber = 0; ikeynumber < psvbptr->
inkeys; ikeynumber++) {
81 pskeyptr = psvbptr->
pskeydesc[ikeynumber];
82 if (pskeyptr->k_nparts == 0) {
88 (
size_t)pskeyptr->k_len)) {
95 while (ikeynumber >= 0) {
98 trownumber, tdupnumber,
NULL);
106 iresult =
ivbkeysearch (ihandle, ISGREAT, ikeynumber, 0, ckeyvalue, (off_t)0);
109 iresult =
ivbkeyload (ihandle, ikeynumber, ISPREV, 1, &pskey);
111 if (pskeyptr->k_flags & ISDUPS
112 && !memcmp (pskey->
ckey, ckeyvalue,
113 (
size_t)pskeyptr->k_len)) {
121 iresult =
ivbkeysearch (ihandle, ISGTEQ, ikeynumber, 0, ckeyvalue,
124 trownumber, tdupnumber,
NULL);
128 while (ikeynumber >= 0) {
148 int ideleted, inewreclen, ioldreclen = 0, iresult = 0;
149 unsigned char ckeyvalue[VB_MAX_KEYLEN];
162 if (psvbptr->
pskeydesc[0]->k_flags & ISDUPS) {
167 iresult =
ivbkeysearch (ihandle, ISEQUAL, 0, 0, ckeyvalue, (off_t)0);
181 &ideleted, trownumber);
192 iresult =
irowupdate (ihandle, pcrow, trownumber);
238 int ideleted, inewreclen, ioldreclen = 0, iresult = 0;
282 ioldreclen, inewreclen, pcrow);
301 int ideleted, inewreclen, ioldreclen = 0, iresult = 0;
315 if (trownumber < 1) {
337 iresult =
irowupdate (ihandle, pcrow, trownumber);
347 ioldreclen, inewreclen,
int isrewrite(const int ihandle, char *pcrow)
int isrewrec(const int ihandle, const long long trownumber, char *pcrow)
int ivbkeysearch(const int ihandle, const int imode, const int ikeynumber, int ilength, unsigned char *pckeyvalue, off_t tdupnumber)
int ivbtransupdate(const int ihandle, const off_t trownumber, const int ioldrowlen, const int inewrowlen, const char *pcrow)
int ivbkeylocaterow(const int ihandle, const int ikeynumber, off_t trownumber)
int ivbdatawrite(const int ihandle, char *pcbuffer, int ideletedrow, const off_t trownumber)
int ivbenter(const int ihandle, const unsigned int imodifying, const unsigned int ispecial)
int ivbkeyload(const int ihandle, const int ikeynumber, const int imode, const int isetcurr, struct VBKEY **ppskey)
int ivbkeydelete(const int ihandle, const int ikeynumber)
unsigned char iisdictlocked
EC ARGUMENT EC EC BOUND EC BOUND EC BOUND EC BOUND TABLE EC DATA EC DATA EC DATA PTR NULL
int ivbdatalock(const int ihandle, const int imode, const off_t trownumber)
struct VBKEY * pskeycurr[32]
int isrewcurr(const int ihandle, char *pcrow)
void vvbmakekey(const struct keydesc *pskeydesc, char *pcrow_buffer, unsigned char *pckeyvalue)
int ivbdataread(const int ihandle, char *pcbuffer, int *pideletedrow, const off_t trownumber)
struct DICTINFO * psvbfile[128+1]
int ivbkeyinsert(const int ihandle, struct VBTREE *pstree, const int ikeynumber, unsigned char *pckeyvalue, off_t trownode, off_t tdupnumber, struct VBTREE *pschild)
int ivbexit(const int ihandle)
struct keydesc * pskeydesc[32]
static int irowupdate(const int ihandle, char *pcrow, off_t trownumber)