pushJsonbValue(&state, WJB_ELEM, v);
res = pushJsonbValue(&state, WJB_END_ARRAY, NULL);
- out = palloc(VARHDRSZ + res->size);
+ out = palloc(VARHDRSZ + res->estSize);
sz = convertJsonb(res, out);
- Assert(sz <= res->size);
+ Assert(sz <= res->estSize);
SET_VARSIZE(out, sz + VARHDRSZ);
}
else if (v->type == jbvObject || v->type == jbvArray)
{
uint32 sz;
- out = palloc(VARHDRSZ + v->size);
+ out = palloc(VARHDRSZ + v->estSize);
sz = convertJsonb(v, out);
- Assert(sz <= v->size);
+ Assert(sz <= v->estSize);
SET_VARSIZE(out, VARHDRSZ + sz);
}
else
r->type = jbvNull;
if (lowbound)
*lowbound = i;
- r->size = sizeof(JEntry);
+ r->estSize = sizeof(JEntry);
return r;
}
r->type = jbvString;
r->string.val = data + JBE_OFF(*e);
r->string.len = key->string.len;
- r->size = sizeof(JEntry) + r->string.len;
+ r->estSize = sizeof(JEntry) + r->string.len;
if (lowbound)
*lowbound = i;
{
/* Deep copy */
*r = *key;
- r->size = sizeof(JEntry);
+ r->estSize = sizeof(JEntry);
if (lowbound)
*lowbound = i;
r->type = jbvString;
r->string.val = data + JBE_OFF(*v);
r->string.len = JBE_LEN(*v);
- r->size = sizeof(JEntry) + r->string.len;
+ r->estSize = sizeof(JEntry) + r->string.len;
}
else if (JBE_ISBOOL(*v))
{
r->type = jbvBool;
r->boolean = JBE_ISBOOL_TRUE(*v) != 0;
- r->size = sizeof(JEntry);
+ r->estSize = sizeof(JEntry);
}
else if (JBE_ISNUMERIC(*v))
{
r->type = jbvNumeric;
r->numeric = (Numeric) (data + INTALIGN(JBE_OFF(*v)));
- r->size = 2 * sizeof(JEntry) + VARSIZE_ANY(r->numeric);
+ r->estSize = 2 * sizeof(JEntry) + VARSIZE_ANY(r->numeric);
}
else if (JBE_ISNULL(*v))
{
r->type = jbvNull;
- r->size = sizeof(JEntry);
+ r->estSize = sizeof(JEntry);
}
else
{
r->binary.data = data + INTALIGN(JBE_OFF(*v));
r->binary.len = JBE_LEN(*v) -
(INTALIGN(JBE_OFF(*v)) - JBE_OFF(*v));
- r->size = 2 * sizeof(JEntry) + r->binary.len;
+ r->estSize = 2 * sizeof(JEntry) + r->binary.len;
}
return r;
r->type = jbvString;
r->string.val = data + JBE_OFF(*e);
r->string.len = JBE_LEN(*e);
- r->size = sizeof(JEntry) + r->string.len;
+ r->estSize = sizeof(JEntry) + r->string.len;
}
else if (JBE_ISBOOL(*e))
{
r->type = jbvBool;
r->boolean = JBE_ISBOOL_TRUE(*e) != 0;
- r->size = sizeof(JEntry);
+ r->estSize = sizeof(JEntry);
}
else if (JBE_ISNUMERIC(*e))
{
r->type = jbvNumeric;
r->numeric = (Numeric) (data + INTALIGN(JBE_OFF(*e)));
- r->size = 2 * sizeof(JEntry) + VARSIZE_ANY(r->numeric);
+ r->estSize = 2 * sizeof(JEntry) + VARSIZE_ANY(r->numeric);
}
else if (JBE_ISNULL(*e))
{
r->type = jbvNull;
- r->size = sizeof(JEntry);
+ r->estSize = sizeof(JEntry);
}
else
{
r->type = jbvBinary;
r->binary.data = data + INTALIGN(JBE_OFF(*e));
r->binary.len = JBE_LEN(*e) - (INTALIGN(JBE_OFF(*e)) - JBE_OFF(*e));
- r->size = r->binary.len + 2 * sizeof(JEntry);
+ r->estSize = r->binary.len + 2 * sizeof(JEntry);
}
return r;
*state = pushState(state);
result = &(*state)->v;
(*state)->v.type = jbvArray;
- (*state)->v.size = 3 * sizeof(JEntry);
+ (*state)->v.estSize = 3 * sizeof(JEntry);
(*state)->v.array.nElems = 0;
(*state)->v.array.scalar = (v && v->array.scalar) != 0;
(*state)->size = (v && v->type == jbvArray && v->array.nElems > 0)
*state = pushState(state);
result = &(*state)->v;
(*state)->v.type = jbvObject;
- (*state)->v.size = 3 * sizeof(JEntry);
+ (*state)->v.estSize = 3 * sizeof(JEntry);
(*state)->v.object.nPairs = 0;
(*state)->size = (v && v->type == jbvObject && v->object.nPairs > 0) ?
v->object.nPairs : 4;
len = state.ptr - VARDATA(state.buffer);
- Assert(len <= v->size);
+ Assert(len <= v->estSize);
return len;
}
elog(ERROR, "invalid jsonb container type");
}
- Assert(state->ptr - state->curlptr->begin <= value->size);
+ Assert(state->ptr - state->curlptr->begin <= value->estSize);
state->prvlptr->i++;
}
else
v->type = jbvString;
v->string.val = (*it)->dataProper + JBE_OFF(*e);
v->string.len = JBE_LEN(*e);
- v->size = sizeof(JEntry) + v->string.len;
+ v->estSize = sizeof(JEntry) + v->string.len;
return false;
}
{
v->type = jbvBool;
v->boolean = JBE_ISBOOL_TRUE(*e) != 0;
- v->size = sizeof(JEntry);
+ v->estSize = sizeof(JEntry);
return false;
}
{
v->type = jbvNumeric;
v->numeric = (Numeric) ((*it)->dataProper + INTALIGN(JBE_OFF(*e)));
- v->size = 2 * sizeof(JEntry) + VARSIZE_ANY(v->numeric);
+ v->estSize = 2 * sizeof(JEntry) + VARSIZE_ANY(v->numeric);
return false;
}
else if (JBE_ISNULL(*e))
{
v->type = jbvNull;
- v->size = sizeof(JEntry);
+ v->estSize = sizeof(JEntry);
return false;
}
v->type = jbvBinary;
v->binary.data = (*it)->dataProper + INTALIGN(JBE_OFF(*e));
v->binary.len = JBE_LEN(*e) - (INTALIGN(JBE_OFF(*e)) - JBE_OFF(*e));
- v->size = v->binary.len + 2 * sizeof(JEntry);
+ v->estSize = v->binary.len + 2 * sizeof(JEntry);
return false;
}
a->object.pairs[a->object.nPairs].key = *v;
a->object.pairs[a->object.nPairs].order = a->object.nPairs;
- a->size += v->size;
+ a->estSize += v->estSize;
}
static void
Assert(a->type == jbvObject);
a->object.pairs[a->object.nPairs++].value = *v;
- a->size += v->size;
+ a->estSize += v->estSize;
}
static void
}
a->array.elems[a->array.nElems++] = *v;
- a->size += v->size;
+ a->estSize += v->estSize;
}
/*
/* Avoid copying over duplicate */
if (lengthCompareJsonbStringValue(ptr, res, NULL) == 0)
{
- v->size -= ptr->key.size + ptr->value.size;
+ v->estSize -= ptr->key.estSize + ptr->value.estSize;
}
else
{