Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void
- mpstream_encode_vdbe_mem(struct mpstream *stream, struct Mem *var)
- {
- assert(memIsValid(var));
- if (var->flags & MEM_Null) {
- mpstream_encode_nil(stream);
- } else if (var->flags & MEM_Real) {
- mpstream_encode_double(stream, var->u.r);
- } else if (var->flags & MEM_Int) {
- if (var->u.i >= 0) {
- mpstream_encode_uint(stream, var->u.i);
- } else {
- mpstream_encode_int(stream, var->u.i);
- }
- } else if (var->flags & MEM_Str) {
- mpstream_encode_strn(stream, var->z, var->n);
- } else if (var->flags & MEM_Bool) {
- mpstream_encode_bool(stream, var->u.b);
- } else {
- /* Emit BIN header iff the BLOB doesn't store MsgPack content */
- if ((var->flags & MEM_Subtype) == 0 ||
- var->subtype != SQL_SUBTYPE_MSGPACK) {
- uint32_t binl = var->n +
- ((var->flags & MEM_Zero) ?
- var->u.nZero : 0);
- mpstream_encode_binl(stream, binl);
- }
- mpstream_encode_raw(stream, var->z, var->n);
- if (var->flags & MEM_Zero) {
- for (int i = 0; i < var->u.nZero; i ++)
- mpstream_encode_nil(stream);
- }
- }
- }
Add Comment
Please, Sign In to add comment