bson_type t = BSON_ITERATOR_TYPE(&i);
if (t == 0)
break;
- key = bson_iterator_key(&i);
+ key = BSON_ITERATOR_KEY(&i);
for (temp = 0; temp <= depth; temp++)
fprintf(f, "\t");
bson_type bson_find(bson_iterator *it, const bson *obj, const char *name) {
BSON_ITERATOR_INIT(it, (bson *) obj);
while (bson_iterator_next(it)) {
- if (strcmp(name, bson_iterator_key(it)) == 0)
+ if (strcmp(name, BSON_ITERATOR_KEY(it)) == 0)
break;
}
return BSON_ITERATOR_TYPE(it);
bson_type bson_find_from_buffer(bson_iterator *it, const char *buffer, const char *name) {
BSON_ITERATOR_FROM_BUFFER(it, buffer);
while (bson_iterator_next(it)) {
- if (strcmp(name, bson_iterator_key(it)) == 0)
+ if (strcmp(name, BSON_ITERATOR_KEY(it)) == 0)
break;
}
return BSON_ITERATOR_TYPE(it);
bson_type t;
bson_visitor_cmd_t vcmd = 0;
while (!(vcmd & BSON_VCMD_TERMINATE) && (t = bson_iterator_next(it)) != BSON_EOO) {
- const char* key = bson_iterator_key(it);
+ const char* key = BSON_ITERATOR_KEY(it);
klen = strlen(key);
if (curr + klen > BSON_MAX_FPATH_LEN) {
continue;
}
//PUSH
if (curr > 0) { //add leading dot
- memset(pstack + curr, '.', 1);
+ *(pstack + curr) = '.';
curr++;
}
memcpy(pstack + curr, key, klen);
int fplen = ffpctx->fplen;
const char *fpath = ffpctx->fpath;
while ((t = bson_iterator_next(it)) != BSON_EOO) {
- const char* key = bson_iterator_key(it);
+ const char* key = BSON_ITERATOR_KEY(it);
klen = strlen(key);
if (curr + klen > fplen) {
continue;
return BSON_ERROR;
bson_append(b, elem->cur, size);
} else {
- int data_size = size - 2 - strlen(bson_iterator_key(elem));
+ int data_size = size - 2 - strlen(BSON_ITERATOR_KEY(elem));
bson_append_estart(b, elem->cur[0], name_or_null, data_size);
bson_append(b, bson_iterator_value(elem), data_size);
}
int bson_append_field_from_iterator(const bson_iterator *from, bson *into) {
assert(from && into);
- return bson_append_field_from_iterator2(bson_iterator_key(from), from, into);
+ return bson_append_field_from_iterator2(BSON_ITERATOR_KEY(from), from, into);
}
typedef struct {
};
//collect active fpaths
while ((bt = bson_iterator_next(&it2)) != BSON_EOO) {
- const char* key = bson_iterator_key(&it2);
+ const char* key = BSON_ITERATOR_KEY(&it2);
off_t it2off = (it2.cur - it2start);
tcmapput(mfields, key, strlen(key), &it2off, sizeof (it2off));
}
BSON_ITERATOR_FROM_BUFFER(&it2, b2data);
//Append all fields in B1 overwriten by B2
while ((bt1 = bson_iterator_next(&it1)) != BSON_EOO) {
- const char* k1 = bson_iterator_key(&it1);
+ const char* k1 = BSON_ITERATOR_KEY(&it1);
if (overwrite && strcmp(JDBIDKEYNAME, k1) && (bt2 = bson_find_from_buffer(&it2, b2data, k1)) != BSON_EOO) {
bson_append_field_from_iterator(&it2, out);
} else {
BSON_ITERATOR_FROM_BUFFER(&it2, b2data);
//Append all fields from B2 missing in B1
while ((bt2 = bson_iterator_next(&it2)) != BSON_EOO) {
- const char* k2 = bson_iterator_key(&it2);
+ const char* k2 = BSON_ITERATOR_KEY(&it2);
if ((bt1 = bson_find_from_buffer(&it1, b1data, k2)) == BSON_EOO) {
bson_append_field_from_iterator(&it2, out);
}
continue;
}
BSON_ITERATOR_FROM_BUFFER(&it2, inbuf);
- bt2 = bson_find_fieldpath_value(bson_iterator_key(&it), &it2);
+ bt2 = bson_find_fieldpath_value(BSON_ITERATOR_KEY(&it), &it2);
if (bt2 != BSON_ARRAY) {
continue;
}
BSON_ITERATOR_FROM_BUFFER(&it, mbuf);
while ((bt = bson_iterator_next(&it)) != BSON_EOO) {
BSON_ITERATOR_FROM_BUFFER(&it2, inbuf);
- bt2 = bson_find_fieldpath_value(bson_iterator_key(&it), &it2);
+ bt2 = bson_find_fieldpath_value(BSON_ITERATOR_KEY(&it), &it2);
if (bt2 == BSON_EOO) { //array missing it will be created
allfound = false;
break;
//Append missing arrays fields
BSON_ITERATOR_FROM_BUFFER(&it, mbuf);
while ((bt = bson_iterator_next(&it)) != BSON_EOO) {
- const char *fpath = bson_iterator_key(&it);
+ const char *fpath = BSON_ITERATOR_KEY(&it);
BSON_ITERATOR_FROM_BUFFER(&it2, inbuf);
bt2 = bson_find_fieldpath_value(fpath, &it2);
if (bt2 != BSON_EOO) continue;
}
tcxstrcat2(out, ",\n");
}
- const char *key = bson_iterator_key(it);
+ const char *key = BSON_ITERATOR_KEY(it);
BSPAD(0);
if (!array) {
tcxstrcat2(out, "\"");
BSON_ITERATOR_INIT(&it, cmd);
while ((bt = bson_iterator_next(&it)) != BSON_EOO) {
- const char *key = bson_iterator_key(&it);
+ const char *key = BSON_ITERATOR_KEY(&it);
if (!strcmp("export", key) || !strcmp("import", key)) {
xlog = tcxstrnew();
char *path = NULL;
bson_iterator sit;
BSON_ITERATOR_SUBITERATOR(&mbsonit, &sit);
while ((bt = bson_iterator_next(&sit)) != BSON_EOO) {
- const char *key = bson_iterator_key(&sit);
+ const char *key = BSON_ITERATOR_KEY(&sit);
if (strcmp("compressed", key) == 0 && bt == BSON_BOOL) {
cops.compressed = bson_iterator_bool(&sit);
} else if (strcmp("large", key) == 0 && bt == BSON_BOOL) {
//Register collection indexes
BSON_ITERATOR_INIT(&mbsonit, mbson);
while ((bt = bson_iterator_next(&mbsonit)) != BSON_EOO) {
- const char *key = bson_iterator_key(&mbsonit);
+ const char *key = BSON_ITERATOR_KEY(&mbsonit);
if (bt != BSON_OBJECT || strlen(key) < 2 || key[0] != 'i') {
continue;
}
assert(dofield->updateobj && (dofield->flags & EJCONDOIT));
BSON_ITERATOR_INIT(&doit, dofield->updateobj);
while ((bt = bson_iterator_next(&doit)) != BSON_EOO) {
- if (bt != BSON_STRING || strcmp("$join", bson_iterator_key(&doit))) continue;
+ if (bt != BSON_STRING || strcmp("$join", BSON_ITERATOR_KEY(&doit))) continue;
jcoll = _getcoll(ictx->jb, bson_iterator_string(&doit));
if (!jcoll) break;
bson_oid_t loid;
break;
}
BSON_ITERATOR_FROM_BUFFER(&bufit, TCXSTRPTR(ictx->q->tmpbuf));
- bson_append_object_from_iterator(bson_iterator_key(it), &bufit, ictx->sbson);
+ bson_append_object_from_iterator(BSON_ITERATOR_KEY(it), &bufit, ictx->sbson);
break;
}
if (lbt == BSON_ARRAY) {
BSON_ITERATOR_SUBITERATOR(it, &sit);
- bson_append_start_array(ictx->sbson, bson_iterator_key(it));
+ bson_append_start_array(ictx->sbson, BSON_ITERATOR_KEY(it));
while ((bt = bson_iterator_next(&sit)) != BSON_EOO) {
if (bt != BSON_STRING && bt != BSON_OID) {
bson_append_field_from_iterator(&sit, ictx->sbson);
continue;
}
BSON_ITERATOR_FROM_BUFFER(&bufit, TCXSTRPTR(ictx->q->tmpbuf));
- bson_append_object_from_iterator(bson_iterator_key(&sit), &bufit, ictx->sbson);
+ bson_append_object_from_iterator(BSON_ITERATOR_KEY(&sit), &bufit, ictx->sbson);
}
bson_append_finish_array(ictx->sbson);
rv = (BSON_VCMD_SKIP_AFTER | BSON_VCMD_SKIP_NESTED);
continue;
}
BSON_ITERATOR_INIT(&it2, &bsout);
- bt2 = bson_find_fieldpath_value(bson_iterator_key(&it), &it2);
+ bt2 = bson_find_fieldpath_value(BSON_ITERATOR_KEY(&it), &it2);
if (!BSON_IS_NUM_TYPE(bt2)) {
continue;
}
if (!BSON_IS_NUM_TYPE(bt)) {
continue;
}
- const char *ofield = bson_iterator_key(&sit);
+ const char *ofield = BSON_ITERATOR_KEY(&sit);
int odir = bson_iterator_int(&sit);
odir = (odir > 0) ? 1 : (odir < 0 ? -1 : 0);
if (!odir) {
_ejdbsetecode(jcoll->jb, JBEQINCEXCL, __FILE__, __LINE__, __func__);
return false;
}
-
*imode = inc;
- const char *key = bson_iterator_key(&sit);
-
+ const char *key = BSON_ITERATOR_KEY(&sit);
char *pptr;
//Checking the $(projection) operator.
if (inc && (pptr = strstr(key, ".$")) && (*(pptr + 2) == '\0' || *(pptr + 2) == '.')) {// '.$' || '.$.'
bson_type ftype, bt;
while ((ftype = bson_iterator_next(it)) != BSON_EOO) {
- const char *fkey = bson_iterator_key(it);
+ const char *fkey = BSON_ITERATOR_KEY(it);
bool isckey = (*fkey == '$'); //Key is a control key: $in, $nin, $not, $all, ...
EJQF qf;
memset(&qf, 0, sizeof (qf));
BSON_ITERATOR_SUBITERATOR(it, &sit);
int ac = 0;
while ((sbt = bson_iterator_next(&sit)) != BSON_EOO) {
- const char *akey = bson_iterator_key(&sit);
+ const char *akey = BSON_ITERATOR_KEY(&sit);
if (!strcmp("$join", akey)) {
bson_append_field_from_iterator(&sit, qf.updateobj);
++ac;